El aƱo pasado les hablamos de las bondades deĀ FacturaScripts: facturación y contabilidad con software libre, un ERP y CRM con un potencial increĆble que destacaba por su fĆ”cil uso y la velocidad con que se pueda adaptar e implementar en cualquier tipo de negocio, hoy por hoy FacturaScripts sigue creciendo, trayendo a sus usuarios nuevas caracterĆsticas y ampliando su soporte. Este crecimiento acelerado ha traĆdo consigo la necesidad de mejorar el software desde su corazón para que sea mĆ”s escalable en el tiempo y para que este encaminado con las tecnologĆas actuales, es por esto que su creador Carlos GarcĆa (NeoRazorX)Ā nos cuenta de primera mano como ha estadoĀ RediseƱando FacturaScripts para 2018.
RediseƱando FacturaScripts para 2018 por NeoRazorX
Durante el verano, con mĆ”s de 60.000 descargas, 12.000 instalaciones que actualizan mensualmente, 4.000 usuarios registrados en la web y 90 plugins, nos encontramos ante un breve periodo de calma que querĆamos aprovechar para solucionar algunos problemas de diseƱo del nĆŗcleo de FacturaScripts: problemas de dependencias, imposibilidad de heredar entre controladores o vistas, y una gigantesca masa de código, fruto de estos aƱos de desarrollo.
Era el momento de replantearlo todo. Aprender de los errores y de los aciertos, y construir unos nuevos cimientos para los próximos aƱos. De lo contrario morirĆamos de Ć©xito, puesto que aƱadir nuevas caracterĆsticas requerĆa cada vez mĆ”s esfuerzo.
Bajo estas premisas comenzamos un prototipo de núcleo con composer y algunos de los componentes de symfony. Composer nos permite añadir y gestionar dependencias en PHP muy fÔcilmente, y beneficiarnos de la carga automÔtica de las clases necesarias. De symfony elegimos httpfoundation, para gestionar cómodamente la entrada y salida de datos, translator para convertir a FacturaScripts en multi-idioma, event-dispatcher para gestionar eventos, y twig, un motor de plantillas con herencia que nos ha enamorado.
Sobre estos cimientos comenzamos a construir 3 tipos de controladores extendidos: ListControllers, para listados, EditControllers, para modelos simples, y PanelControllers, para modelos mĆ”s complejos que tienen relaciones con otros modelos. Por ejemplo, clientes, que al editar un cliente tambiĆ©n quieres ver sus direcciones, cuentas bancarias, facturas recientes, etcā¦
Las interfaces de FacturaScripts ya eran intuitivas, y una de las partes mĆ”s valoradas por los usuarios, lo que nos lastraba era el código. Los controladores extendidos son algo que necesitĆ”bamos desde hace tiempo para reutilizar código y poder aƱadir nuevas caracterĆsticas de forma mucho mĆ”s sencilla.
Si eres desarrollador, a menudo te habrÔs encontrado en la situación de creer que tu código es maravilloso, y unos meses después darte cuenta de lo malo que es. Es normal. Afortunadamente ahora existen herramientas y servicios, como scrutinizer-ci, que te permiten obtener una valoración mÔs objetiva de tu código, ademÔs de señalar errores comunes y ofrecer consejos.
Antes de comenzar con el prototipo decidimos revisar nuestro código con scrutinizer-ci, obteniendo una puntuación de 5.4, siendo la clase fs_controller la gran responsable, aunque no la única. Y con pocas posibilidades de mejorar el diseño sin romper la compatibilidad. MÔs motivos para comenzar con un nuevo núcleo.
Hoy, la nota de FacturaScripts 2018 es de 8.66, teniendo sobresaliente en la inmensa mayorĆa de las clases y sus mĆ©todos.

Un mejor diseño nos ha permitido añadir nuevas opciones a todos los formularios, como la exportación a PDF o Excel en cualquier pÔgina o listado, y el megabuscador, que ahorrarÔ mucho tiempo a todos los usuarios.
Ya sólo queda terminar algunas tareas y comenzar con la beta y la actualización de plugins. Os mantendremos informados ;-).
Comentarios sobre FacturaScripts 2018
Si algo nos agrada es ver que herramientas de código abierto y que ademÔs son destinadas al crecimiento empresarial tengan éxito, es un trabajo duro que muchas veces pasa por debajo de la mesa, estoy seguro que este no es el caso porque la satisfacción de los usuarios que hoy usan esta herramienta es muy alta.
El crecimiento en la complejidad y las funcionalidades de herramientas como estĆ” conlleva un reto tĆ©cnico bastante grande, muchas veces las aplicaciones no estĆ”n preparadas para crecer tanto o simplemente sus desarrolladores se enfocan en mantener viejas estructuras que no estĆ”n alineadas con las nuevas tecnologĆas, creo que un punto muy favorable de FacturaScripts es esa claridad con que miran su software y esa humildad para saber cuando se deben hacer los cambios.
Con esta nueva versión, FacturaScripts ademÔs de ser mÔs eficiente traerÔ nuevas funcionalidades que estÔn muy relacionada a las necesidades de las organizaciones actuales, creemos que esta también serÔ una exitosa versión y que los usuarios de este poderoso ERP podrÔn hacer crecer sus negocios de mejor manera.