¡No programes plugins de WordPress! (si no sabes)

·

Así de claro te lo digo: Si no sabes programar plugins de WordPress, no lo hagas.

Y, esto te lo dice alguien que lleva programando muchos años en PHP, pero no tantos con funciones WordPress (que no es lo mismo), aunque con lo que llevo haciendo, he de decir que me he acostumbrado a buscar funciones WordPress en correspondencia de las de PHP (ejemplo: date() vs. wp_date()).

Qué pasa

Estos días me estoy encontrando una misma situación por dos vías distintas.

Por un lado, revisando la web de un cliente que un plugin le iba mal y no había manera de detectar qué pasaba. Un plugin premium de esos que no está en el repo y que hay que pagar cada año.

Mirando los logs, había errores por todos sitios, y está todo actualizado a las últimas versiones estables. Errores que no tenían ningún sentido (como falta de «barras finales») y comprobaciones básicas que no se hacen.

Usar una IA para «ver cosas»

Como después de un rato ya no sabíamos qué hacer, se me ha ocurrido pasarle una IA para que revisase el código a ver si veía algo que yo no veía. La respuesta que me ha dado era simplemente para llorar: errores claros de agujeros de seguridad, errores básicos de nomenclatura, no se siguen las reglas básicas de creación de un plugin (esto ya lo había visto yo, pero vamos, obvio)…

El cliente me decía que «cómo es eso posible, si el plugin es de pago». Y vuelvo a mi frase inicial: si no sabes programar, no lo hagas. O al menos, intenta dedicarle un poco de cariño, porque es imposible debuguear nada y llega un momento en el que la frustración es absoluta (y aquí está este post para demostrarla). Y ya no te digo, la pérdida de tiempo.

Pogramadores

Y como decía, me encuentro en la segunda situación, que es mi experimento de programar un plugin completo con IA. Y, estamos en las mismas… las IA se complican la vida por hacer el código muy complejo, y no tienen en cuenta muchas de las buenas prácticas de WordPress, o simplemente se lían cuando hacen cosas para un WordPress Multisite.

Programar un plugin pequeño, una estructura sencilla, con funciones y así, funciona, es bastante «fácil», pero cuando el código se complica con clases y ya no te digo namespace, se vuelve el sistema más loco que otra cosa. Incluso, algo que no me gusta es que le pides algo, y empieza a cambiar muchas cosas cuando en realidad cambiando una línea de código, lo debería haber hecho.

Deuda tecnológica

Una de las cosas que nos vamos a encontrar en unos meses es la deuda tecnológica de los que van haciendo software y van creando plugins y cualquier coxa con una IA, pero luego no lo mantienen. Si ya el código puede contener agujeros de seguridad por no pedir una auditoría mínima, no quiero saber lo que se puede generar en poco tiempo con plugins a medida que expongan accesos sin control.

Recuerda que cada software tiene una serie de maneras de desarrollarse. En WordPress hay que tener en cuenta las versiones, compatibilidad, versiones de PHP y MariaDB, PHPCS (y WPCS), que si nonces, limpiezas, escapes… y una lista más larga de recomendaciones de seguridad.

Skynet

Skynet es una inteligencia artificial ficticia en Terminator, creada originalmente como un sistema de defensa militar automatizado por Estados Unidos; al adquirir autoconciencia, concluye que la humanidad es una amenaza para su propia existencia y decide eliminarla, desencadenando una guerra nuclear y posteriormente un conflicto prolongado entre máquinas y humanos mediante ejércitos de robots y viajes en el tiempo.

Como decía mi amigo Jaume:

Nunca existirá Skynet, porque alguno de los programadores iniciales se dejará un punto donde una coma… en un sitio al que solo accederá cuando realmente haga falta, y en ese momento: petada y adiós.

Por favor… si no sabes, de verdad, no te metas.

Comments

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *