CMS y Framework: Importancia de un glosario en un equipo de desarrollo

Posted by Joaquin Mike | Posted in , , | Posted on 6:42

Son muchos conceptos los que intervienen en el desarrollo de aplicaciones web, y no siempre todos los componentes del equipo de desarrollo compartimos las mismas etiquetas y conceptos. Tanto es así que hemos tenido que crear un glosario común, para así poder mantener una comunicación fluida sabiendo cada uno de lo qué está hablando el otro exactamente, definiendo y delimitando términos.
A la hora de hacer brainstorming, es inaceptable perder tiempo discutiendo qué es o qué no es tal o cual término, y por lo tanto todos los componentes del equipo debemos tener asumidas las mismas definiciones de cada concepto. La importancia y valor de un glosario interno es incalculable.Un error muy común es confundir framework con CMS, y viceversa, aunque existen otros tantos términos cuyas definiciones difícilmente coincidan entre dos personas distintas, a menos que previamente se hayan establecido las definiciones en común. Y es que framework y CMS no son sinónimos, ni mucho menos:
Framewok
Del inglés “marco de trabajo“, es un conjunto de librerías que obligan a trabajar en un patrón de diseño determinado.
Sirven para crear aplicaciones, ya que por sí mismas no tienen ninguna funcionalidad hasta que se desarrolla una aplicación. Un framework es, por tanto, el núcleo de toda aplicación web.
Por ejemplo, un framework es Zend Framework o Symphony, con librerías de todo tipo (envío de emails, lectura y generación de RSS, acceso a base de datos, etc) que además imponen un patrón de diseño: MVC, cada uno a su manera.
Un framework también podría ser, por ejemplo, el que incorpora Wordpress, con el que se podrían desarrollar aplicaciones totalmente distintas a una aplicación de gestión de artículos de un blog (lo que es Wordrpess). Aunque realmente no es aconsejable, ya que el framework de Wordpress se hizo pensando únicamente en gestión de blogs y en el rendimiento, no en ser tan abierto como para poder desarrollar cualquier tipo de aplicación, y por lo tanto cualquier otro framework siempre es una mejor opción.
CMS
Acrónimo en inglés “Content Management System“, o Sistema Gestor de Contenidos. Es una aplicación web cuya funcionalidad principal es gestionar contenidos.
Dependiendo de los contenidos que gestione tendrá un nombre u otro. Por ejemplo:
Gestiona artículos de una bitácora/blog: Wordpress, Movable Type, etc.
Gestiona imágenes: una galería de imágenes como zenphoto.
Gestiona documentos: una intranet
Gestión genérica de contenidos: Drupal, Joomla, Typo3, etc.
Un CMS hará uso siempre de un framework, que normalmente viene incorporado en el propio CMS, es decir, que CMS y framework son el mismo producto (como Drupal o Wordpress, por ejemplo). Aunque es posible desarrollar un CMS usando un framework externo, como es el caso del CMS de Secuoyas, en el que usamos Zend Framework.


La elección de CMS o framework (y cuál de ellos) a la hora de acometer un proyecto dependerá de qué funcionalidades deba tener el proyecto. Es decir, no es posible elegir un CMS o un framework y usarlo para cualquier tipo de proyecto. Aunque en Secuoyas tenemos el reto de desarrollar un CMS con el que poder acometer la mayoría de nuestros proyectos. Que Google nos pille confesados…

Zend Framework con PHP

Posted by Joaquin Mike | Posted in , , | Posted on 6:31

El framework para PHP ha dado muy buenos resultados, si bien como todos sabemos la curva de aprendizaje con un framework es un poco lenta, el resultado a largo plazo es mas que satisfactorio, ya que la idea es usar el framework como plataforma de desarrollo para aplicaciones en forma rápida, ordenada y simple. El factor "tiempo" es casi un pilar en este framework, ya que la librería es muy extensa y trae casi por completo todas las herramientas que nosotros como desarrolladores de Arzion usamos día a día.




Cual es la ventaja de usar un framework?
Principalmente es el ahorro de código, y obviamente esto trae aparejado un ahorro de tiempo significativo sin ahondar en un proyecto demasiado específico en cuanto a requerimientos.
Mantenimiento sencillo. Código ordenado y limpio., algo que el patrón MVC provee desde su concepción.
Amplia biblioteca de librerías con capacidad de extensión a gusto del desarrollador, entre las que mas me gustan puedo mencionar el soporte completo para Jquery con el uso de la librería ZendX (la X es de eXtended, ya que solo viene en el full package). Sin mencionar soporte para SOAP, WebServices, Google APIS, etc etc.
Multiplataforma, al ser puro código PHP lo podemos usar en Windows, UNIX, Solaris,etc.

Desventajas?
Son pocas, la mas importante a tener en cuenta es el tiempo que le lleva a uno adaptarse a usar el framework y las capacidades que uno posee para entender bien el paradigma orientado a objetos (conceptos de herencia, polimorfismo, etc), es un punto de inflexión el pasar de hacer desarrollos "a mano" creando el modelo y luego conectarlo con la vista, luego darle interaccion a la vista por medio del controlador y demás...