NOTA: Traducción de Capítulo 1 Frederick P. Brooks, The Mythical Man-Month, Chapter 1, Addison-Wesley, 1975.
Frederick P. Brooks murió este 17 de noviembre. The Mythical Man-Month fue uno de primeros libros que leí de Ingeniería de Software. Mucho de estos conceptos siguen vigentes hoy, 45 años después.
Como desarrolladores a veces necesitamos alguna información, el valor de una variable, los parámetros que llegan a un hook, o simplemente saber si el flujo pasó por cierta parte del código. Por eso hoy te enseño a hacer Debug con Woocommerce.
ALERTA: El contenido está dirigido a programadores. El código mal implementado puede afectar a tu Tienda.
Empecemos por una función:
wc_get_logger()
Primero veamos el significado de Log. Yo lo traduzco como bitácora o registro. Es un lugar donde vas guardando información de eventos. Normalmente incluyendo el tiempo en que sucedieron.
Woocommerce ya viene con un visor de logs. Para acceder al visor la ruta desde wp-admin es: WordPress Dashboard > WooCommerce > Status > Logs
Como puedes ver hay varios logs. Uno de ellos es el mío. Esto es posible con lo que te explico en este post.
En cualquier lugar de tu código donde necesites guardar informaicón, estos son los pasos:
$logger->debug( 'Información detallada para Debug', $context );
$logger->info( 'Eventos relevantes', $context );
$logger->notice( 'Eventos normales', $context );
$logger->warning( 'Eventos excepcionales, pero no son errores', $context );
$logger->error( 'Errorre que neceitan atención', $context );
$logger->critical( 'Condiciones críticas', $context );
$logger->alert( 'Acción inmediata necesaria', $context );
$logger->emergency( 'Houston, llamando Houston', $context );
La diferencia entre ellas es la clasificación de la información. El primer parámetros en un string con el contenido a guardar en el log. El segundo es opcional, si quieres tener tu propio log. El segundo es un array, que puede incluir información que quieras pasar al logger. Esto es útil en dos situaciones: cuando quieres un log exclusivo para ti, y cuando creas tu propio logger y necesitas información adicional. Pero eso es otro tema.
Tu propio log.
El parámetro source lleva el nombre del log. Bueno como ves en la imagen el nombre del log incluye el nombre que le pasas. En mi caso le paso como valor ‘udev-log’ y generó un log: udev-log-2022-09-04-4b3c742ca243b2f0dab1393322ec142f.log, por lo que se ve que incluye la fecha y un identificador único.
Según la documentación esos logs se borran después de 30 días.
En mi caso yo prefiero llamar directamente la función wc_get_logger():
wc_get_logger()->debug('Info de debug');
Y cuando quiero crear mi propio log:
wc_get_logger()->debug('Info de debug', array('source' = 'udev-log'));
Ya se veía venir. No es sorpresa, pero es algo que no había pasado, hasta que pasó. WP dej+o de crecer, y luego perdió participación.
Algunos expertos lo atribuyen a la falta de crecimiento funcional de la plataforma, parece que los años que llevan desarrollando Gutenberg, han afectado en la velocidad de otras funcionalidades.
El caso más sonado es la velocidad, comparada con los competidores.
En Octubre 12 del 2021 se propuso formar un equipo que se dedicar al tema del performance. Hasta antes de esta fecha, el performance se ha optimizado con plugins, pero muchos pensamos que debería estar en el core de WP. El equipo ya ha entregado una versión de mejoras.
Es decir, la arquitectura debería estar optimizada para el performance.
El performance es el diferenciador principal de la competencia: Wix, Shopify, … y quien se te ocurra.
Esto tenía que pasara algún día. Yo creo que en un año WP retomará el crecimiento. Actualmente ya se tienen mejoras, en forma de plugin. Conforme sea posible la funcionalidad de integrará en eel core.
Una vez solucionado el tema del performance, hay otro tema que puede frenar o restar el crecimiento, y tiene que ver con la participación de desarrolladores. Es sabido que es difícil el participar en el desarrollo del core.
Hasta hace poco cualquier propuesta de mejora se tomaba como una ofensa a los desarrolladores, al equipo de WP, en lugar de verlo como una oportunidad de mejora, se atacaba a quien proponía nuevas formas de hacer las cosas. Es sabido de varios casos que proponen mejoras, y por simple opinión se rechazan, sin análisis técnico. Simplemente al comité no le parece, y ya. No se aceptan.
Creo que eso está cambiando y espero que pronto sea más amigable el proceso de onboarding para nuevos desarrolladores.
Tomando los 10 millones de sitios Top, WP tiene 39.3%
sitios usando Woocommerce transaccionaron 20,000 millones de USD en ventas en 2021
WP va hacia le edición del Sitio, FSE, para competir con plataformas como WIX. A 3 años de Gutenberg, se empieza a ver el progreso
Una de las principales demandas de la comunidad es el soporte multi idioma. Parece que no hay mucho interés en el equipo Core, y las soluciones proporcionadas por otros no son los suficientemente buenas. En lo personal, creo que es mejor que el mundo aprenda Inglés, es la ligua franca.
Wix, Squarespace y Shopify tienen mejor performance que WP. En octubre 2021 se creó un equipo para mejorar ésto.
Creo que la tendencia en crecimiento va a continuar. Muchos negocios invirtieron en 2020 y 2021, pero algunos van a empezar a entrar a llenar huecos dejados por los negocios que cerraron, y en general el OpenSource va a beneficiarse de ésto.
El desarrollo de Woocommerce va a tener durante dos años un pico, tratando de competir contra Shopify, donde la barrera de entrada es baja para principiantes, pero el costo es muy alto para negocios medianos o grandes.
Si sabes programar con WP y Woocommerce, vas a tener dos años muy buenos. Después de esos dos años, veremos qué tanto crece Woocommerce y sus rivales.
Algún otro dato que te parezca interesante? @Urano Dev
Dos funcionalidades que desde hace tiempo se han solicitado a Automattic para Woocommerce y Stripe son los pagos en Oxxo y meses sin Intereses (MSI), ambas funcionalidades disponibles solo en México.
A finales de noviembre se incluye la funcionalidad de pagos en Oxxo
Comprobé la funcionalidad en mi sitio de pruebas.
Si se hace una compra con Oxxo como forma de pago
El boleto o ticket o vale se puede imprimir para el comprador vaya al Oxxo a pagar:
En modo sandbox, después de unos minutos, se invoca el web hook para que aparezca el pago, es decir, stripe simula que el comprador fue al Oxxo a pagar:
Esperemos que no tarden mucho la implementación de MSI con Stripe. Hay muchas tiendas que lo esperan, pero no han querido invertir en la implementación.
Yo sé, yo también pensé que no necesitaba un ambiente local. Aunque sí creaba un sitio de pruebas, lo tenía en el VPS. Y el problema era la sincronización.
Yo uso un editor en mi computadora (VS Code), y WinSCP. Con esta configuración cada vez que se guarda o crea un archivo, se copia al server.
Pero tengo que arrancar el WinSCP, y son como 5 clicks, y nunca me guarda la configuración utilizada la última vez… y pero si cambio de proyecto.
Entonces me cansé y ahora uso Laragon.
Hago un cambio en el código dentro del editor, voy al navegador, F5, listo!
¿Funcionó el cambio o no? bueno ese es otro tema.
La comunidad WP en Puebla me invitaron este sábado 5 de Septiembre de 2020 una plática de cómo armar tu localhost para desarrollar y probar los sitios de tus clientes
Esta charla forma parte del Tour Septiembre 2020 para Desarrolladores WP
WP y Woocommerce tienen cientos, miles de plugins. Y eso está muy bien.
Pero esto nos está llevando a sobresimplificar muchos conceptos:
¿Cual es el plugin que hace que aparezca en la primer posición de Google?
¿Cual es el theme que puedo usar para vender lagartos, pero solo en el desierto del Sahara?
¿Cual plugin me permite recibir dinero en las Islas Caimán?
¿Cual plugin hace que mi sitio sea seguro?
A veces pensamos que grandes problemas tienen soluciones fáciles.
Y por eso decidí compartir cosas básicas de seguridad informática:
Lecturas:
https://haveibeenpwned.com/
https://www.wired.com/2012/08/apple-amazon-mat-honan-hacking/
https://krebsonsecurity.com/
The Art of Deception: Controlling the Human Element of Security, Robert Mitnick (Link to amazon)
Herramientas:
KeePass
1Password
LastPassword
passwords.google.com
Google Authenticator
https://haveibeenpwned.com/Passwords
Hoy quiero que pensemos acerca de la influencia como la forma de cambiar para mejor tu realidad. Quizá no quieras cambiar el mundo, pero seguro puedes cambiar tu casa, tu empresa, tu comunidad.
Piensa en la influencia como un vector, sí ese tema de física que viste en la Preparatoria / Bachillerato
El alcance de tu influencia se define por tres factores: