Post on 16-Mar-2018
BUENAS PRÁCTICASKISS, CULTURA DE PLUGINS
/in/papoveda@povedica
Pablo Poveda Ortega
Me puedes ver en …
Donde hay una voluntad, hay un camino
Senior PHP Developer | WordPress Professional
Incondicional
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
Chiclana, 7 y 8 de Octubre
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FÁCIL DE APRENDER, DIFÍCIL DE DOMINAR
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISSKeep It Simple Stupid
(Simplifica estúpido)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRYDont Repeat Yourself
(No te repitas)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRTWDont Reinvent The Wheel
(No reinventes la rueda)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
MENOS ES
MÁS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DIVIDEY
VENCERÁS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
PIENSO, LUEGO PROGRAMO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO TE VENGAS ARRIBA
(No si no tienes un plan)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
APRENDE Y DISFRUTA POR EL CAMINO SIEMPRE
(recuerda que aquí hemos venido a jugar aunque a veces no lo parezca)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FACILITA EL TRABAJO A LOS DEMÁS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
Copia, inspírate y mejóralo
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CONTEXTO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
WP FRIENDLY
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
TEN EN CUENTA QUE WORDPRESS EVOLUCIONA
CONSTANTEMENTE
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
TEN EN CUENTA QUE LOS PLUGINS DEBEN
CONVIVIR ENTRE ELLOSCOMPATIBILIDAD CONFLICTOVS
(Ej: Gravity Forms Debug Add-on)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
(puedes usar clases con métodos que contengan estas funciones)
UTILIZA LAS FUNCIONES DE
WORDPRESS (DRTW)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA BOILERPLATES
http://wppb.io/
wp scaffold plugin
(DRTW)
https://wppb.me/
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA BOILERPLATES
http://wppb.io/
wp scaffold plugin
(DRTW)
https://wppb.me/
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA BOILERPLATES
http://wppb.io/
wp scaffold plugin
(DRTW)
https://wppb.me/
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FACILITA LA EXTENSIÓN Y/O MODIFICACIÓN DEL
COMPORTAMIENTO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EL ARTE DE HOOKEAR
add_action
do_action
remove_action
add_filter
apply_filter
remove_filter
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DECIDE QUE PERMITES MODIFICAR, QUE
PERMITES EXTENDER
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
INTERNACIONALIZACIÓN
.pot .po .mo
_e()
__()
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DETERMINA RESPONSABILIDADES USANDO ROLES Y CAPABILITIES
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DETERMINA RESPONSABILIDADES USANDO ROLES Y CAPABILITIES
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO LIMPIO(Clean code)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO LIMPIO(Clean code)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/
USA LA GUÍA DE ESTILO DE CÓDIGO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO TE OLVIDES DE QUE EL CÓDIGO QUE GENERAS ES PARA QUE:
1. LO LEAN Y EVOLUCIONEN PERSONAS
2. LO EJECUTEN MÁQUINASPrioridad
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
ESCRIBE CÓDIGO EN INGLÉS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
( Programación Orientada a Objetos)
POO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EL ARTE DEL NAMING
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA PREFIJOS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA NOMBRES SENSATOS PARA TODO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
TU CÓDIGO SE DEBERÍA PODER LEER COMO UN LIBRO,
CON SENTIDO Y NO PARECER UN IDIOTA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA PUNTOS ÚNICOS DE MODIFICACIÓN
(por ejemplo utiliza constantes)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
MÁS DE 100 RESULTADOS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
MÁS DE 100 RESULTADOS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CONSTANTES Y PUNTOS ÚNICOS DE MODIFICACIÓN
MÁS DE 100 RESULTADOS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SEPARA LA LÓGICA DE TU MODELO DE DATOS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UTILIZA PATRONES DE DISEÑO SIEMPRE QUE PUEDAS
(SINGLETON, ADAPTER, …)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SEPARA LA VISTA
(usa templates)(permite sobreescribirlas)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRY
DRY
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRY
DRY
PLANTILLA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRY
DRY
PLANTILLA
“Adapter”
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DRY
DRY
PLANTILLA
“Adapter”
SIMULACIÓN DE ADAPTER SIN USAR OO. DEVUELVE LA ESTRUCTURA DE DATOS (ARRAY) YA LISTA PARA USAR. LA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS COMENTARIOS EN EL
CÓDIGO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS COMENTARIOS EN EL
CÓDIGO
//WHEN I WROTE THIS, ONLY GOD AND I UNDERSTOOD WHAT I WAS DOING //NOW, GOD ONLY KNOWS
STOP(); // HAMMERTIME!
/// CLASS USED TO WORK AROUND RICHARD BEING A FUCKING IDIOT
// DRUNK, FIX LATER
//HAPPY DEBUGGING SUCKERS
RETURN 1; # RETURNS 1
//DONT TOUCH PLEASE
LONG JOHN; // SILVER
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS COMENTARIOS EN EL
CÓDIGO
//WHEN I WROTE THIS, ONLY GOD AND I UNDERSTOOD WHAT I WAS DOING //NOW, GOD ONLY KNOWS
STOP(); // HAMMERTIME!
/// CLASS USED TO WORK AROUND RICHARD BEING A FUCKING IDIOT
// DRUNK, FIX LATER
//HAPPY DEBUGGING SUCKERS
RETURN 1; # RETURNS 1
//DONT TOUCH PLEASE
LONG JOHN; // SILVER
LOL
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSAR DE LOS COMENTARIOS EN EL
CÓDIGO
//WHEN I WROTE THIS, ONLY GOD AND I UNDERSTOOD WHAT I WAS DOING //NOW, GOD ONLY KNOWS
STOP(); // HAMMERTIME!
/// CLASS USED TO WORK AROUND RICHARD BEING A FUCKING IDIOT
// DRUNK, FIX LATER
//HAPPY DEBUGGING SUCKERS
RETURN 1; # RETURNS 1
//DONT TOUCH PLEASE
LONG JOHN; // SILVER
LOL
EL LISTILLO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DELEGA RESPONSABILIDADES SIMPLES (Divide y vencerás)
(Código Limpio)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CUIDA TODOS LOS CONTEXTOS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CONOCE EL FLUJO DE EJECUCIÓN DE WP
https://wordpress.stackexchange.com/questions/71406/is-there-a-flowchart-for-wordpress-loading-sequence
http://cdn2.wpbeginner.com/wp-content/uploads/2017/05/wp-behind-the-scenes.png
Detalles técnicos:
Infografía:
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
PUBLIC, ADMIN, AJAX, CRON
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
MULTISITE
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
THEMES Y CHILDTHEMES
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO COMPATIBLE CON CLI (SHELL)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO COMPATIBLE CON CLI (SHELL)
?
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CÓDIGO COMPATIBLE CON CLI (SHELL)
?PHP NOTICE: UNDEFINED INDEX
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USO CORRECTO DE LA BD
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
LA BD ES LA REINA DEL AJEDREZ
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
LAS TABLAS DE WORDPRESS SEGURAMENTE SON
SUFICIENTES PARA CUBRIR LO QUE NECESITAS
(KISS)(dale una vuelta)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
¿TABLAS NUEVAS? PIÉNSATELO DOS VECES
(o más)
CRUD no nativo
La interfaz casi la generas desde cero
Pierdes compatibilidad con WordPress
Mantenimiento de estructuraNadie espera esa tabla
Mantenimiento de queriesPosibilidad de queries no optimizadas
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
WP_QUERY +
WPDB
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
PRE_GET_POST
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA PRE_GET_POST ANTES QUE WP_QUERY
(una query puede ser mejor que dos)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA LOS HOOKS PARA GESTIONAR QUERIES
https://codex.wordpress.org/Custom_Queries
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
VALIDA LO QUE SE GUARDA EN BD DESDE
TU PLUGIN
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSES DE LAS QUERIES
(menos es más)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
OPTIMIZA TUS QUERIES
https://es.wordpress.org/plugins/query-monitor/
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA PREPAREhttps://developer.wordpress.org/reference/classes/wpdb/prepare/
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SI NECESITAS QUERIES COMPLEJAS CON SUBQUERIES, JOINS Y/O USAR OFFSET,LIMIT CUIDA MUY BIEN EL
PERFORMANCE Y MIDE CON HERRAMIENTAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS DE BOTELLA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS DE BOTELLA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA TÉCNICAS DE PROCESADO POR BLOQUES (CHUNKS) PARA
PROCESAR GRANDES CANTIDADES DE DATOS
Ejemplo: Exportar/Importar datos desde una fuente externa
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CACHÉ SI, CACHÉ NOUSA UNA ESTRATEGIA Y NO IMPROVISES
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
UIADMIN
SCREENS FRONT(public)(dashboard)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
WP FRIENDLY
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITA CONFLICTOS
¿Sabéis cual es la regla del !important?
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
HTML, CSS Y JAVASCRIPT SIGUE SIENDO CÓDIGO
(código limpio)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
CARGAS CONDICIONALES(carga lo mínimo en cada petición)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SI EXISTEN POCOS SETTINGS PIENSA DONDE
PRESENTARLOS(no siempre tener tu propio menú es lo mejor)
(KISS)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA LAS FUNCIONES DE WORDPRESS PARA GESTIONAR
LAS PANTALLAS Y LOS SETTINGS DE BACKOFFICE
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
https://codex.wordpress.org/Settings_API
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
HTTPS COMPATIBLE
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
HTTPS COMPATIBLE
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA FUNCIONES DE WORDPRESS PARA AÑADIR EL JAVASCRIPT Y CSS QUE DARÁN FORMA, COLOR Y COMPORTAMIENTO A LAS
PANTALLAS(se aplica el mismo criterio: WP Friendly)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
wp_enqueue_script
wp_dequeue_script
wp_enqueue_style
wp_dequeue_style
wp_add_inline_script
wp_add_inline_style
wp_register_style
wp_deregister_style
wp_register_script
wp_deregister_script
wp_script_is
wp_localize_script
wp_enqueue_media
admin_enqueue_scripts
admin_print_scripts
admin_print_styles
add_action (‘wp_head','hook_inHeader');
add_action( 'admin_head', 'my_custom_admin_head' );
Funciones WP para gestión de assets
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
wp_enqueue_script
wp_dequeue_script
wp_enqueue_style
wp_dequeue_style
wp_add_inline_script
wp_add_inline_style
wp_register_style
wp_deregister_style
wp_register_script
wp_deregister_script
wp_script_is
wp_localize_script
wp_enqueue_media
admin_enqueue_scripts
admin_print_scripts
admin_print_styles
add_action (‘wp_head','hook_inHeader');
add_action( 'admin_head', 'my_custom_admin_head' );
¿AÚN TIENES EXCUSAS?
Funciones WP para gestión de assets
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SI PUEDES, USA ALGUNAS TÉCNICAS WPO PARA OPTIMIZAR
LA CARGA DE LAS PÁGINAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FACILITA SHORTCODES
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
BUSCADOR
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO ABUSES DEL PRE_GET_POSTS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS DE BOTELLA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EVITAR LOS CUELLOS DE BOTELLA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
REALIZA BÚSQUEDAS CONDICIONADAS AL CONTEXTO DE BÚSQUEDA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
POR SUPUESTO, FILTRA Y VALIDA LAS CADENAS DE BÚSQUEDA DE
LOS USUARIOS(ojito con las cadenas que llegan por $_GET[’s'])
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SEGURIDADXSS SQL
INYECTION SSISESSION
CAPTURING AND HIJACKING
CODE INJECTION
VALIDACIÓN DE CAMPOS
VALIDA TODAS LAS PETICIONES
PREPARE SQL
ESCAPA CADENAS
LIMITA EL USO CON
CAPABILITIES
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EXTENSIÓN DE TERCEROS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
RESPETOmuchos han trabajado, trabajan y
trabajarán a cambio de nada o muy poco
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CORRECTAMENTE LOS HOOKS
DISPONIBLES
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
USA CORRECTAMENTE LOS HOOKS
DISPONIBLES
HOOK
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
SÉ FUERTE NO MODIFIQUES EL
CÓDIGO DE UN TERCERO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
RESPETA LOS LÍMITES DE LA EXTENSIÓN PERMITIDA, NO TE EXCEDAS, NO
MODIFIQUES COMPORTAMIENTO QUE NO ESTÁ PENSADO PARA TAL PROPÓSITO
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
EJEMPLO CLAROLAS EXTENSIONES DE
WOOCOMMERCE
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
API RESThttps://developer.wordpress.org/rest-api/
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
BUGS, DEBUG, FIX, UPDATE
Debug Bar + Add-ons
Query Monitor
P3 Profilerxdebug +
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
GESTOR DE TAREAS, ISSUE TRACKER
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
NO DEJES HUELLA
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
DOCUMENTA TODO LO QUE HACES
(Facilita el trabajo a los demás)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
FEEDBACK(Escucha a tus usuarios)
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
POLITICA DE ACTUALIZACIONES TENIENDO EN CUENTA TODOS
LOS CAMBIOS
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS
1.Olfato
2.Opiniones de camaradas
3.Frecuencia de actualizaciones
4.Issues
5.Soporte
6.Compatibilidad
7.Reviews
8.Calidad de código y performance
MI CRITERIO PARA SELECCIONAR UN
PLUGIN
KISS, CULTURA DE PLUGINS - BUENAS PRÁCTICAS