2013-04-02 liveCommerce y los beneficios de la programación modular

liveCommerce y los beneficios de la programación modular

Hace dos años, cuando los socios de liveCommerce decidimos montar la plataforma tecnológica nos vimos con la enorme responsabilidad de tener que decidir qué metodología de programación y qué patrones de diseño debíamos utilizar.

Sabíamos que la decisión que tomásemos sería una de las claves del negocio. Y que el core de programación debía ser los suficientemente sólido y flexible para desarrollar una tecnología modular y centralizada.

Mis socios y yo hemos trabajado en otros grandes proyectos tecnológicos tanto de forma individual como colectiva y éramos muy conscientes de la responsabilidad que teníamos.

A día de hoy con la plataforma montada y con miras de crecimiento estamos satisfechos de la decisión que tomamos en su momento y hoy aquí queremos compartirla con todos vosotros.

Cómo está montado liveCommerce

LiveCommerce está montado sobre Codeigniter, un framework tremendamente ágil, de poca carga de memoria y orientado al clásico patrón de diseño MVC (Modelo Vista Controlador). Seleccionamos este framework porque de todos los que hemos probado a lo largo de nuestra experiencia era el que más libertad y flexibilidad nos ofrecía. Sobre el core central de este framework el equipo ha programado una robusta capa de acceso formada por un conjunto de librerías y de métodos sobre escritos que mejoran notablemente el core.

Para nosotros el framework no debía ser un problema, sino más bien una caja de herramientas con la que pudiéramos crecer tecnológicamente. Otros frameworks más robustos y no tan flexibles como Zend nos hubiera limitado en metodología y desarrollo ágil.

Por otro lado teníamos claro que el éxito de la plataforma residiría en la modularización y centralización de código. Estos dos aspectos son fundamentales en nuestra filosofía y nos hacen altamente competitivos. No hemos descubierto nada técnicamente, la modularización y centralización de software son dos conceptos ampliamente estudiados en las universidades y en proyectos de gran envergadura. Lo que sí hemos hecho es poner ese conocimiento en beneficio de la plataforma de nuestros clientes.

Del concepto de modularización aplicamos el patrón de diseño HMVC (Hierarquical Model View Controller). Este patrón de diseño enfocado a desarrollos de grandes estructuras posibilita que las diferentes partes que forman una aplicación tengan vida por si mismas. Este punto es clave porque:

  • Aumenta la velocidad de desarrollo.
  • Reduce los fallos.
  • Mejora la escalabilidad del software.

El otro punto importante que ya hemos nombrado es la centralización de código. Esto nos permite reutilizar el mismo código en diferentes plataformas con arquitecturas de hardware conectadas. La centralización ofrece handicaps en la seguridad que hemos tenido que trabajar y mejorar a conciencia. Los propios sistemas de software disponen de mecanismos de seguridad, no obstante siempre es bueno conocer los problemas que puedes encontrarte en un futuro.

No todo el mundo invierte en software

Es cierto. Muchas buenas empresas trabajan con sistemas de terceros Open source. Y pese a que ofrecen buena calidad de servicio y su departamento de desarrollo es de gran nivel, no pueden ofrecer la misma calidad de servicio como la que ofrece liveCommerce dado que su infraestructura de duplicación de código no se lo permite.

Hemos hablado muchas veces de los inconvenientes de este tipo de modelo. Uno de los puntos que nos diferencian de este otro tipo de empresas es lo siguiente:

  • Nosotros tenemos plena libertad para desarrollar cualquier funcionalidad que queramos y nuestra centralización y modularización de software nos permite ofrecer un servicio de mantenimiento y de mejoras constantes que las empresas con Open Source no pueden.
  • Estas empresas replican el código constantemente y el resultado es que se encuentran con miles de líneas de código duplicadas en cada proyecto individual.
Sigue leyendo