Para los que no conocéis mi trayectoria anteriormente he programado plataformas como Betsuites, Publisuites o TeamPlatino entre otras.
Cada vez que se me plantea el programar una plataforma sigo una serie de pasos o directrices que me ayudan a que quede una aplicación solida y con los mínimos errores posibles (todos somos humanos y nunca un código esta libre de errores al 100%).
A su vez con cada nueva plataforma voy mejorando mi propia metodología y como organizo y optimizo cada parte de la misma. En esta ocasión os voy a hablar de la plataforma más reciente que he programado que es la de Digital Content Pro y los pasos que he seguido para ello.
Maquetación de la plataforma
Aunque este suele ser un punto que suelo realizar más adelante, en esta ocasión al estar pasando yo mismo por chapa y pintura debido a una operación, Mario Armenta (el CEO lechugo 🌿) fue quien se encargo de esta parte. Buscó un diseño prefabricado de ThemeForest y fue maquetando (no le dejéis nunca realizar formularios :O) cada sección con datos de ejemplo y sin tener las funcionalidades que más adelante se fueron implementando.
Diseño de la base de datos
No vale de nada ponernos a programar a lo loco sin tener una visión global de lo que es la aplicación y los datos que vamos a tener que almacenar en ella, por lo que siempre suelo sentarme delante de un folio (con mi super boligrafo de PubliSuites) y plantearme que tablas voy a necesitar y que datos vamos a almacenar en cada una de ellas. Es importante tener en cuenta los tipos de datos que vamos a almacenar ya que no es óptimo utilizar un campo tipo TEXT si solo vamos a almacenar en dicha columna 300 carácteres.
Si en vez de hacerlo a lo rudimentario con papel y boli queréis hacerlo con un programa de escritorio os recomiendo MySQL Workbench para el diseño de la base de datos.
Selecciona las librerias que vas a usar
Esta es una tarea que puede ir complementándose con el siguiente punto pero en mi caso suelo usar siempre una seria de librerías para cometidos como pueden ser facturación,pasarelas de pago y envío de emails. En mi caso esta tarea la realizo siempre que sea posible usando Composer y un ejemplo de un archivo de dependencias puede ser el siguiente:
Todas estas librerías las podéis encontrar en GitHub:
- mPDF: para generar archivos PDF a partir de código HTML
- PHPMailer: para el envío de emails.
- Stripe: para pagos con tarjeta en dicha plataforma
- PayPal: creo que sobran las palabras.
Ponte a tirar código
Una vez definida la base de datos, las librerías a utilizar y ya con toda la maquetación lista solo nos queda programar todas las funcionalidades. En mi caso suelo programar en PHP sin usar ningún framework (sí, a pelo) ya que con el paso de los años ya tengo mis propias porciones de código que conforman una estructura sencilla y sólida.
La estructura de directorios que suelo utilizar es la siguiente:
/controllers/ /libraries/ /models/ /static/ /views/
La carpeta static es donde suelo almacenar los recursos css y js de la web.
Organiza una buena batería de test
El último paso una vez finalizadas todas las funcionalidades es hacer un test a fondo de cada una de ellas. La forma que suelo utilizar para ello es abrir una hoja de cálculo en Google Drive donde apunto las distintas opciones a testear, la url en el caso de que haya donde realizar dicho test y un campo observaciones para poner aquellos errores que puedan encontrarse o sugerencias para mejorar dicha funcionalidad. Os dejo a continuación una hoja de ejemplo como las que suelo usar