SlideShare a Scribd company logo
1 of 27
Guía de Buenas Prácticas para Desarrolladores PHP Juan Minaya leónminayaleon@gmail.com
Agenda Programación IDE Base de Datos Código Estándar Documentación Herramientas y Procesos Colaboración Control de Código
IDE (Integrated development environment) NetBeans ¿Por que? Soporte HTML, JavaScript y CSS Autoformato de Código Refactoring  Autocompletado Generador de Código Cliente SQL (SQL Server, MySQL, Oracle, etc.) Resaltado de código (PHP, JS,CSS,HTML,SQL, etc.) Clientes: FTP, SVN, etc. Plugins: phpDocumentor, Zend Framework, Symfony, Smarty, phpUnit, phpDebug, etc.
IDE (Integrated development environment) MySQL Workbench Generación de Diccionario de Datos Ingeniería Inversa , Sincronización Generación de Formal Normales (1FN, 2FN, 3FN)
Diseño de Base de Datos  ,[object Object]
¿Cuál se ve mejor? CLIENTE, cliente, Cliente, ClienteCuenta, cliente_cuenta, CLIENTE_CUENTA ,[object Object],Mysql Server, SQL Server, Oracle
Diseño de Base de Datos  Mysql Server Distingue entre mayúsculas y minúsculas sólo los nombres de la base de datos y tablas, más no de sus columnas. Variable de configuración lower_case_table_names, valor: 0 -> Las tablas se almacenan con la sensibilidad especificada en la sentencia de creación (Linux). SELECT * FROM cliente; SELECT * FROM CLIENTE; (ERROR) 1 -> Las tablas se almacenan convirtiendo sus nombres a minúsculas (Windows y Mac). SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK) 2 -> Los tablas se almacenan con la sensibilidad especificada en la sentencia de creación. SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK)
Diseño de Base de Datos  Mysql Server  Cita 1: Crear y referirse a bases de datos y tablas usando siempre minúsculas. Esto es lo recomendado para lograr máxima portabilidad y facilidad de uso. Fuente: Documentación Mysql. Cita 2: Si se utilizan tablas InnoDB, se debería establecer lower_case_table_names en 1 en todas las plataformas para forzar a que los nombres sean convertidos a minúsculas. Fuente: Documentación Mysql.
Diseño de Base de Datos  ,[object Object],Todo parte del concepto de entidad (cliente, cuenta, factura, producto, etc.) Modelo ER pretende representar la “realidad”, nombrar las tablas en plural sería la mejor opción, pero…. En la implementación usas muchos identificadores: botones, formularios, grillas, etc. Todos referidos a una entidad (btnCliente, frmCliente) no colocas (btnClientes, frmClientes, chkClientes). Si tuviésemos que representar (cuentas de un cliente) al estilo plural  tendríamos estas opciones: cuentas_clientes ó cuentas_cliente, si usaríamos el estilo singular sólo habría una opción: cuenta_cliente. En otras palabras es una cuestión de costo/beneficio
Diseño de Base de Datos  ¿Se debe usar prefijos? ISO/IEC 11179 (normalización de metadata y metada registry ) No recomienda el uso de Prefijos ni Sufijos, salvo en los casos que en una sola base de datos se compartan muchos proyectos Ejemplos de buenas practicas: Cliente_Cuentas, Cliente_Cuenta SQL Server y Oracle han adoptado este estándar MySQL recomienda usar minúsculas
CONSEJO A En MySQL nombra las base de datos y tablas con minúsculas usando el estilo singular, para el caso de nombres compuestos usar underscore ( _ ), para SQL Server y Oracle sigue el estándar ISO/IEC 11179
PHP Código Estándar Seguir la Guía de Estilos Zend (DRAFT) General Para archivos que sólo contengan código PHP la etiqueta de cierre ( “?>” ) debe ser omitida. Indentation Usar como indent (sangría) 4 espacios. La longitud máxima de cualquier línea de código PHP es de 120 caracteres.
PHP Código Estándar Convención de Nombres Se seguirá la guía de estilos desarrollada por Zend para su proyecto opensource ZF. Clases El nombres de las clases relaciona directamente con los directorios donde se almacenan. Db/Mysql/Adapter.php -> Db_Mysql_Adapter Sólo permitido caracteres alfanuméricos y el underscore (sólo reemplaza el separador de ruta) El uso de números no está recomendado.
PHP Código Estándar Interfaces Debes seguir la misma convención para las clases, pero deberán terminar en _Interface, ejemplos: Application_Db_Interface, Zend_Log_Interface, etc. Funciones y Métodos Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Deben empezar siempre con letra minúsculas. Si contiene más de una palabra, la 1ra letra de cada palabra debe empezar con mayúculas (CamelCase). Ejemplos: obtenerDatos, registrarUsuario, etc.
PHP Código Estándar Variables Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Como las funciones debe empezar con letra minúscula y usar la convención CamelCase. Para variables que son declaradas como privadas o protegidas se debe agregar underscore al inicio. Ejemplo: $_tipos, $_nClientes, etc. Las variables deben describir los datos que van a almacenar, usar $i, $n, $j sólo en bucles.
PHP Código Estándar Constates Deben ir en letras mayúsculas. Sólo permitido caracteres alfanuméricos y carácter underscore para separar palabras que conforman la constante. Para las constates definidas como miembros de una clase se usará el modificador “const”, para constantes globales se usará “define”.
PHP Guía de Estilos Shorttags  ( “<?” )no están permitidos. Strings Para cadenas se usará comilla simple. Para cadenas que contengas apostrofes o variables de sustitución se usará comilla doble Para concatenar cadenas use el operador “.”
PHP Guía de Estilos Clases, Métodos y Funciones Deben ser nombradas de acuerdo a la convención de nombre de Zend. La llave de inicio deben ser escrita una línea debajo del nombre de la clase, métodos ó función. Deben tener un bloque de documentación que se ajusta al estándar de phpDocumentor. Sólo se permite una sola clase en cada archivo PHP. Los métodos deben ser declarados especificando su visibilidad (private, protected, o public)
PHP Guía de Estilos
CONSEJO b Zend es la empresa oficial detrás de PHP, la guía de buenas prácticas desarrollada por esta empresa es de lectura obligatoria par5a todo programador
Documentar tu Código Programa pensando que la persona que mantendrá tu código es un psicópata maniaco que sabe donde vives … que si te encuentra te meterá terror!!!.
Documentar tu Código phpDocumentor Herramienta estándar para documentar código PHP. Crea documentos HTML, PDF, CHM. Se puede usar desde la consola de comandos ó integrarlo a un IDE (NetBeans Zend Studio ó Eclipse) Recomiendo documentar las funciones, clases y métodos que forman pate del dominio de la aplicación (capa de negocio).
Documentar tu Código Clases Deben tener una pequeña descripción sobre el uso de la clases Las variables definidas deben tener usar el tag @var  Métodos Los parámetros de las funciones deben usar el tag @param Si tienen variables de retorno se debe usar el tag @return Si existen bucles  condicionales se deberá detallar el funcionamiento básico del mismo usando comillas dobles (“//”)
Documentar tu Código
Documentar tu Código
Documentar tu Código
¿PREGUNTAS FINALES? ¿Dudas?

More Related Content

What's hot

Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java scriptRenny Batista
 
Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Oscar Correa
 
Java script
Java script Java script
Java script Pidusa
 
Javascript 1
Javascript 1Javascript 1
Javascript 1Juan C
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchezsamo509
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itstomicx
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básicocamposer
 
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente ♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente Manuel Vidaurre
 
Action script 3
Action script 3Action script 3
Action script 390000111
 

What's hot (18)

Introduccion al java script
Introduccion al java scriptIntroduccion al java script
Introduccion al java script
 
Introducción a Javascript I
Introducción a Javascript IIntroducción a Javascript I
Introducción a Javascript I
 
Javascript
JavascriptJavascript
Javascript
 
Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1Lenguaje de-programacion-java script-1
Lenguaje de-programacion-java script-1
 
Java script
Java script Java script
Java script
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
Samuel bailon sanchez
Samuel bailon sanchezSamuel bailon sanchez
Samuel bailon sanchez
 
Manual de Java
Manual de JavaManual de Java
Manual de Java
 
Java script
Java scriptJava script
Java script
 
Javascript
JavascriptJavascript
Javascript
 
Tutorial de cakePHP itst
Tutorial de cakePHP itstTutorial de cakePHP itst
Tutorial de cakePHP itst
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Software Clips
Software ClipsSoftware Clips
Software Clips
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básico
 
Clase 10 expresiones regulares
Clase 10 expresiones regularesClase 10 expresiones regulares
Clase 10 expresiones regulares
 
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente ♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
♬♪♬..I'm too sexy... ♫♪ catwalk... Como modelar el dominio efectivamente
 
Action script 3
Action script 3Action script 3
Action script 3
 
Mod2ud2 1
Mod2ud2 1Mod2ud2 1
Mod2ud2 1
 

Viewers also liked

Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPJesus Castagnetto
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phplgcj1989
 
Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...ingenran
 
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & OracleBuenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & OracleIng. Jose Franco
 
Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6UVM
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E InstruccionesEdgar A. Cruz Huaman
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)josue salas
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)PiXeL16
 
