Baixe o app para aproveitar ainda mais
Prévia do material em texto
padlet.com/201915210046/3u9ftceim741k155 Boas práticas de programação CAROLINE SILVA ALVES 27/07/22, 17:49 HS Tamanho: evite classes muito longas; com mais de 1000 linhas já �ca muito complicado sua leitura e depuração, por isso devem ser evitadas. Se o código estiver muito grande, é possível que seu algoritmo precise ser revisado, pois pode estar fazendo mais do que necessita. Backup/Restore: essa dica é tão antiga quanto importante, mas que muitos só percebem sua relevância quando perdem códigos e têm que refazê-los. Portanto, não deixe de fazer backups com determinada frequência (ao �nal do dia ou semanalmente, por exemplo); Testar e Depurar: não muito tempo atrás, praticamente não existia testes de software, a não ser o que o próprio programador fazia durante o desenvolvimento do sistema, ou seja, validação dos dados e testes com alguns registros – o que sempre foi muito pouco. No entanto, devido ao surgimento de novas tecnologias, o aumento da complexidade dos programas e a busca por qualidade, os testes de software ganharam um espaço muito importante dentro do ciclo de desenvolvimento de sistemas. Assim, procure executar muitos testes no seu sistema e também aprenda a usar um depurador para analisar o código em tempo de execução. Desta forma, será facilitada a localização de defeitos que muitas vezes não aparecem na compilação por serem erros de lógica. Muitos programadores desconhecem a depuração fornecida pelas evoluídas IDEs, que oferecem a possibilidade da execução passo a passo de um programa, mas usam a famosa impressão (System.out.println()) para depurar sua classe. No entanto, essa não é uma forma prática e elegante de depurar erros; Outras boas práticas Deprecation: na medida em que as linguagens vão evoluindo, uma classe, método ou interface que você usou algum tempo atrás pode estar desatualizado, obsoleto ou até mesmo inativo. Um exemplo disso é o método show(), empregado em aplicações desktop para carregar um formulário. Atualmente, para esta mesma funcionalidade, devemos utilizar setVisible(). Por isso, ao dar manutenção em um código e/ou migrá-lo para uma nova versão do Java, procure analisá-lo e fazer as mudanças necessárias. Para facilitar esta tarefa, as IDEs modernas, como NetBeans e Eclipse, facilitam o nosso trabalho destacando estes elementos no código; Controller Também conhecido como Controlador, é responsável por gerenciar todas as informações no sistema, de�nindo o comportamento do programa. Como exemplo, pense em uma página de login; o Controller poderia veri�car (através da camada Model) se o nome e a senha do usuário estão corretos, e retornar essa informação para a camada View, atuando diretamente entre os dois. https://padlet.com/201915210046/3u9ftceim741k155 https://padlet.com/201915210046 https://padlet-uploads.storage.googleapis.com/913470923/f63090c7ab90fd61e8e036987e04a23c/image.png View É a camada de apresentação, ou seja, o que o usuário �nal irá visualizar. Por ser uma camada independente, a pessoa (ou equipe) responsável por trabalhar nela poderá se dedicar integralmente no seu layout, deixando-o rico em design para conquistar o cliente, e sem a necessidade de conhecer os detalhes de programação das demais camadas. Model É a camada principal, e será responsável pela manipulação dos dados e pelas operações que o sistema irá executar, ou seja, tudo o que o software vai fazer passa por ele. Viabilizados pela Programação Orientada a Objetos, os programadores começaram a separar os códigos do programa, dividindo-os em camadas. É aqui que entra o padrão MVC (Model- View-Controller). Sexta boa prática: Padrões de Projetos (Design Patterns) Java é considerado uma linguagem robusta, e um dos motivos é o fato dela exigir que você use o try..catch em determinadas situações, como no acesso ao banco de dados ou para a seleção de um arquivo externo qualquer. Isso já garante a você (mesmo não sabendo) o uso de uma boa prática. Independente do problema ocorrido, seu sistema deve (pelo menos) avisar o usuário o que aconteceu, evitar automaticamente a perda de dados (salvar) e permitir, de forma elegante, que ele possa continuar sendo usado sem maiores traumas. Durante o desenvolvimento, temos que pensar nos usuários que podem inserir dados de forma incorreta, fazer coisas inimagináveis e que por isso seu código pode apresentar erros. Quinta boa prática: Tratamento de erros (try/catch) 1. Pacotes 2. Classes e Interfaces 3. Métodos 4. Variáveis Usando as boas práticas já citadas e acrescentando a isso convenções de nomes, você irá tornar a leitura do programa muito mais fácil. Se você agregar a isso uma boa convenção de nomes, o ajudará muito no ciclo de desenvolvimento do sistema, como podemos ver abaixo: Quarta boa prática: Convenções de nomes para classes, métodos, variáveis... Em desenvolvimento de software, a organização dos arquivos é imprescindível. Neste ponto entra nossa terceira boa prática, que é o uso de pacotes (package) para que possamos separar os códigos em categorias, contribuindo para um projeto elegante e ordenado. Terceira boa prática: pacote (package) Na Listagem 3 vemos um código com comentários. Ao criar um método, procure sempre informar qual é a �nalidade e se ele irá retornar ou não alguma informação. Nas variáveis criadas é importante comentar. Mas não podemos exagerar nos comentários, porque pode deixar o código bagunçado e com di�culdades para compreender o código. https://padlet-uploads.storage.googleapis.com/913470923/28ccf4962a0e9e81f83d10093650dad6/foto12344.png https://padlet-uploads.storage.googleapis.com/913470923/405b9da6f85aaa820d31f4489663a1a0/foto1234.png Os comentários no arquivo fonte são muito importantes. Podemos usar os comentários com duas �nalidades: 1. Explicar o algoritmo ou a lógica usada, mostrando o objetivo de uma variável, método, classe...; 2. Documentar o projeto, descrevendo a especi�cação do código. Segunda boa prática: Comentários e Documentação Em algumas linguagens de programação, endentar é tão importante que faz parte de seu desenvolvimento. Já na Listagem 2, vemos que o mesmo código, agora endentado, �ca muito mais legível, limpo e esteticamente mais bonito. É muito comum vermos iniciantes em programação criando seus algoritmos de forma desorganizada e desalinhada. Chamamos isso de código não endentado, como mostra a Listagem 1. Todo programador inicia sua trajetória com Algoritmos e Lógica de Programação. Primeira boa prática: Endentação – Organizando o código Com software podemos analisar da mesma forma; se usar as boas práticas, não deverá sofrer lá na frente, do contrário, será um problema para o resto da vida. Programadores mais experientes costumam dizer que “A pior coisa que existe é dar continuidade a um software desenvolvido por terceiros”. Em um desenvolvimento de software, o uso de regras e boas práticas geram melhor legibilidade do código, contribuindo para que o desenvolvimento de sistemas ocorra de maneira mais ágil, prática e de fácil manutenção. Na busca de qualidade ao desenvolver um aplicativo, é imprescindível a adoção de boas práticas. assim, podemos ter um código mais limpo e também mais e�ciente Se �zermos a refatoração, podemos notar que o "!texto.equals("")" não serve para mais nada Os testes devem considerar as características F.I.R.S.T: *F (Fast): deve ser rápido. Testes demorados tiram a motivação dos pro�ssionais responsáveis por sua execução; *I (Independent): não podem depender um do outro pois se um falha o outro vai falhar também; *R (Reapetable): executando mais de uma vez eles devem retornar sempre o mesmo resultado; *S (Self-Validating): devem se autovalidar; *T (Timely): devem ser feitos antes do código. https://padlet-uploads.storage.googleapis.com/913470923/6ba318ed521196c597c4eb54a340cee9/foto12.png https://padlet-uploads.storage.googleapis.com/913470923/aceff4042af76f8c26190004c46453f7/foto123.png https://padlet-uploads.storage.googleapis.com/913259599/3583c21ac2085d9d2864931c0f0434eb/image.png https://padlet-uploads.storage.googleapis.com/913259599/03c3a48e4ab8ebe8f4fe7f4afa8eb49b/image.pngTDD (desenvolvimento guiado por testes) As três regras do TDD são: Você não pode escrever um código até que tenha criado um teste falhando; Você não pode escrever mais teste do que seja su�ciente para falhar; Você não pode escrever mais código do que o su�ciente para passar no teste que está falhando. Formatação uma boa formatação do código pode contribuir para um melhor entendimento do que está sendo feito Custo Apesar de gerar um gasto maior com os testes, não há comparação entre a qualidade �nal dos projetos que são testados e os que não são. A importância dos testes O teste é fundamental para saber se o código que você escreveu está realmente funcionando. Logo, é recomendável testar o código a cada linha feita, para veri�car se há algum erro. Comentários nos códigos apesar de importantes, podem trazer desinformação. Há vários códigos com vários comentários que não serviam para nada e, pior, confundiam. Se um método ou uma classe estiver bem escrito, a importância do comentário é minimizada. Métodos e classes menores são mais fáceis de ler e entender, além de manter é claro. Podemos considerar as seguintes métricas: Métodos <= 20 linhas; Linha <= 100 caracteres; Classe = 200 a 500 linhas. Nome de classes devem ser substantivos e não conter verbos. Já nomes de métodos devem conter verbos pois eles indicam ações. A primeira regra dos métodos é que eles devem ser pequenos. A segunda regra é que eles devem ser menores ainda. Evite notação húngara. A notação Húngara visa facilitar o reconhecimento do tipo de variável em um programa colocando em seu nome um su�xo descrevendo seu tipo, entretanto, com o advento de novas linguagens, técnicas mostradas aqui e testes automatizados, a notação húngara se mostra desnecessária. No exemplo acima, podemos perceber que quando colocamos uma linha em nosso código com um comentário ao lado não estamos dando o nome correto ao atributo ou método. Para escrever bons códigos deve estar atento aos nomes dos métodos e das variáveis, pois precisam ter sentido para melhor entendimento. Boas práticas de programação são o conjunto de convenções para poder tornar o código de computador tanto legível para computadores como humanos. A �m de que a sua manutenção e melhorias possam ocorrer mais facilmente. Comentar o código - Usando o // Nomear variáveis de maneira intuitiva - Ex: $array1 = array(‘Herry Porter', 'A rebelde do deserto', 'Holocausto brasileiro'); $array2 = array(‘J R Rowling', 'Alwyn Hamilton', 'Daniela Arbex') Identar o código - O fato de identi�carmos o escopo de condições IF, WHILE e etc., facilita muito entendimento do código, além de deixar mais bonito. Boas práticas = Atenção aos detalhes - Criar o código de forma cuidadosa, já que um código mal escrito impactará em sua manutenção e também estar atento aos comentários - comentar o mínimo possível em seu código. https://padlet-uploads.storage.googleapis.com/816309431/4484b296dbabe0af1b1eaf3e1b789dce/Screenshot_2022_07_31_19_45_27.png ※※※※※※ Por ser considerado um código limpo, ela passará por testes, portanto é preciso garantir que cada linha do código seja validada, para que se mantenha em funcionamento. Elegante tornando o código diferente dos demais. É e�ciente. Ele é programado para atender a algum objetivo especí�co. O Clean Code é simples e direto é bem escrito deve ter o mínimo de complexidade possível, e também é seco, ou seja, sem repetições desnecessárias no código fonte. Clean code pressupõe escrever códigos com alta legibilidade, o que leva a uma boa manutenibilidade. De acordo com Grady Booch, Clean Code é... “O código limpo é simples e direto. Código limpo parece uma prosa bem escrita. Código limpo nunca obscurece a intenção do designer, mas é completo de abstrações nítidas e linhas simples de controle.” Serve para facilitar a leitura do código e torná-lo claro, simples e escalável, a �m de que alcance os objetivos do cliente. Boas práticas de programação e a importância dos testes Clean Code (Código limpo) Boas práticas de programação Refatoração Observe o trecho de código a seguir:
Compartilhar