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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

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

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie Guía de buenas prácticas para desarrolladores web

Ähnlich wie 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
 
Curso introduccionphp sql
Curso introduccionphp sqlCurso introduccionphp sql
Curso introduccionphp sql
 
Guiacursophp sql
Guiacursophp sqlGuiacursophp sql
Guiacursophp 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
 

Mehr von 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
 

Kürzlich hochgeladen

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 

Kürzlich hochgeladen (20)

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.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