SlideShare une entreprise Scribd logo
1  sur  10
Funciones!
Capítulo 3 – Clean Code
Funciones
 El objetivo de este capítulo es
básicamente distinguir entre las
buenas y malas prácticas a la hora
de escribir funciones.
 Las funciones son la primera línea
de organización en cualquier
programa.
Tamaño
 Reglas para crear funciones óptimas, limpias y claras:
1. Debe ser corta.
2. Debe ser aún más corta.
 Esto permite que la revisión sea mucho más transparente y más eficientes.
Además de que es más entendible para cualquier desarrollador que tuviera
que hacer soporte sobre dicha función.
 Se recomienda escribir funciones entre de máximo 20-30 líneas, lo ideal es
una función de no más de 5 líneas.
Bloques y Sangría
 Los bloques que contengan expresiones if, else, while deben ser idealmente
de una sola línea, la cual sería la llamada a otra función.
 Mantener una sangría de 1 nivel, máximo 2. Esto hace a la función mucho más
fácil de leer y de entender
Hacer una sola cosa!
 En ocasiones es difícil discernir entre cuando una cosa es solo una o varias.
Por ejemplo: Implementar un login en un aplicativo.
 Lo más recomendable es llevar todo a un nivel de abstracción. Cómo hacerlo?.
Una forma de saber si una función está haciendo una sola cosa es ver si
puedes extraer otra función a partir de ella, es decir, si puedes aislar otra
funcionalidad con un nombre en particular.
 Mantener un solo nivel de abstracción.
Usar Nombres Descriptivos
 Facilita la lectura de código y lo hace más entendible al desarrollador.
 Es preferible usar nombres largos y descriptivos que cortos y enigmáticos.
 Ser consistente con los nombres
Argumentos
 El número ideal de argumentos para una función es cero. (niladic)
 1 argumento (monadic): writeField(name)
 2 argumentos (dyadic): writeField(output-Stream, name)
Point(x,y)
 3 argumentos (triadic):
makeCircle(double x, double y, double r)  makeCircle(Point center, double r)
 4 o más argumentos (polyadic). Estos requieren un justificación especial para ser
usados, deben ser evitados.
 En la medida de lo posible usar funciones que contengan solo un argumento pues
facilita el entendimiento de la misma. En caso de tener que enviar más de un
argumento, evaluar la posibilidad de enviarlo encapsulado en un objeto o una
estructura.
Argumentos
 Evitar no-retornos en funciones las cuales su objetivo sea transformar un
objeto, pues puede ser confuso.
 Void pintarDibujo(Dibujo)  Dibujo Pintar(Dibujo)
 Evitar los argumentos bandera es un error enorme de diseño y es una clara
señal de que la función no hace sólo una cosa, es decir, opera en función del
valor en la bandera.
Conclusiones
 En este capitulo se habló de la importancia de la funciones y del hecho de
que estén bien estructuradas y cumplan ciertas características que las hacen
legibles, fáciles de entender, fácil de hacerles mantenimiento y ajustes.
 Entre estas características recordemos las principales:
 Que sean pequeñas
 Que hagan una sola cosa
 Que estén bien nombradas
 Que reciban la menor cantidad de argumentos posibles

Contenu connexe

Tendances (17)

Capítulo 8 breaking down giant expressions
Capítulo 8  breaking down giant expressionsCapítulo 8  breaking down giant expressions
Capítulo 8 breaking down giant expressions
 
Presentación pseudocódigo
Presentación pseudocódigoPresentación pseudocódigo
Presentación pseudocódigo
 
Pseudocodigo ferro
Pseudocodigo ferroPseudocodigo ferro
Pseudocodigo ferro
 
tipos de datos abstractos
tipos de datos abstractostipos de datos abstractos
tipos de datos abstractos
 
5 tdas
5 tdas5 tdas
5 tdas
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Trabajo 2
Trabajo 2Trabajo 2
Trabajo 2
 
Algoritmos, pseudocodigos y diagramas de flujo
Algoritmos, pseudocodigos y diagramas de flujoAlgoritmos, pseudocodigos y diagramas de flujo
Algoritmos, pseudocodigos y diagramas de flujo
 
Trabajo de thali infor
Trabajo de thali inforTrabajo de thali infor
Trabajo de thali infor
 
PROGRAMACION ESTRUCTURADA
PROGRAMACION ESTRUCTURADAPROGRAMACION ESTRUCTURADA
PROGRAMACION ESTRUCTURADA
 
