SlideShare una empresa de Scribd logo
1 de 24
Calidad de código
2/24

Evita los NOTICES por desbordamientos de array
asociativo

   error_reporting(0);
   error_reporting(E_ALL ^ E_NOTICE);
   Una forma mucho más elegante de hacerlo:
3/24


Evita los comentarios papagayo
4/24


Comenta cada fichero, arriba, en la cabecera
5/24


Comenta cada función, encima, en su cabecera


   Incluye los comentarios de lo que hace la función arriba, evita
    comentar en medio del código
6/24

Elimina el “código chatarra” de tu código de
explotación

   Trozos de código comentado
   Funciones que no se usan
   Variables que no se usan
   Ficheros que no se usan
   ...
7/24


Algunas normas de notación

   Variables: camel (inicial minúscula)
   Clases: camel (inicial mayúscula)
   Funciones, métodos: camel (inicial minúscula)
   Ficheros: camel (inicial minúscula)
   Tags y atributos HTML: minúsculas
8/24


Separa lógica de negocio y presentación




ERROR: Se mezcla lógica y
presentación
9/24

Identación: establece siempre mismo espacio de
tabulación
10/24


Sé consistente con los tipos

   Dentro del fichero cronometro.js:
     ●
        ¿qué utilidad tiene la variable
        intentos?
      ●
          ¿Qué tipo de dato le va a asignar
          el parser de JS?
      ●
          ¿Qué tipo de dato habría sido
          más adecuado?
                                ¿De qué tipo son los datos que
                                 almacena?
                                Hubiera sido más adecuado entrecomillar
                                Mejor haber usado array asociativo para
                                 cachear BBDD en memoria
11/24


Nombres de variables alusivos a su cometido


   En la práctica del juego del cronómetro, qué significado crees que
    tienen las siguientes variables:
   var RALI;
   $_POST[“peticion”]
   var interruptor, interruptor2, interruptor3;
   var RASI;
12/24

Cuida el lenguaje, nunca sabes a dónde puede llegar
tu código
13/24


Identación de bloques de código

            Errores de identación!!!   ●   Antes de una llave abrir,
                                           un espacio
                                       ●   Después de una llave
                                           abrir, nueva línea
                                       ●   Las instrucciones dentro
                                           de un bloque, una
                                           tabulación a la derecha
                                       ●   La llave cerrar en una
                                           nueva línea, justo a la
                                           altura de la instrucción
                                           que abrió el bloque
                                       ●   Detrás de la llave,
                                           instrucciones con
                                           idéntica tabulación que
                                           la llave cerrar
14/24


Identación de funciones

function funcion1() {
    instruccion1;
    instruccion2;
    instruccion3;
}                              Coloca exactamente
                                   un espacio

       Idéntica tabulación
      para las instrucciones
          consecutivas
15/24


Identación de bloques if

    instruccion1;
    if ((x < 4) || (i <= 3)) {
        instruccion2;
        instruccion3;   ●   Operadores relacionales, aislados
    }                       con un espacio a cada lado
    else {              ●   Cada condición con su propio
                            paréntesis
        instruccion4;   ●   instrucciones dentro del if, 1
    }                       tabulación derecha
    instruccion5;       ●   instrucciones dentro del else, 1
                            tabulación derecha
                        ●   Llave abrir, 1 espacio antes
                        ●   Llave cerrar justo debajo del if/else
                        ●   Al cerrar la llave, eliminamos 1
                            tabulador izquierda
16/24


Alert: Minimiza su uso

   Los mensajes de Alert resultan molestos en la navegación
17/24


Aisla la declaración de estilos a .CSS

   Ejemplo de correcto aislamiento:
18/24


Aisla la declaración de estilos a .CSS

   Ejemplo de mal aislamiento:
19/24


Nombres de funciones deben contener un verbo


   Las funciones son una acción, luego deben contener un verbo:
    actualizarResltado, calcularCoste, envierCorreo,
    comprobarLogin,...
   Una función que se llama cronómetro, ¿qué hace?
     ●
        Difícil de intuir sin leer el código
20/24


Nombres de clases deben ser un sustantivo

   Nombres como Jugador, JugadoresList, Partida, Torneo,... son
    nombres válidos de clases
   NO tiene sentido una clase que se llame SortearPartido, parece
    más lógico que se trate de un método de una clase
21/24


Nombres de fichero alusivos a su contenido

   Imagina los siguientes nombres de fichero:
      ●
        javascript.js
     ●
         js.js
     ●
         utilidadesFechas.js
     ●
         funcionesCifrado.js
   Los dos primeros es algo así como decir “Sube pa'rriba”
