Top Banner
Clean Code Anallely Olivares (@tsunllly)
27

Código limpio

May 10, 2015

Download

Software

Básada en el libro de Clean Code: A Handbook of Agile Software Craftsmanship
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Código limpio

Clean CodeAnallely Olivares (@tsunllly)

Page 2: Código limpio

Un día cualquiera ...

Obtener camas bloqueadas* Devuelve una List<Cama>* Params:

● Fecha desde● Fecha hasta● Folio área enfermería ?

Page 3: Código limpio
Page 4: Código limpio

Antes/Después

Difícil léctura

○ Scroll a la derecha○ Hay que leer los comentarios○ Muchos posibles flujos

Page 5: Código limpio
Page 6: Código limpio

Día a día

Escribimos código

Leemos código !!

buen código / mal código

Page 7: Código limpio

Buenos nombres

Page 8: Código limpio

Significativospublic List<int[]> getThem() {

List<int[]> list1 = new ArrayList<int[]>();

for (int[] x : theList)

if (x[0] == 4)

list1.add(x);

return list1;

}

Page 9: Código limpio

Significativospublic List<int[]> getFlaggedRows() {

List<int[]> flaggedRows = new ArrayList<int[]>();

for (int[] row : gameBoard)

if (row[STATUS_VALUE] == FLAGGED)

flaggedRows.add(cell);

return flaggedRows;

}

Page 10: Código limpio

Algunos nombres

genymdhms - Impronunciable

i, j - No encontrable

badgesList - Amarrado a un tipo

getActor / findActor - No coherencia

Page 11: Código limpio

Recomendaciones

Verbo + Sustantivos registerUser getMax countWordsComo preguntas isValidPassword Declarativos markAsInactiveUser

Page 12: Código limpio

Funciones

Page 13: Código limpio

Una sola cosa bien hecha

● Facilita pruebas● Facilita reusar código

EsBloqueoDeCama

EstaDentroDeLasFechas

EsDelAreaRequerida

CrearCama

Page 14: Código limpio

Funciones honestas

Sin efectos secundarios

Page 15: Código limpio

Funciones pequeñas

Page 16: Código limpio

Niveles de abstracción

● EsMenorEdad(User u)

● DiasTranscurridosDesde(Fecha fecha)

● DateTime, Now, millis, days, (-)

Page 17: Código limpio

Leer de arriba a abajo

Page 18: Código limpio

Argumentos

Ningún argumento :)

Page 19: Código limpio

Argumentos

Flag

render(boolean isSuite)

* renderForSuite()

* renderForSingleTest()

Page 20: Código limpio

Principio DRY

Don’t Repeat Yourself

DUPLICATION may be the root of all evil in software

Page 21: Código limpio

Cometarios

Explain yourself in code

Page 22: Código limpio

Sugerencias de formateo

* Las variables deben ser declaradas lo más cerca posible al lugar dónde se usan

Page 23: Código limpio

Sugerencias de formato

Agrupar por afinidad

● Más cerca mientras más relacionados estén

● Separar con líneas en blanco diferencias en la lógica

Page 24: Código limpio

Sugerencias de formato

Identación

¿Dejar todo en una sola línea?

El equipo dicta las reglasmetodo{….}

metodo {….}

Page 25: Código limpio

Pruebas

assert assert assert assert

Pruebas pequeñas

Un assert por prueba

Page 26: Código limpio

No vivir con las ventanas rotas

Page 27: Código limpio

Finally