SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024
REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024
REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024
IrapuatoCmovamos
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
ssuserbdc329
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
BESTTech1
 
metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
MedicinaInternaresid1
 
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIALINFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
MANUELVILELA7
 

Kürzlich hochgeladen (20)

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
 
aine-2014.pdf/tipos de aines-clasificación
aine-2014.pdf/tipos de aines-clasificaciónaine-2014.pdf/tipos de aines-clasificación
aine-2014.pdf/tipos de aines-clasificación
 
REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024
REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024
REPORTE DE HOMICIDIO DOLOSO IRAPUATO ABRIL 2024
 
Los primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdfLos primeros 60 países por IDH en el año (2024).pdf
Los primeros 60 países por IDH en el año (2024).pdf
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.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
 
EPIDEMIO CANCER PULMON resumen nnn.pptx
EPIDEMIO CANCER PULMON  resumen nnn.pptxEPIDEMIO CANCER PULMON  resumen nnn.pptx
EPIDEMIO CANCER PULMON resumen nnn.pptx
 
Principales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto RicoPrincipales Retos Demográficos de Puerto Rico
Principales Retos Demográficos de Puerto Rico
 
Investigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdfInvestigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdf
 
data lista de ingresantes de la universidad de ucayali 2024.pdf
data lista de ingresantes de la universidad de ucayali 2024.pdfdata lista de ingresantes de la universidad de ucayali 2024.pdf
data lista de ingresantes de la universidad de ucayali 2024.pdf
 
6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx6.3 Hidrologia Geomorfologia Cuenca.pptx
6.3 Hidrologia Geomorfologia Cuenca.pptx
 
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docxAMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
AMNIOS Y CORDON UMBILICAL en el 3 embarazo (1).docx
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
 
El Manierismo. El Manierismo
El Manierismo.              El ManierismoEl Manierismo.              El Manierismo
El Manierismo. El Manierismo
 
metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
 
Las familias más ricas de África en el año (2024).pdf
Las familias más ricas de África en el año (2024).pdfLas familias más ricas de África en el año (2024).pdf
Las familias más ricas de África en el año (2024).pdf
 
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
 
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIALINFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
INFORME FINAL ESTADISTICA DESCRIPTIVA E INFERENCIAL
 
MARCO TEORICO, SEMINARIO DE INVESTIGACION,
MARCO TEORICO, SEMINARIO DE INVESTIGACION,MARCO TEORICO, SEMINARIO DE INVESTIGACION,
MARCO TEORICO, SEMINARIO DE INVESTIGACION,
 

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