SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

Presentación pseudocódigo
Presentación pseudocódigoPresentación pseudocódigo
Presentación pseudocódigoStudent
 
tipos de datos abstractos
tipos de datos abstractostipos de datos abstractos
tipos de datos abstractosVane
 
Pseudocodigo
PseudocodigoPseudocodigo
PseudocodigoAPILUZ1
 
Algoritmos, pseudocodigos y diagramas de flujo
Algoritmos, pseudocodigos y diagramas de flujoAlgoritmos, pseudocodigos y diagramas de flujo
Algoritmos, pseudocodigos y diagramas de flujoMaria Valenzuela
 
Trabajo de thali infor
Trabajo de thali inforTrabajo de thali infor
Trabajo de thali inforThalia Diaz
 
PROGRAMACION ESTRUCTURADA
PROGRAMACION ESTRUCTURADAPROGRAMACION ESTRUCTURADA
PROGRAMACION ESTRUCTURADATeDy j Sanchez
 
12 PHP. Lineas de comentario
12 PHP. Lineas de comentario12 PHP. Lineas de comentario
12 PHP. Lineas de comentarioJosé M. Padilla
 
Presentacion PseudocóDigo
Presentacion PseudocóDigoPresentacion PseudocóDigo
Presentacion PseudocóDigoMarco Antonio
 
Action scrip 3,0
Action scrip 3,0Action scrip 3,0
Action scrip 3,0Sneider76
 
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'Felipe Lozada
 
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 1Jeckson Loza
 

Mais procurados (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
 

Semelhante a 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
 

Último

COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .GIANELAKAINACHALLCOJ2
 
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
Cesar Vilchis Vieyra  Cesar Vilchis VieyraCesar Vilchis Vieyra  Cesar Vilchis Vieyra
Cesar Vilchis Vieyra Cesar Vilchis Vieyraestudiantes2010
 
Los países por porcentaje de población blanca europea en AL (2024).pdf
Los países por porcentaje de población blanca europea en AL (2024).pdfLos países por porcentaje de población blanca europea en AL (2024).pdf
Los países por porcentaje de población blanca europea en AL (2024).pdfJC Díaz Herrera
 
Las marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdfLas marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdfJC Díaz Herrera
 
PLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorarPLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorarCelesteRolon2
 
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptxP.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptxJafetColli
 
procedimiento paran la planificación en los centros educativos tipo v(multig...
procedimiento  paran la planificación en los centros educativos tipo v(multig...procedimiento  paran la planificación en los centros educativos tipo v(multig...
procedimiento paran la planificación en los centros educativos tipo v(multig...claudioluna1121
 
ETICA EN LA CADENAS la cadena de suministro
ETICA EN LA CADENAS la cadena de suministroETICA EN LA CADENAS la cadena de suministro
ETICA EN LA CADENAS la cadena de suministroIrisMoreno27
 
El Manierismo. El Manierismo
El Manierismo.              El ManierismoEl Manierismo.              El Manierismo
El Manierismo. El Manierismofariannys5
 
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdfCALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdfPOULANDERSONDELGADOA2
 
Novelas Turcas vs Series de EUA en audiencia (2024).pdf
Novelas Turcas vs Series de EUA en audiencia  (2024).pdfNovelas Turcas vs Series de EUA en audiencia  (2024).pdf
Novelas Turcas vs Series de EUA en audiencia (2024).pdfJC Díaz Herrera
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1alfredo130306
 
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).pdfJC Díaz Herrera
 
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.pptssuserbdc329
 
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 SIVIGILAsofiagomez288291
 
Posiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdfPosiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdfJC Díaz Herrera
 
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.pdfjosellaqtas
 
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 pacienteMedicinaInternaresid1
 
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).pdfJC Díaz Herrera
 
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdfPosiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdfJC Díaz Herrera
 

Último (20)

COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .COMUNICADO PARA TODO TIPO DE REUNIONES .
COMUNICADO PARA TODO TIPO DE REUNIONES .
 
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
Cesar Vilchis Vieyra  Cesar Vilchis VieyraCesar Vilchis Vieyra  Cesar Vilchis Vieyra
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
 
Los países por porcentaje de población blanca europea en AL (2024).pdf
Los países por porcentaje de población blanca europea en AL (2024).pdfLos países por porcentaje de población blanca europea en AL (2024).pdf
Los países por porcentaje de población blanca europea en AL (2024).pdf
 
Las marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdfLas marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdf
 
PLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorarPLAN ANUAL DE PROYECTO 2020. para mejorar
PLAN ANUAL DE PROYECTO 2020. para mejorar
 
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptxP.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
P.P ANÁLISIS DE UN TEXTO BÍBLICO. TEMA 10.pptx
 
procedimiento paran la planificación en los centros educativos tipo v(multig...
procedimiento  paran la planificación en los centros educativos tipo v(multig...procedimiento  paran la planificación en los centros educativos tipo v(multig...
procedimiento paran la planificación en los centros educativos tipo v(multig...
 
ETICA EN LA CADENAS la cadena de suministro
ETICA EN LA CADENAS la cadena de suministroETICA EN LA CADENAS la cadena de suministro
ETICA EN LA CADENAS la cadena de suministro
 
El Manierismo. El Manierismo
El Manierismo.              El ManierismoEl Manierismo.              El Manierismo
El Manierismo. El Manierismo
 
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdfCALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
 
Novelas Turcas vs Series de EUA en audiencia (2024).pdf
Novelas Turcas vs Series de EUA en audiencia  (2024).pdfNovelas Turcas vs Series de EUA en audiencia  (2024).pdf
Novelas Turcas vs Series de EUA en audiencia (2024).pdf
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1
 
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
 
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
 
Posiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdfPosiciones del IDH a nivel global en México (1982-2024).pdf
Posiciones del IDH a nivel global en México (1982-2024).pdf
 
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
 
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
 
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
 
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdfPosiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
Posiciones_del_sionismo_en_los_imperios globales de la humanidad (2024).pdf
 

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