Giter VIP home page Giter VIP logo

on28-ijs-refatoracao's Introduction

Logo Dark

Logo Light

Tema da Aula

Turma Online 28 - Imersão JavaScript | Semana 09 | 2023 | Professora: Luara Kerlen

Instruções

Antes de começar, vamos organizar nosso setup.

  • Fork esse repositório
  • Clone o fork na sua máquina (Para isso basta abrir o seu terminal e digitar git clone url-do-seu-repositorio-forkado)
  • Entre na pasta do seu repositório (Para isso basta abrir o seu terminal e digitar cd nome-do-seu-repositorio-forkado)
  • [Add outras intrucoes caso necessario]

Objetivo

Refatorar o código do projeto em andamento.

Resumo

O que veremos na aula de hoje?

Conteúdo

O que é

Refatoração é o processo de alterar o código fonte de uma maneira que não altere seu comportamento externo e ainda melhore a sua estrutura interna. É uma técnica disciplinada de limpar e organizar o código, e por consequência minimizar a chance de introduzir novos bugs.

Para o que serve

Ela é utilizada para manter um software bem projetado mesmo com o decorrer do tempo e as mudanças que ele virá a sofrer.

O código sofre grandes alterações ao longo do tempo, alterações capazes de mudar toda a sua estrutura inicial. Com várias equipes de desenvolvimento trabalhando, as vezes podem gerar certos code smells, pequenas bagunças que precisam ser ajustadas.

O processo de refatoração é uma otimização. Precisamos sempre pensar em código para melhorar a sua conformidade com padrões e a legibilidade.

OBS: A refatoração visa apenas à melhoria interna do código fonte.

Por que refatorar?

Refatorar o software é uma técnica que pode, e deve, ser utilizada por diversas razões. Vejamos algumas delas:

1. Melhora o projeto

Sem refatoração a estrutura interna de um software geralmente se degrada com as mudanças que ocorrem no decorrer do tempo. Programadores que nunca viram o código antes são encarregados de adicionar uma nova funcionalidade e provavelmente vão fugir um pouco do padrão que foi utilizado quando o software foi projetado. Aplicar refatoração após a adição dessa nova funcionalidade poderá deixá-la em conformidade com os padrões que foram utilizados nas outras funcionalidades que o software já possui;

2. Torna o software fácil de entender

Desenvolvedores geralmente estão sempre com pouco tempo para terminar suas tarefas e entregar a funcionalidade pronta. Para conseguir entregar dentro do prazo, alguns acabam se apressando na hora de codificar, o que pode prejudicar a legibilidade (clareza do código) e alguns bugs podem passar despercebidos.

Erros comuns são: não nomear as variáveis corretamente, duplicar código, colocar métodos em classes inadequadas, entre outros. Ao empregar a refatoração, muito provavelmente, tais "sujeiras" serão removidas do código, o que o tornará muito mais fácil de compreender e manter;

Ajuda a achar bugs

Quando um desenvolvedor vai refatorar certo código, ele deve entender exatamente o que aquele código está fazendo. Entendendo muito bem o seu funcionamento, os possíveis bugs existentes naquele código acabam se tornando evidentes. Como o desenvolvedor já está alterando o código, recomenda-se também eliminar o bug;

Ajuda a programar mais rápido

Com todas as vantagens citadas até agora, pode-se notar que quando a refatoração é aplicada por uma pessoa que tem domínio sobre a técnica, a qualidade do software aumenta e o código fica mais fácil de entender. Assim, quando um desenvolvedor pega o código para adicionar uma nova funcionalidade e consegue compreendê-lo mais rapidamente, o processo de desenvolvimento também ocorre de maneira mais rápida e tranquila.

Processo de Refatoração

Entender o código de outra pessoa não é uma tarefa trivial. Ainda mais quando é um software muito grande e complexo. Quando uma pessoa modifica um código que não é de sua autoria é possível que ela cometa alguns deslizes (métodos e variáveis mal nomeadas, duplicação de código, etc.) e com isso o código vai se tornando mais difícil de compreender.

Deste modo, após algum tempo, a inserção de novas funcionalidades se tornará uma tarefa mais complicada do que deveria, pois o desenvolvedor não conseguirá, ou terá muitas dificuldades em, entender exatamente o que código está fazendo.

Para evitar que o código fique complexo com o passar do tempo devido às atividades de manutenção e adição de novas funcionalidades, devemos refatorá-lo conforme as atualizações forem implementadas.

Como refatorar?

O Ideal é tentar sempre tornar o código menos complexo possível, e ajustar o entendimento dele com o ambiente externo.

Pense sempre na entrada, processamento e saída para que você possa montar uma estrutura funcional e conseguir fazer as devidas alterações.

Refatoração se implica em otimizar e melhorar um código fonte existente funcional, ou seja, um código que funcione corretamente.

Vamos praticar!

Revisão

Parte 1

Vamos auxiliar na refatoração dos nossos códigos! Seremos divididas em trios ou quartetos e cada uma fará a revisão para a refatoração de 2 projetos.

  • Leia todo o código do projeto;
  • Tente entender o que está acontecendo;
  • Escreva o que está acontecendo no código da maneira mais detalhada possível, como se fosse uma documentação (faça isso em um documento no Google Docs);
  • A medida que você lê e cria a sua documentação, escreva comentários para que o código do projeto seja refatorado, seguindo as regras de Código Limpo.

Tenha em mente: o código precisa ser limpo, simples e legível. Releia os conceitos de código limpo e aplique-as nos projetos.

No fim desse processo, compartilhe as documentações que criou dos dois projetos que você leu.

Exemplo de informações que precisam estar na documentação

O objetivo geral do projeto é tal...
O projeto possui as classes X, Y e Z.

- Classe X:
  - É responsável por...
  - Recebe os atributos...
  - Possui os métodos A, B e C
    - O método A é responsável por...
    - O método A recebe os parâmetros ... e a saída é ...

- Como as classes se conversam entre si?
- Como o objetivo final do projeto é atingido?
- ...

Na medida que você tentar responder essas perguntas, você poderá ter dúvidas, e essas dúvidas provavelmente seriam respondidas por si só se o código tivesse escrito de uma maneira mais clara. A partir disso, faça suas sugestões de refatoração para que o código fique mais limpo, claro e legível.

Parte 2

Hora de refatorar o nosso código!

  • Leia o seu próprio código e os comentários realizados pelas revisoras na parte 1;
  • Veja o que faz sentido e refatore seguindo as dicas recebidas;
  • Leia as documentações que foram escritas pelas revisoras e veja se elas conseguiram compreender plenamente o seu código;
  • Por fim, reveja se seu código ainda pode ser refatorado em mais algum lugar.

Contatos

Desenvolvido com 💜

on28-ijs-refatoracao's People

Contributors

luarakerlen avatar borgesdn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.