Manual sobre Google drive (2016)
Manual sobre Google drive (2016)Manual sobre Google drive (2016)
Manual sobre Google drive (2016)Agneta Gallardo
 
Readership presentation
Readership presentationReadership presentation
Readership presentationYana Welinder
 
Makkers Manifestatie Co-Green
Makkers Manifestatie Co-Green Makkers Manifestatie Co-Green
Makkers Manifestatie Co-Green Syto Goslinga
 
Social Experience Design
Social Experience DesignSocial Experience Design
Social Experience DesignAndre Malske
 

Viewers also liked (20)

Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
 
Mejores Prácticas en el Desarrollo del Software
Mejores Prácticas en el Desarrollo del SoftwareMejores Prácticas en el Desarrollo del Software
Mejores Prácticas en el Desarrollo del Software
 
Buenas practicas para el desarrollo de software
Buenas practicas para el desarrollo de softwareBuenas practicas para el desarrollo de software
Buenas practicas para el desarrollo de software
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-php
 
Includes y $GET
Includes y $GETIncludes y $GET
Includes y $GET
 
Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
mejorando con php
mejorando con phpmejorando con php
mejorando con php
 
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
Php y my sql. tecnología para el desarrollo de aplicaciones web escrito por á...
 
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & OracleBuenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
Buenas practicas para el desarrollo de aplicaciones ASP.NET & Oracle
 
Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6Buenas Practicas De Programacion Vb 6
Buenas Practicas De Programacion Vb 6
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
 