5 Tdas
5 Tdas5 Tdas
5 Tdas
 
12 PHP. Lineas de comentario
12 PHP. Lineas de comentario12 PHP. Lineas de comentario
12 PHP. Lineas de comentario
 
Presentacion PseudocóDigo
Presentacion PseudocóDigoPresentacion PseudocóDigo
Presentacion PseudocóDigo
 
Melendez
MelendezMelendez
Melendez
 
Action scrip 3,0
Action scrip 3,0Action scrip 3,0
Action scrip 3,0
 
Conceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje deConceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje de
 
Introducción a los algoritmos y programación 1
Introducción a los algoritmos y programación   1Introducción a los algoritmos y programación   1
Introducción a los algoritmos y programación 1
 

Similaire à Funciones

Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
Mariannis Ortega
 
12 programacion modular
12 programacion modular12 programacion modular
12 programacion modular
Laura Cruz
 

Similaire à Funciones (20)

Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)Compendio de clean code (robert c. martin)
Compendio de clean code (robert c. martin)
 
Funciones y módulos en Python
Funciones y módulos en PythonFunciones y módulos en Python
Funciones y módulos en Python
 
Informatica
InformaticaInformatica
Informatica
 
Tap04 poo
Tap04 pooTap04 poo
Tap04 poo
 
ESTRUCTURA DE DATOS
ESTRUCTURA DE DATOSESTRUCTURA DE DATOS
ESTRUCTURA DE DATOS
 
ALP Unidad 4: Programación modular
ALP Unidad 4: Programación modularALP Unidad 4: Programación modular
ALP Unidad 4: Programación modular
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Introduccion actionscript
Introduccion actionscriptIntroduccion actionscript
Introduccion actionscript
 
Consideraciones pragmatica
Consideraciones pragmaticaConsideraciones pragmatica
Consideraciones pragmatica
 
Ventajas de usar funciones en php
Ventajas de usar funciones en phpVentajas de usar funciones en php
Ventajas de usar funciones en php
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
Clase1_Python-CTIC
Clase1_Python-CTICClase1_Python-CTIC
Clase1_Python-CTIC
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Cuida tu código: Clean Code
Cuida tu código: Clean CodeCuida tu código: Clean Code
Cuida tu código: Clean Code
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
12 programacion modular
12 programacion modular12 programacion modular
12 programacion modular
 
12 programacion modular
12 programacion modular12 programacion modular
12 programacion modular
 
Guia1 pii
Guia1 piiGuia1 pii
Guia1 pii
 

Dernier

Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
JC Díaz Herrera
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
BESTTech1
 

Dernier (20)

AA CUADRO DE TEORIA DEL CASO. (1) (1).docx
AA CUADRO DE TEORIA DEL CASO. (1) (1).docxAA CUADRO DE TEORIA DEL CASO. (1) (1).docx
AA CUADRO DE TEORIA DEL CASO. (1) (1).docx
 
Presentacion-Prevencion-Incendios-Forestales.pdf
Presentacion-Prevencion-Incendios-Forestales.pdfPresentacion-Prevencion-Incendios-Forestales.pdf
Presentacion-Prevencion-Incendios-Forestales.pdf
 
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
 
presentacion de conjuntos para primaria.ppt
presentacion de conjuntos para primaria.pptpresentacion de conjuntos para primaria.ppt
presentacion de conjuntos para primaria.ppt
 
diseño de una linea de produccion de jabon liquido.pptx
diseño de una linea de produccion de jabon liquido.pptxdiseño de una linea de produccion de jabon liquido.pptx
diseño de una linea de produccion de jabon liquido.pptx
 
Trabajo Final de Powerbi DMC Indicadores.pptx
Trabajo Final de Powerbi DMC Indicadores.pptxTrabajo Final de Powerbi DMC Indicadores.pptx
Trabajo Final de Powerbi DMC Indicadores.pptx
 
Los idiomas más hablados en el mundo (2024).pdf
Los idiomas más hablados en el mundo  (2024).pdfLos idiomas más hablados en el mundo  (2024).pdf
Los idiomas más hablados en el mundo (2024).pdf
 
Análisis del Modo y Efecto de Fallas AMEF.ppt
Análisis del Modo y Efecto de Fallas AMEF.pptAnálisis del Modo y Efecto de Fallas AMEF.ppt
Análisis del Modo y Efecto de Fallas AMEF.ppt
 
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILASistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
 
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdfReservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
 
Investigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdfInvestigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdf
 
Posiciones en el IDH global de EUA (1950-2024).pdf
Posiciones en el IDH global de EUA (1950-2024).pdfPosiciones en el IDH global de EUA (1950-2024).pdf
Posiciones en el IDH global de EUA (1950-2024).pdf
 
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
Cesar Vilchis Vieyra  Cesar Vilchis VieyraCesar Vilchis Vieyra  Cesar Vilchis Vieyra
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
 
COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .
 
Evolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdfEvolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdf
 
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombiadecreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
 
Triptico-del-Bullying qué es, cómo detectarlo, donde acudir
Triptico-del-Bullying qué es, cómo detectarlo, donde acudirTriptico-del-Bullying qué es, cómo detectarlo, donde acudir
Triptico-del-Bullying qué es, cómo detectarlo, donde acudir
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
 
La Guerra Biologica - Emiliano Paico Vilchez.pdf
La Guerra Biologica - Emiliano Paico Vilchez.pdfLa Guerra Biologica - Emiliano Paico Vilchez.pdf
La Guerra Biologica - Emiliano Paico Vilchez.pdf
 
llllllllllllllllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
llllllllllllllllllllllllllllllllllllllllllllllllllllllllll
 

Funciones

  • 2. Funciones  El objetivo de este capítulo es básicamente distinguir entre las buenas y malas prácticas a la hora de escribir funciones.  Las funciones son la primera línea de organización en cualquier programa.
  • 3.
  • 4. Tamaño  Reglas para crear funciones óptimas, limpias y claras: 1. Debe ser corta. 2. Debe ser aún más corta.  Esto permite que la revisión sea mucho más transparente y más eficientes. Además de que es más entendible para cualquier desarrollador que tuviera que hacer soporte sobre dicha función.  Se recomienda escribir funciones entre de máximo 20-30 líneas, lo ideal es una función de no más de 5 líneas.
  • 5. Bloques y Sangría  Los bloques que contengan expresiones if, else, while deben ser idealmente de una sola línea, la cual sería la llamada a otra función.  Mantener una sangría de 1 nivel, máximo 2. Esto hace a la función mucho más fácil de leer y de entender
  • 6. Hacer una sola cosa!  En ocasiones es difícil discernir entre cuando una cosa es solo una o varias. Por ejemplo: Implementar un login en un aplicativo.  Lo más recomendable es llevar todo a un nivel de abstracción. Cómo hacerlo?. Una forma de saber si una función está haciendo una sola cosa es ver si puedes extraer otra función a partir de ella, es decir, si puedes aislar otra funcionalidad con un nombre en particular.  Mantener un solo nivel de abstracción.
  • 7. Usar Nombres Descriptivos  Facilita la lectura de código y lo hace más entendible al desarrollador.  Es preferible usar nombres largos y descriptivos que cortos y enigmáticos.  Ser consistente con los nombres
  • 8. Argumentos  El número ideal de argumentos para una función es cero. (niladic)  1 argumento (monadic): writeField(name)  2 argumentos (dyadic): writeField(output-Stream, name) Point(x,y)  3 argumentos (triadic): makeCircle(double x, double y, double r)  makeCircle(Point center, double r)  4 o más argumentos (polyadic). Estos requieren un justificación especial para ser usados, deben ser evitados.  En la medida de lo posible usar funciones que contengan solo un argumento pues facilita el entendimiento de la misma. En caso de tener que enviar más de un argumento, evaluar la posibilidad de enviarlo encapsulado en un objeto o una estructura.
  • 9. Argumentos  Evitar no-retornos en funciones las cuales su objetivo sea transformar un objeto, pues puede ser confuso.  Void pintarDibujo(Dibujo)  Dibujo Pintar(Dibujo)  Evitar los argumentos bandera es un error enorme de diseño y es una clara señal de que la función no hace sólo una cosa, es decir, opera en función del valor en la bandera.
  • 10. Conclusiones  En este capitulo se habló de la importancia de la funciones y del hecho de que estén bien estructuradas y cumplan ciertas características que las hacen legibles, fáciles de entender, fácil de hacerles mantenimiento y ajustes.  Entre estas características recordemos las principales:  Que sean pequeñas  Que hagan una sola cosa  Que estén bien nombradas  Que reciban la menor cantidad de argumentos posibles