Av. Nova Cantareira 2014 sala 123
11 2996-3966

O Crescimento da engenharia de software para Sites

Raramente, em qualquer campo do empreendimento humano, a paisagem mudou de forma tão dramática e tão consistente, em um período tão curto de tempo, do que no domínio das tecnologias de software. E esta tendência não está mostrando nenhum sinal de diminuir e de fato está se acelerando.
 
A Engenharia de Software, que é uma disciplina complexa, requer o domínio de várias habilidades, como codificação em vários idiomas, seguindo as melhores práticas, sistemas de controle de versão, testes e aderência aos princípios da engenharia. Para criar algo, temos que  criar um produto que tenha valor, robustez, facilidade de manutenção e capacidade de atualização, entre outras coisas, sejam mensuráveis ​​e testáveis.
 
Engenharia permite que um determinado nível de qualidade a ser anexado a um produto. No desenvolvimento de software, a diferença entre o código que é projetado e o código que está escrito, é a diferença entre o quanto você quer que o código não funcione e cause uma falha catastrófica do sistema. Você quer um programador de pós-graduação para escrever essa funcionalidade de controle de avião, ou um engenheiro de software com mais de 20 anos de experiência e uma riqueza de ferramentas na ponta dos dedos para codificar, colaborar, testar e verificar a integridade do sistema?
 
Felizmente, a engenharia de software é um grande negócio hoje em dia, e todos os sistemas críticos de segurança dependem de habilidades de engenharia sendo utilizadas e seguindo as melhores práticas da indústria. O software pode ser coletado, analisado e comparado, levando a um código robusto de melhor qualidade. No software, a segurança é mensurável. No entanto, o desenvolvimento web, que é ainda mais de uma criação recente do que engenharia de software foi uma vez um longo caminho atrás de seu irmão maior e mais poderoso. HTML era tudo o que precisava saber para colocar um site fantasia, rápido e barato, com todos os riscos associados a esse nível de qualidade. As apostas aumentaram à medida que cada ano da existência da internet viu o seu uso crescer, mas felizmente as coisas mudaram recentemente para melhor.
 
Com o passar do tempo, esse conhecimento básico de HTML mostrou-se inadequado para sites de alto desempenho. Assim, as linguagens do lado do servidor tornaram-se populares.  O PHP é agora o maior de todos eles e pode lidar com a maioria dos cenários de casos de uso. Um pouco de JavaScript rodando no navegador do cliente, e o desenvolvedor da web pode se sentir bem com um trabalho bem feito.
 
No entanto, algo está acontecendo que está causando preocupação. O crescimento da popularidade da Internet significa que mais e mais ferramentas e serviços estão entrando on-line. Dados pessoais, dados privados, dados financeiros todos estes são criticamente importantes para o usuário final, mas tratadas relativamente causalmente online, sem o rigor que a engenharia de software iria garantir. As tecnologias da Web raramente eram utilizadas com o mesmo nível de profissionalismo e responsabilidade que os sistemas de software mais tradicionais estavam familiarizados. O resultado final é um paraíso de hackers e sites que são relativamente vulneráveis ​​e difíceis de manter.
 
Nos últimos anos, a tendência para o desenvolvimento on-line está se aproximando cada vez mais do aspecto de engenharia, em parte devido aos problemas que acabamos de mencionar. Grandes brechas de dados de sites, complexidade de grandes sites e a necessidade de soluções cada vez mais otimizadas e escaláveis, significa que o desenvolvimento da web não é mais HTML, PHP e um pouco de Javascript. Agora emprega técnicas de engenharia de software, ferramentas e linguagens reais, dedicadas exclusivamente ao ambiente online.
 
Software de Controle de Versão como o GIT agora é indicado para sites maiores. Para aplicações maiores que utilizam linguagens e pacotes como Java, os sistemas de compilação (Gradle, Maven, etc) podem ser implantados junto com ferramentas de Integração Contínua, como Jenkins. Os sites de teste ainda estão relativamente subdesenvolvidas e utilizadas, mas o progresso está sendo feito. O resultado final é que a criação de sites está se afastando da abordagem rápida e suja anterior para um processo de desenvolvimento mais centrado na engenharia. E todos se beneficiam disso.
 
Outra área de preocupação é o uso bastante inflexível de hardware, que muitos desenvolvedores desconhecem. Por exemplo, o PHP executa solicitações de servidor por instância em um segmento separado, o que pode levar a sobrecarga de RAM e desaceleração do sistema. Existem soluções como o  Amazon Web Services (AWS) , que oferece funcionalidade Elastic Compute Cloud (EC2) , que dimensiona recursos de hardware sob demanda, mas essa solução dificilmente é adequada para todos os cenários. Para certas aplicações, alternar para algo como Node.js , que é um mecanismo Javascript executado no servidor em um segmento, pode levar a melhorias de desempenho enorme, que pode ser medido. No lado do cliente, Frameworks Javascript, como AngularJS fornecer uma grande quantidade de funcionalidade, já testado, Para permitir ao engenheiro de software prototipar rapidamente a funcionalidade do usuário final. Juntamente com as aplicações móveis de plataforma cruzada populares, como o Ionic 3 , você pode entender rapidamente como a paisagem mudou dramaticamente de um ambiente puramente baseado em HTML, para um conjunto completo de ferramentas e processos de engenharia de software profissional.
 
Da próxima vez que você pensar em contratar um desenvolvedor web, você pode querer considerar se você deseja ou não contratar alguém para codificar seu site, ou alguém para projetá-lo. As seguranças dos dados de suas clientes e as suas próprias modelos de negócios podem depender criticamente dele.

Post Relacionado

Deixe um comentário