Php - Operadores básicos
Php - Operadores básicosPhp - Operadores básicos
Php - Operadores básicos
 
Group by, having, order by, SQL
Group by, having, order by, SQLGroup by, having, order by, SQL
Group by, having, order by, SQL
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)Diagramas UML (Diseño de Sistemas)
Diagramas UML (Diseño de Sistemas)
 
Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)Estandares de Codigo (Emanuel)
Estandares de Codigo (Emanuel)
 
Manual sobre Google drive (2016)
Manual sobre Google drive (2016)Manual sobre Google drive (2016)
Manual sobre Google drive (2016)
 
Readership presentation
Readership presentationReadership presentation
Readership presentation
 
Makkers Manifestatie Co-Green
Makkers Manifestatie Co-Green Makkers Manifestatie Co-Green
Makkers Manifestatie Co-Green
 
Social Experience Design
Social Experience DesignSocial Experience Design
Social Experience Design
 

Similar to Guía de buenas prácticas para desarrolladores web

Similar to Guía de buenas prácticas para desarrolladores web (20)

Mvc
MvcMvc
Mvc
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Programaciòn
ProgramaciònProgramaciòn
Programaciòn
 
Guiacursophp sql
Guiacursophp sqlGuiacursophp sql
Guiacursophp sql
 
Curso introduccionphp sql
Curso introduccionphp sqlCurso introduccionphp sql
Curso introduccionphp sql
 
Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018Ez platform-meetup-madrid-march-2018
Ez platform-meetup-madrid-march-2018
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Cuida tu código: Clean Code
Cuida tu código: Clean CodeCuida tu código: Clean Code
Cuida tu código: Clean Code
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php Adwa
 
Php tema 4
Php tema 4Php tema 4
Php tema 4
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
 
9 anulacion
9   anulacion9   anulacion
9 anulacion
 
Lenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetosLenguajes de programación orientados a objetos
Lenguajes de programación orientados a objetos
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Trabajo escrito de contra jornada
Trabajo escrito de contra jornadaTrabajo escrito de contra jornada
Trabajo escrito de contra jornada
 
Php y MySqul
Php y MySqul  Php y MySqul
Php y MySqul
 
Programacion - Php
Programacion - PhpProgramacion - Php
Programacion - Php
 
Construcción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARConstrucción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEAR
 

More from Juan Victor Minaya León (9)

Software Development
Software DevelopmentSoftware Development
Software Development
 
Software Development with PHP & Laravel
Software Development  with PHP & LaravelSoftware Development  with PHP & Laravel
Software Development with PHP & Laravel
 
