Boas práticas de programação com Object Calisthenics

DaniloPinotti 101 views 23 slides May 02, 2024
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

Apresentação sobre Object Calisthenics apresentada para a Let's em Abril/2024.


Slide Content

Object
Calisthenics
Por: Danilo Pinotti

Object Calisthenics


-Introduzido por Jeff Bay no livro Thoughtworks Anthology
-Conjunto de boas práticas e regras de programação
-Visa melhorar do código a sua:
-Qualidade
-Manutenabilidade
-Legibilidade
-Testabilidade
-Compreensão

Object Calisthenics: 9 Regras


1.Only One Level Of Indentation Per Method
2.Don’t Use The ELSE Keyword
3.Wrap All Primitives And Strings
4.First Class Collections
5.One Dot Per Line
6.Don’t Abbreviate
7.Keep All Entities Small
8.No Classes With More Than Two Instance Variables
9.No Getters/Setters/Properties

Regras

1.Apenas UM nível de indentação por método

1.Apenas UM nível de indentação por método

1.Apenas UM nível de indentação por método
(forma 1)

1.Apenas UM nível de indentação por método
(forma 2)

2. Não utilizar ELSE


-Evitar o máximo possível a utilização do “ELSE”.
-O “ELSE”, junto com mais níveis de indentação, aumenta a
quantidade de “caminhos” de execução do código.
-Para evitar o ELSE podemos aplicar alguns conceitos e
práticas como:
-Polimorfismo
-Early Return
-Inversão de condicional

2. Não
utilizar
ELSE

2. Não
utilizar
ELSE

3. Encapsular todos os tipos primitivos como Objetos

4. Utilizar Collections específicas

5. One Dot Per Line

5. One Dot Per Line

6. Não abreviar
-Não abreviar nomes de variáveis e métodos
-Não utilizar nomes com significado implícito ou piada interna

7. Mantenha todas as entidades pequenas


-Classes com no máximo 50 linhas (ou uma quantidade pré
estipulada dentro da empresa, por exemplo, 200)
-Objetivo principal de separar bem as responsabilidades por
classes

8. Não ter mais de duas instâncias de variável
por classe


-Alta coesão e princípio da responsabilidade única
-Sugestão: Utilizar esta regra como métrica
Fonte: https://williamdurand.fr/2013/06/03/object-calisthenics/#8-no-classes-with-more-than-two-instance-variables

9. Não utilizar
Getters e Setters
-Polêmico
-Este princípio visa encapsular
regras associadas a um objeto à
ele mesmo.

9. Não utilizar
Getters e Setters

Referências


-CRUZ, R. Desenvolva um código melhor com Object Calisthenics.
Disponível em:
<https://medium.com/@rafaelcruz_48213/desenvolva-um-c%C3%B3dig
o-melhor-com-object-calisthenics-d5364767a9ba>. Acesso em: 2 maio.
2024.
-DURAND, W. Object Calisthenics. Disponível em:
<https://williamdurand.fr/2013/06/03/object-calisthenics/#8-no-classes
-with-more-than-two-instance-variables>. Acesso em: 2 maio. 2024.

Dúvidas?

Obrigado!
[email protected]
danilopinotti.com.br
github.com/danilopinotti