O software facilita o nosso dia-a-dia e já não passamos sem ele. Num futuro que se adivinha com cada vez mais aplicações em diferentes dispositivos, nem sempre conseguimos perceber como é importante a qualidade do software que utilizamos (e do código que o compõe).
O software só facilita a nossa vida se for, efetivamente, bom software e assegurar, por exemplo, a segurança e integridade dos dados. Como se garante que o software tem qualidade? Como seria de esperar, tudo começa pelo princípio, ou seja, na conceção da aplicação.
Qualidade do software e qualidade do código
A qualidade de software começa no processo de implementação de uma aplicação e como é assegurado que os objetivos definidos para a aplicação são cumpridos. A qualidade do código é um elemento fundamental para a qualidade do software, além de outras valências como a disponibilidade do sistema e a sua usabilidade.
Uma vez que o código é a base do software, é importante que a equipa de desenvolvimento assegure a sua qualidade, isto é, que código desenvolvido é eficiente, não contenha redundâncias, seja robusto e escalável. Mas todas estas caracteristicas só fazem um bom código se este cumprir os objetivos para o qual foi o software foi desenhado.
Qual a importância da qualidade do código?
A qualidade do código garante, além do bom funcionamento da aplicação, a redução de custos futuros no desenvolvimento/manutenção do software. Se o código estiver bem estruturado facilmente é lido e trabalhado por qualquer pessoa, mesmo que não tenha integrado a equipa que criou o código.
Quando a qualidade do código não está entre as prioridades da equipa de desenvolvimento, a aplicação terá custos acrescidos a médio prazo, já que a gestão e manutenção da aplicação vai ser mais difícil e demorada.
Quais as características do “bom” código?
Há algumas características que ajudam a identificar a qualidade do código:
– Segurança: o código deve ser desenvolvido recorrendo a técnicas que evitem possíveis ataques, por exemplo SQL Injection ou Cross-site scripting (XSS ). Deve também ser dada especial atenção à utilização de bibliotecas opensource – estas devem estar sempre atualizadas de modo a evitar vulnerabilidades que possam ser exploradas por terceiros.
– Robustez: o código deve estar preparado para lidar com excepções e, caso exista algum erro, deve fornecer mensagens de erro claras e compreensíveis pelo utilizador para que facilmente possa entender o que está a acontecer.
– Eficiência: ninguém gosta de usar uma aplicação com mau desempenho. Quando se evitam partes redundantes ou desnecessárias no código, a aplicação torna-se mais eficiente. Este conceito é ainda mais relevante quando se trata de aplicações que trabalham com um grande volume de informação.
– Manutenção: possibilidade de adicionar/modificar novas funcionalidades ou corrigir problemas com o mínimo de esforço e sem afetar outros módulos do sistema. Esta característica está diretamente relacionada com o conceito de coupling – o código deve ser estruturado de forma a que exista independência entre módulos, oferecendo mais segurança quando é necessário fazer uma alteração.
– Documentação: o código deve ter documentação para que possa ser alterado, lido e compreendido facilmente mesmo por alguém que não é o autor do código. Código “bom” deve ser transparente para quem o lê.
– Fiabilidade: a aplicação deve ter um comportamento consistente e sem falhas, por isso é necessário a execução de testes unitários, de integração e de regressão. Estes testes podem ser medidos por métricas de cobertura, que mostram qual a percentagem de linhas do código que estão cobertas pelos testes. Quanto mais elevada a percentagem, maior a garantia de que o código produz os resultados esperados. Por outro lado, garante-se também que, ao fazer uma alteração, não são quebradas outras funcionalidades.
Como saber se o código tem qualidade?
Uma das formas de avaliação do código é através de validações sintáticas. Atualmente existem várias ferramentas no mercado que analisam a qualidade do código de forma automática.
Estas ferramentas verificam, mediante um conjunto de regras, se o código garante a segurança da aplicação, se não há redundâncias ou foi escrito de uma forma complexa e possa ser simplificado. Na prática, as ferramentas avaliam se o código pode ser classificado como “bom código”.
Os bons projetos de desenvolvimento de software são aqueles que, entre outras valências, garantem a qualidade do código. Por vezes, as equipas de desenvolvimento preocupam-se apenas com os prazos de entrega dos projetos e descuram a qualidade do produto final.
É importante que os projetos de software sejam desenvolvidos por equipas experientes, que tenham já definidos processos e metodologias de trabalho que envolvam processos de testes e práticas consistentes de avaliação da qualidade do produto final.
Na Opensoft utilizamos a plataforma SonarQube para medir a qualidade do código em cada aplicação que desenvolvemos e, em conjunto com outras ferramentas, medir a cobertura de testes das nossas aplicações. Desta forma, garantimos a qualidade das soluções que desenvolvemos e simplificamos a sua manutenção.
Concordo em absoluto com o artigo, a sua objectividade, simplicidade e pragmatismo.
Tem a inteligência e definição dos princípios do desenvolvimento do código, dos programas, das aplicações com base na sua história desde o seu início até aos dias de hoje.
A existência de uma plataforma que ajude na construção e correcção deste código é muito importante, particularmente em resposta às novas metodologias de desenvolvimento, complexidade, dependências e relações aplicacionais que no todo configuram os actuais sistemas de informação.