GraphQL or RESTful
GraphQL or RESTfulGraphQL or RESTful
GraphQL or RESTful
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Desarrollo de Software 2013
Desarrollo de Software 2013Desarrollo de Software 2013
Desarrollo de Software 2013
 
Propuesta Arquitectura de Mensajería con Xmpp
Propuesta Arquitectura de Mensajería con XmppPropuesta Arquitectura de Mensajería con Xmpp
Propuesta Arquitectura de Mensajería con Xmpp
 
Gestión de Incidencias con Mantis BT
Gestión de Incidencias con Mantis BTGestión de Incidencias con Mantis BT
Gestión de Incidencias con Mantis BT
 
Desarrollo de Software
Desarrollo de SoftwareDesarrollo de Software
Desarrollo de Software
 
Desarrollo para dispositivos Móviles
Desarrollo para dispositivos MóvilesDesarrollo para dispositivos Móviles
Desarrollo para dispositivos Móviles
 

Recently uploaded

Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaEdwinGarca59
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxCsarNlsonMrquezContr
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).jcaballerosamayoa
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...dramosbrise1403
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blogManuel Diaz
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALGuadalinfoHuscarGuad
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC6dwwcgtpfx
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .itzyrivera61103
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docxssusere34b451
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.241534381
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
avancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayudaavancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayudadocente
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 

Recently uploaded (20)

Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
Electricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docxElectricidad Libro compendio de temas estudiados.docx
Electricidad Libro compendio de temas estudiados.docx
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).BUSCADORES DE INTERNET (Universidad de Sonora).
BUSCADORES DE INTERNET (Universidad de Sonora).
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 
innovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 bloginnovacion banking & warehouse 2024 blog
innovacion banking & warehouse 2024 blog
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
editorial de informática de los sueños.docx
editorial de informática de los sueños.docxeditorial de informática de los sueños.docx
editorial de informática de los sueños.docx
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
avancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayudaavancestecnologicossigloveintiunoprofetengohambreayuda
avancestecnologicossigloveintiunoprofetengohambreayuda
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 