22/24


Cada función entre líneas de separación

// ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
function f1() {
    ...
}
// ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
function f2() {
    ...
}
// ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
23/24


Nombres de fichero alusivos a su contenido

   Imagina los siguientes nombres de fichero:
      ●
        javascript.js
     ●
         js.js
     ●
         utilidadesFechas.js
     ●
         funcionesCifrado.js
   Los dos primeros es algo así como decir “Sube pa'rriba”
24/24


Declaración de variables: nunca en medio

   Las variables podemos declararlas al comienzo del fichero, como
    variables globales
   También podemos declararlas al comienzo de una función
   Evitar su declaración en medio del código

function f1() {      OK
    var x;
    var y;


    instruccion1;
    instruccion2;     !!!
    ...
    var j;
    instruccion12;
}

Más contenido relacionado

La actualidad más candente

Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de controlralhum
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2karlalopezbello
 
Las estructuras de control en la programación
Las estructuras de control en la programaciónLas estructuras de control en la programación
Las estructuras de control en la programaciónRoibertOnielEstradaL
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionalesAndreina Trejo
 
Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++Jorge Leonardo
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programaFelipe Romano
 
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdireneDaniel Irene
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivasmarigelcontreras
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Renny Batista
 
ESTRUCTURAS REPETITIVAS
ESTRUCTURAS REPETITIVASESTRUCTURAS REPETITIVAS
ESTRUCTURAS REPETITIVASJorge Leonardo
 
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...Diego Andrés Alvarez Marín
 
Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos ForRichard Robalino
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivasAbrirllave
 
Elementos del lenguaje java
Elementos del lenguaje javaElementos del lenguaje java
Elementos del lenguaje javaMarisol Henao
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccionClariza
 
Curso Java Inicial 7 Excepciones
Curso Java Inicial   7 ExcepcionesCurso Java Inicial   7 Excepciones
Curso Java Inicial 7 ExcepcionesEmilio Aviles Avila
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y EntradaCarlos Pes
 

La actualidad más candente (20)

Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2
 
Las estructuras de control en la programación
Las estructuras de control en la programaciónLas estructuras de control en la programación
Las estructuras de control en la programación
 
Estructuras condicionales
Estructuras condicionalesEstructuras condicionales
Estructuras condicionales
 
Estructuras de Control C++
Estructuras de Control C++Estructuras de Control C++
Estructuras de Control C++
 
Estructura de un programa
Estructura de un programaEstructura de un programa
Estructura de un programa
 
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
1 indicaciones excepciones_utpl_abr-ago-2014_pdirene
 
Estructuras de control selectivas
Estructuras de control selectivasEstructuras de control selectivas
Estructuras de control selectivas
 
unidad 5 excepciones propias
unidad 5 excepciones propiasunidad 5 excepciones propias
unidad 5 excepciones propias
 
Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015Java - Sintaxis Básica 2015
Java - Sintaxis Básica 2015
 
ESTRUCTURAS REPETITIVAS
ESTRUCTURAS REPETITIVASESTRUCTURAS REPETITIVAS
ESTRUCTURAS REPETITIVAS
 
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
04 - Sentencias de control condicionales y ciclos en lenguaje C: for, while, ...
 
Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos For
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Instrucciones de control repetitivas
Instrucciones de control repetitivasInstrucciones de control repetitivas
Instrucciones de control repetitivas
 
Elementos del lenguaje java
Elementos del lenguaje javaElementos del lenguaje java
Elementos del lenguaje java
 
Estructuras de seleccion
Estructuras de seleccionEstructuras de seleccion
Estructuras de seleccion
 
Curso Java Inicial 7 Excepciones
Curso Java Inicial   7 ExcepcionesCurso Java Inicial   7 Excepciones
Curso Java Inicial 7 Excepciones
 
Asignación, Salida y Entrada
Asignación, Salida y EntradaAsignación, Salida y Entrada
Asignación, Salida y Entrada
 

Similar a Código limpio

Instrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardadoInstrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardadoandreadelacruz002
 
Instrucciones basicas-para-c++
Instrucciones basicas-para-c++Instrucciones basicas-para-c++
Instrucciones basicas-para-c++andreadelacruz002
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLabEdgar Galvez
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Michelle Torres
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++grachika
 
Informe tecnico u4 final
Informe tecnico u4 finalInforme tecnico u4 final
Informe tecnico u4 finalIrving Che
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicioswendy_romero06
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosEfren Pacheco
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 

Similar a Código limpio (20)

Instrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardadoInstrucciones basicas-para-c-autoguardado
Instrucciones basicas-para-c-autoguardado
 
Instrucciones basicas-para-c++
Instrucciones basicas-para-c++Instrucciones basicas-para-c++
Instrucciones basicas-para-c++
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLab
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Introduccion clips
Introduccion clipsIntroduccion clips
Introduccion clips
 
Tutorial jared
Tutorial jaredTutorial jared
Tutorial jared
 
Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2Taller de programación de sistemas. Descripción de práctica 2
Taller de programación de sistemas. Descripción de práctica 2
 
05 - Funciones en lenguaje C
05 - Funciones en lenguaje C05 - Funciones en lenguaje C
05 - Funciones en lenguaje C
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++
 
Informe tecnico u4 final
Informe tecnico u4 finalInforme tecnico u4 final
Informe tecnico u4 final
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicios
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicios
 
Programacion I
Programacion IProgramacion I
Programacion I
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 

Más de Moisés Pérez Delgado

Conceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoConceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoMoisés Pérez Delgado
 
Conceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoConceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoMoisés Pérez Delgado
 

Más de Moisés Pérez Delgado (20)

02 resistencias y condensadores
02 resistencias y condensadores02 resistencias y condensadores
02 resistencias y condensadores
 
02 croquis y canalizacion
02 croquis y canalizacion02 croquis y canalizacion
02 croquis y canalizacion
 
02 carcasa y fuente
02 carcasa y fuente02 carcasa y fuente
02 carcasa y fuente
 
03 circuitos en cc
03 circuitos en cc03 circuitos en cc
03 circuitos en cc
 
Conceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entornoConceptos básicos de electricidad en mi entorno
Conceptos básicos de electricidad en mi entorno
 
Conceptos básicos de electricidad
Conceptos básicos de electricidadConceptos básicos de electricidad
Conceptos básicos de electricidad
 
Conceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entornoConceptos básicos de electricidad: elementos en mi entorno
Conceptos básicos de electricidad: elementos en mi entorno
 
Naturales temas 01 al 04
Naturales   temas 01 al 04Naturales   temas 01 al 04
Naturales temas 01 al 04
 
Tema 02 elementos del medio natural
Tema 02   elementos del medio naturalTema 02   elementos del medio natural
Tema 02 elementos del medio natural
 
Naturales temas 05 al 07
Naturales   temas 05 al 07Naturales   temas 05 al 07
Naturales temas 05 al 07
 
Matemáticas: Temas 1 a 4
Matemáticas: Temas 1 a 4Matemáticas: Temas 1 a 4
Matemáticas: Temas 1 a 4
 
Tema 1. El planeta Tierra
Tema 1. El planeta TierraTema 1. El planeta Tierra
Tema 1. El planeta Tierra
 
La Tierra
La TierraLa Tierra
La Tierra
 
Cálculo de circuitos: Thévenin
Cálculo de circuitos: ThéveninCálculo de circuitos: Thévenin
Cálculo de circuitos: Thévenin
 
Teoría de circuitos: superposición
Teoría de circuitos: superposiciónTeoría de circuitos: superposición
Teoría de circuitos: superposición
 
Resolución de circuitos con Kirchoff
Resolución de circuitos con KirchoffResolución de circuitos con Kirchoff
Resolución de circuitos con Kirchoff
 
Corriente alterna
Corriente alternaCorriente alterna
Corriente alterna
 
Que sabes de electricidad
Que sabes de electricidadQue sabes de electricidad
Que sabes de electricidad
 
Git: control de versiones
Git: control de versionesGit: control de versiones
Git: control de versiones
 
Qué sabes de word?
Qué sabes de word?Qué sabes de word?
Qué sabes de word?
 

Último

La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalJonathanCovena1
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxhenarfdez
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxBeatrizQuijano2
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOPsicoterapia Holística
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...Ars Erótica
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCCarlosEduardoSosa2
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 

Último (20)

La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
PP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomasPP_Comunicacion en Salud: Objetivación de signos y síntomas
PP_Comunicacion en Salud: Objetivación de signos y síntomas
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Los dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la VerdadLos dos testigos. Testifican de la Verdad
Los dos testigos. Testifican de la Verdad
 