Guía de buenas prácticas para desarrolladores web

  • 1. Guía de Buenas Prácticas para Desarrolladores PHP Juan Minaya leónminayaleon@gmail.com
  • 2. Agenda Programación IDE Base de Datos Código Estándar Documentación Herramientas y Procesos Colaboración Control de Código
  • 3. IDE (Integrated development environment) NetBeans ¿Por que? Soporte HTML, JavaScript y CSS Autoformato de Código Refactoring Autocompletado Generador de Código Cliente SQL (SQL Server, MySQL, Oracle, etc.) Resaltado de código (PHP, JS,CSS,HTML,SQL, etc.) Clientes: FTP, SVN, etc. Plugins: phpDocumentor, Zend Framework, Symfony, Smarty, phpUnit, phpDebug, etc.
  • 4. IDE (Integrated development environment) MySQL Workbench Generación de Diccionario de Datos Ingeniería Inversa , Sincronización Generación de Formal Normales (1FN, 2FN, 3FN)
  • 5.
  • 6.
  • 7. Diseño de Base de Datos Mysql Server Distingue entre mayúsculas y minúsculas sólo los nombres de la base de datos y tablas, más no de sus columnas. Variable de configuración lower_case_table_names, valor: 0 -> Las tablas se almacenan con la sensibilidad especificada en la sentencia de creación (Linux). SELECT * FROM cliente; SELECT * FROM CLIENTE; (ERROR) 1 -> Las tablas se almacenan convirtiendo sus nombres a minúsculas (Windows y Mac). SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK) 2 -> Los tablas se almacenan con la sensibilidad especificada en la sentencia de creación. SELECT * FROM cliente; SELECT * FROM CLIENTE; (OK)
  • 8. Diseño de Base de Datos Mysql Server Cita 1: Crear y referirse a bases de datos y tablas usando siempre minúsculas. Esto es lo recomendado para lograr máxima portabilidad y facilidad de uso. Fuente: Documentación Mysql. Cita 2: Si se utilizan tablas InnoDB, se debería establecer lower_case_table_names en 1 en todas las plataformas para forzar a que los nombres sean convertidos a minúsculas. Fuente: Documentación Mysql.
  • 9.
  • 10. Diseño de Base de Datos ¿Se debe usar prefijos? ISO/IEC 11179 (normalización de metadata y metada registry ) No recomienda el uso de Prefijos ni Sufijos, salvo en los casos que en una sola base de datos se compartan muchos proyectos Ejemplos de buenas practicas: Cliente_Cuentas, Cliente_Cuenta SQL Server y Oracle han adoptado este estándar MySQL recomienda usar minúsculas
  • 11. CONSEJO A En MySQL nombra las base de datos y tablas con minúsculas usando el estilo singular, para el caso de nombres compuestos usar underscore ( _ ), para SQL Server y Oracle sigue el estándar ISO/IEC 11179
  • 12. PHP Código Estándar Seguir la Guía de Estilos Zend (DRAFT) General Para archivos que sólo contengan código PHP la etiqueta de cierre ( “?>” ) debe ser omitida. Indentation Usar como indent (sangría) 4 espacios. La longitud máxima de cualquier línea de código PHP es de 120 caracteres.
  • 13. PHP Código Estándar Convención de Nombres Se seguirá la guía de estilos desarrollada por Zend para su proyecto opensource ZF. Clases El nombres de las clases relaciona directamente con los directorios donde se almacenan. Db/Mysql/Adapter.php -> Db_Mysql_Adapter Sólo permitido caracteres alfanuméricos y el underscore (sólo reemplaza el separador de ruta) El uso de números no está recomendado.
  • 14. PHP Código Estándar Interfaces Debes seguir la misma convención para las clases, pero deberán terminar en _Interface, ejemplos: Application_Db_Interface, Zend_Log_Interface, etc. Funciones y Métodos Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Deben empezar siempre con letra minúsculas. Si contiene más de una palabra, la 1ra letra de cada palabra debe empezar con mayúculas (CamelCase). Ejemplos: obtenerDatos, registrarUsuario, etc.
  • 15. PHP Código Estándar Variables Sólo permitido caracteres alfanuméricos, underscore no está permitido. El uso de números no está recomendado. Como las funciones debe empezar con letra minúscula y usar la convención CamelCase. Para variables que son declaradas como privadas o protegidas se debe agregar underscore al inicio. Ejemplo: $_tipos, $_nClientes, etc. Las variables deben describir los datos que van a almacenar, usar $i, $n, $j sólo en bucles.
  • 16. PHP Código Estándar Constates Deben ir en letras mayúsculas. Sólo permitido caracteres alfanuméricos y carácter underscore para separar palabras que conforman la constante. Para las constates definidas como miembros de una clase se usará el modificador “const”, para constantes globales se usará “define”.
  • 17. PHP Guía de Estilos Shorttags ( “<?” )no están permitidos. Strings Para cadenas se usará comilla simple. Para cadenas que contengas apostrofes o variables de sustitución se usará comilla doble Para concatenar cadenas use el operador “.”
  • 18. PHP Guía de Estilos Clases, Métodos y Funciones Deben ser nombradas de acuerdo a la convención de nombre de Zend. La llave de inicio deben ser escrita una línea debajo del nombre de la clase, métodos ó función. Deben tener un bloque de documentación que se ajusta al estándar de phpDocumentor. Sólo se permite una sola clase en cada archivo PHP. Los métodos deben ser declarados especificando su visibilidad (private, protected, o public)
  • 19. PHP Guía de Estilos
  • 20. CONSEJO b Zend es la empresa oficial detrás de PHP, la guía de buenas prácticas desarrollada por esta empresa es de lectura obligatoria par5a todo programador
  • 21. Documentar tu Código Programa pensando que la persona que mantendrá tu código es un psicópata maniaco que sabe donde vives … que si te encuentra te meterá terror!!!.
  • 22. Documentar tu Código phpDocumentor Herramienta estándar para documentar código PHP. Crea documentos HTML, PDF, CHM. Se puede usar desde la consola de comandos ó integrarlo a un IDE (NetBeans Zend Studio ó Eclipse) Recomiendo documentar las funciones, clases y métodos que forman pate del dominio de la aplicación (capa de negocio).
  • 23. Documentar tu Código Clases Deben tener una pequeña descripción sobre el uso de la clases Las variables definidas deben tener usar el tag @var Métodos Los parámetros de las funciones deben usar el tag @param Si tienen variables de retorno se debe usar el tag @return Si existen bucles condicionales se deberá detallar el funcionamiento básico del mismo usando comillas dobles (“//”)
  • 28. Bibliografía Zend Best Practices ISO/IEC 11179 SQL Server Best Practices Java Best Practice PHP Architect