Código limpio

  • 2. 2/24 Evita los NOTICES por desbordamientos de array asociativo  error_reporting(0);  error_reporting(E_ALL ^ E_NOTICE);  Una forma mucho más elegante de hacerlo:
  • 4. 4/24 Comenta cada fichero, arriba, en la cabecera
  • 5. 5/24 Comenta cada función, encima, en su cabecera  Incluye los comentarios de lo que hace la función arriba, evita comentar en medio del código
  • 6. 6/24 Elimina el “código chatarra” de tu código de explotación  Trozos de código comentado  Funciones que no se usan  Variables que no se usan  Ficheros que no se usan  ...
  • 7. 7/24 Algunas normas de notación  Variables: camel (inicial minúscula)  Clases: camel (inicial mayúscula)  Funciones, métodos: camel (inicial minúscula)  Ficheros: camel (inicial minúscula)  Tags y atributos HTML: minúsculas
  • 8. 8/24 Separa lógica de negocio y presentación ERROR: Se mezcla lógica y presentación
  • 9. 9/24 Identación: establece siempre mismo espacio de tabulación
  • 10. 10/24 Sé consistente con los tipos  Dentro del fichero cronometro.js: ● ¿qué utilidad tiene la variable intentos? ● ¿Qué tipo de dato le va a asignar el parser de JS? ● ¿Qué tipo de dato habría sido más adecuado?  ¿De qué tipo son los datos que almacena?  Hubiera sido más adecuado entrecomillar  Mejor haber usado array asociativo para cachear BBDD en memoria
  • 11. 11/24 Nombres de variables alusivos a su cometido  En la práctica del juego del cronómetro, qué significado crees que tienen las siguientes variables:  var RALI;  $_POST[“peticion”]  var interruptor, interruptor2, interruptor3;  var RASI;
  • 12. 12/24 Cuida el lenguaje, nunca sabes a dónde puede llegar tu código
  • 13. 13/24 Identación de bloques de código Errores de identación!!! ● Antes de una llave abrir, un espacio ● Después de una llave abrir, nueva línea ● Las instrucciones dentro de un bloque, una tabulación a la derecha ● La llave cerrar en una nueva línea, justo a la altura de la instrucción que abrió el bloque ● Detrás de la llave, instrucciones con idéntica tabulación que la llave cerrar
  • 14. 14/24 Identación de funciones function funcion1() {     instruccion1;     instruccion2;     instruccion3; } Coloca exactamente un espacio Idéntica tabulación para las instrucciones consecutivas
  • 15. 15/24 Identación de bloques if     instruccion1;     if ((x < 4) || (i <= 3)) {         instruccion2;         instruccion3; ● Operadores relacionales, aislados     } con un espacio a cada lado     else { ● Cada condición con su propio paréntesis         instruccion4; ● instrucciones dentro del if, 1     } tabulación derecha     instruccion5; ● instrucciones dentro del else, 1 tabulación derecha ● Llave abrir, 1 espacio antes ● Llave cerrar justo debajo del if/else ● Al cerrar la llave, eliminamos 1 tabulador izquierda
  • 16. 16/24 Alert: Minimiza su uso  Los mensajes de Alert resultan molestos en la navegación
  • 17. 17/24 Aisla la declaración de estilos a .CSS  Ejemplo de correcto aislamiento:
  • 18. 18/24 Aisla la declaración de estilos a .CSS  Ejemplo de mal aislamiento:
  • 19. 19/24 Nombres de funciones deben contener un verbo  Las funciones son una acción, luego deben contener un verbo: actualizarResltado, calcularCoste, envierCorreo, comprobarLogin,...  Una función que se llama cronómetro, ¿qué hace? ● Difícil de intuir sin leer el código
  • 20. 20/24 Nombres de clases deben ser un sustantivo  Nombres como Jugador, JugadoresList, Partida, Torneo,... son nombres válidos de clases  NO tiene sentido una clase que se llame SortearPartido, parece más lógico que se trate de un método de una clase
  • 21. 21/24 Nombres de fichero alusivos a su contenido  Imagina los siguientes nombres de fichero: ● javascript.js ● js.js ● utilidadesFechas.js ● funcionesCifrado.js  Los dos primeros es algo así como decir “Sube pa'rriba”
  • 22. 22/24 Cada función entre líneas de separación // ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ function f1() {     ... } // ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ function f2() {     ... } // ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­
  • 23. 23/24 Nombres de fichero alusivos a su contenido  Imagina los siguientes nombres de fichero: ● javascript.js ● js.js ● utilidadesFechas.js ● funcionesCifrado.js  Los dos primeros es algo así como decir “Sube pa'rriba”
  • 24. 24/24 Declaración de variables: nunca en medio  Las variables podemos declararlas al comienzo del fichero, como variables globales  También podemos declararlas al comienzo de una función  Evitar su declaración en medio del código function f1() { OK     var x;     var y;     instruccion1;     instruccion2; !!!     ...     var j;     instruccion12; }