Comunidad de diseño web y desarrollo en internet online

Frameworks ¿como no caer en el error de reinventar la Rueda?

Citar            
MensajeEscrito el 06 Feb 2009 07:29 pm
Aunque suene trillado el titulo y todo, la frase lo explica todo a la perfección, cuando comienzas a aprender acerca del desarrollo Web te das cuenta que en algunas ocasiones las tareas mas comunes se van convirtiendo en algo que de por si, es sumamente repetitivo y engorroso, y tras del hecho de que te maldices mentalmente porque sabes que ya has hecho un millón de veces las mismas cosas para quien sabe cuantos proyectos, por cada modelo de datos, por cada ocasión en la que se te ocurrió generar clases por cada entidad del ER, por todos estos archivos de asp, jsp o php, que repetiste generando extensos módulos de administración y otras funcionalidades que lo único que ayudaban en algunas ocasiones, era desplegar algún tipo de información de la base de datos, y realizar algunas inserciones, Gracias a dios, somos capaces de evolucionar y algunas personas, vieron que esto podía cambiar de alguna manera para alegrarnos la vida, he inventaron los frameworks.

De por si cuando se escucha de alguno de ellos ya sea del lado del cliente o servidor encontramos que tienen dentro de sus funciones acortar de algún modo todas las tareas repetitivas y tediosas de la forma mas general posible algunos tan robustos y complejos que dan miedo, de por si en la Web podemos encontrar varios tipos de estos, algunos para tecnologías del lado del cliente como por ejemplo (Jquery, prototype) para JavaScript o (Blueprint) para CSS, así como otros del lado del servidor como ( Django) para Python , (Symphony) para PHP, entre otros muchos, que podemos listar con tan solo buscar en Google.
El objetivo real de este post es el de listar algunas pequeñas descripciones generalizadas que ayudaran a saber cuales son las virtudes de los frameworks del lado del servidor.

1. Mapeo Objeto relacional y API para el manejo de datos: estas características, desde mi punto de vista son unas de las mas importantes a la hora de seleccionar un Framework, en teoría el desarrollo de un sitio Web tiene de por si un fuerte desarrollo basado en la persistencia y manipulación de la información contenida en dicho sitio y se sabe de antemano que esta información debe ser actualizada o aumentada constante mente en la mayoría de los sitios modernos, por esta razón, muy seguramente al desarrollar una de estos se necesite la implementación de un modelo de datos que soporte toda esta estructura. así mismo el 80% de las veces cuando se habla de ER también se tiene en cuenta como parte del desarrollo la implementación de un entramado de clases (OOP), que ayuden a dar el soporte dinámico de la información fuera de la base de datos, esto conduce en muchas ocasiones a perder tiempo valioso en la creación de ambos modelos aparentemente similares, para tener el sistema completo, Por el contrario, al tener un Framework que soporte Mapeo Objeto Relacional, se cuanta con un mecanismo en el que solo basta con definir cada uno de los objetos y sus relaciones entre si, para tener un control completo de este tanto en la forma de manipular la información dinámicamente, como en su persistencia, encargándose este de todo el proceso de inserción, actualización y eliminación; todo esto transparente para el programador basado en una API de manejo de datos suministrada por el Framework.
Otra de las grandes ventajas es que gracias a que se suministra esta API para el manejo de la info., se podría cambiar perfectamente el motor de base de datos de MySQL a posgrest con solo cambiar 3 líneas en un archivo de configuración, y todo el desarrollo queda intacto.

2. implementación del patrón de diseño MVC (Modelo, Vista, Control):
Tener separa la presentación de la lógica del negocio, es una característica que debe cumplir cualquier tipo de desarrollo Web, así que un Framework que se respete debe soportar MVC y de hecho estar constituido para implementarlo al 100%, puesto que cada una de las partes que lo componen separan el código según su utilidad.
Modelo: los modelos son la base de la inteligencia del negocio, en esto se encuentran todos los objetos definidos en el diagrama de clases del sitio Web, como, también todas las herramientas que me permitan procesar la información contenida en el.
Control: se encarga de brindar los mecanismos necesarios para que el modelo pueda ser manipulado correctamente con respecto a la extracción de información por parte de las vistas, en este caso podrían ser desde simples funciones que ejecuten llamados a objetos del modelo, hasta sofisticados Web Services.
Vistas: son las interfaces que desplegaran la información al usuario final, tan especializadas o simples como se requiera, por ejemplo una pagina Web, o una vista acondicionada para verse en dispositivos móviles, o para responder en consola.

De por si, con esta característica, tenemos la opción de cambiar todo el estilo de un sitio Web sin tocar un solo ladrillo de toda la lógica y manipulación del sistema, adaptándolo fácilmente a nuevas tecnologías.

3. Urls Amigables:
Esas Urls que tenían que ver con la forma como estaban organizadas las carpetas en el servidor, mas una cantidad de garabatos al momento de enviar variables por post pasaron a la historia, y es que de por si eran nombres que no decían nada, por ejemplo un sitio Web que maneje usuarios para la publicación de artículos podría tener una URL como esta para entrar a un post:
HTTP://WWW.SITIOX.COM/?txtusrId=851031&txtpostId=98754

que no trae mucha información al respecto de lo que se va a mostrar, por el contrario una URL amigable seria
HTTP://WWW.SITIOX.COM/BLOG/851031/POST/CONSTITUCION_Y_DEMOCRACIA_COLOMBIANA
CONCLUSION:
El uso de un Framework para la implementación de proyectos Web, disminuirá el tiempo de desarrollo considerablemente, ayudando, a los desarrolladores a prestarle mas atención a aspectos mas relevantes a la lógica del negocio, que ha como voy a enviar los datos o como creo el modulo de administración, y esto se vera reflejado, en la entrega de trabajos de mayor calidad y ayudara posteriormente a facilitar los procesos de mantenimiento del software desarrollado.

Por DanielJimenez

70 de clabLevel



Genero:Masculino  

Web Developer

msie7
Citar            
MensajeEscrito el 06 Feb 2009 11:14 pm
DanielJimenez, por favor, resume. Quiero leer tu artículo, parece que es interesante y todo, pero pufff. Es una pared de texto. Dale doble ENTER a los párrafos y resume un poco. Siempre puedes expresarte en menos palabras y más enfoque.

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 09 Feb 2009 04:28 pm

Freddie escribió:

DanielJimenez, por favor, resume. Quiero leer tu artículo, parece que es interesante y todo, pero pufff. Es una pared de texto. Dale doble ENTER a los párrafos y resume un poco. Siempre puedes expresarte en menos palabras y más enfoque.


Con gusto lo edito, pero la verdad no supe por donde le doy en editar.

Por DanielJimenez

70 de clabLevel



Genero:Masculino  

Web Developer

mozilla
Citar            
MensajeEscrito el 09 Feb 2009 04:39 pm

Frameworks ¿como no caer en el error de reinventar la Rueda?



Aunque suene trillado el titulo y todo, la frase lo explica todo a la perfección, cuando comienzas a aprender acerca del desarrollo Web te das cuenta que en algunas ocasiones las tareas mas comunes se van convirtiendo en algo que de por si, es sumamente repetitivo y engorroso, y tras del hecho de que te maldices mentalmente porque sabes que ya has hecho un millón de veces las mismas cosas para quien sabe cuantos proyectos, por cada modelo de datos, por cada ocasión en la que se te ocurrió generar clases por cada entidad del ER, por todos estos archivos de asp, jsp o php, que repetiste generando extensos módulos de administración y otras funcionalidades que lo único que ayudaban en algunas ocasiones, era desplegar algún tipo de información de la base de datos, y realizar algunas inserciones, Gracias a dios, somos capaces de evolucionar y algunas personas, vieron que esto podía cambiar de alguna manera para alegrarnos la vida, he inventaron los frameworks.



De por si cuando se escucha de alguno de ellos ya sea del lado del cliente o servidor encontramos que tienen dentro de sus funciones acortar de algún modo todas las tareas repetitivas y tediosas de la forma mas general posible algunos tan robustos y complejos que dan miedo, de por si en la Web podemos encontrar varios tipos de estos, algunos para tecnologías del lado del cliente como por ejemplo (Jquery, prototype) para JavaScript o (Blueprint) para CSS, así como otros del lado del servidor como ( Django) para Python , (Symphony) para PHP, entre otros muchos, que podemos listar con tan solo buscar en Google.



El objetivo real de este post es el de listar algunas pequeñas descripciones generalizadas que ayudaran a saber cuales son las virtudes de los frameworks del lado del servidor.


1. Mapeo Objeto relacional y API para el manejo de datos:



Estas características, desde mi punto de vista son unas de las mas importantes a la hora de seleccionar un Framework, en teoría el desarrollo de un sitio Web tiene de por si un fuerte desarrollo basado en la persistencia y manipulación de la información contenida en dicho sitio y se sabe de antemano que esta información debe ser actualizada o aumentada constantemente en la mayoría de los sitios modernos, por esta razón, muy seguramente al desarrollar una de estos se necesite la implementación de un modelo de datos que soporte toda esta estructura.

Así mismo, el 80% de las veces cuando se habla de ER también se tiene en cuenta como parte del desarrollo la implementación de un entramado de clases (OOP), que ayuden a dar el soporte dinámico de la información fuera de la base de datos, esto conduce en muchas ocasiones a perder tiempo valioso en la creación de ambos modelos aparentemente similares, para tener el sistema completo, Por el contrario, al tener un Framework que soporte Mapeo Objeto Relacional, se cuanta con un mecanismo en el que solo basta con definir cada uno de los objetos y sus relaciones entre si, para tener un control completo de este tanto en la forma de manipular la información dinámicamente, como en su persistencia, encargándose este de todo el proceso de inserción, actualización y eliminación; todo esto transparente para el programador basado en una API de manejo de datos suministrada por el Framework.


Otra de las grandes ventajas es que gracias a que se suministra esta API para el manejo de la info., se podría cambiar perfectamente el motor de base de datos de MySQL a posgrest con solo cambiar 3 líneas en un archivo de configuración, y todo el desarrollo queda intacto.

2. implementación del patrón de diseño MVC (Modelo, Vista, Control):



Tener separa la presentación de la lógica del negocio, es una característica que debe cumplir cualquier tipo de desarrollo Web, así que un Framework que se respete debe soportar MVC y de hecho estar constituido para implementarlo al 100%, puesto que cada una de las partes que lo componen separan el código según su utilidad.


Modelo:



los modelos son la base de la inteligencia del negocio, en esto se encuentran todos los objetos definidos en el diagrama de clases del sitio Web, como, también todas las herramientas que me permitan procesar la información contenida en el.


Control:



se encarga de brindar los mecanismos necesarios para que el modelo pueda ser manipulado correctamente con respecto a la extracción de información por parte de las vistas, en este caso podrían ser desde simples funciones que ejecuten llamados a objetos del modelo, hasta sofisticados Web Services.


Vistas:



son las interfaces que desplegaran la información al usuario final, tan especializadas o simples como se requiera, por ejemplo una pagina Web, o una vista acondicionada para verse en dispositivos móviles, o para responder en consola.




De por si, con esta característica, tenemos la opción de cambiar todo el estilo de un sitio Web sin tocar un solo ladrillo de toda la lógica y manipulación del sistema, adaptándolo fácilmente a nuevas tecnologías.

3. Urls Amigables:





Esas Urls que tenían que ver con la forma como estaban organizadas las carpetas en el servidor, mas una cantidad de garabatos al momento de enviar variables por post pasaron a la historia, y es que de por si eran nombres que no decían nada, por ejemplo un sitio Web que maneje usuarios para la publicación de artículos podría tener una URL como esta para entrar a un post:


Código :

HTTP://WWW.SITIOX.COM/?txtusrId=851031&txtpostId=98754




que no trae mucha información al respecto de lo que se va a mostrar, por el contrario una URL amigable seria

Código :

HTTP://WWW.SITIOX.COM/BLOG/851031/POST/CONSTITUCION_Y_DEMOCRACIA_COLOMBIANA




CONCLUSION:




El uso de un Framework para la implementación de proyectos Web, disminuirá el tiempo de desarrollo considerablemente, ayudando, a los desarrolladores a prestarle mas atención a aspectos mas relevantes a la lógica del negocio, que ha como voy a enviar los datos o como creo el modulo de administración, y esto se vera reflejado, en la entrega de trabajos de mayor calidad y ayudara posteriormente a facilitar los procesos de mantenimiento del software desarrollado.

DanielJimenez


clabLevel: 47 Genero:Masculino
CALI - Colombia -

Por DanielJimenez

70 de clabLevel



Genero:Masculino  

Web Developer

mozilla
Citar            
MensajeEscrito el 10 Feb 2009 12:58 am

Freddie escribió:

DanielJimenez, por favor, resume. Quiero leer tu artículo, parece que es interesante y todo, pero pufff. Es una pared de texto...



Tear down the wall!

Tear down the wall!!!!

Tear down the wall!!!!
Tear down the wall!!!!
Tear down the wall!!!!
Tear down the wall!!!!

:music:


Ok, sé que me merezco un NIF o algo peor pero es que no pude evitarlo :oops: :oops: :oops:

Luego que coma prometo leer el artículo con calma y opinar y todo... U_U

Por Duilio

Claber

2590 de clabLevel

25 tutoriales
1 articulo

Genero:Masculino   Premio_Secretos

Venezuela

firefox
Citar            
MensajeEscrito el 10 Feb 2009 01:21 am
Está muy bien el artículo como información general sobre los frameworks; casualmente mi tesis se trata de un framework y yo tengo uno propio y he usado o al menos revisado algunas ya existentes... Por eso pensé que hablarías de si está bien crear uno o no (por el tituloo), vamos, que ya yo tengo mi opinión al respecto pero me gusta saber que opinan los demás sobre diversos temas...

:P

Por Duilio

Claber

2590 de clabLevel

25 tutoriales
1 articulo

Genero:Masculino   Premio_Secretos

Venezuela

firefox
Citar            
MensajeEscrito el 13 Feb 2009 09:43 pm

Duilio escribió:

Está muy bien el artículo como información general sobre los frameworks; casualmente mi tesis se trata de un framework y yo tengo uno propio y he usado o al menos revisado algunas ya existentes... Por eso pensé que hablarías de si está bien crear uno o no (por el tituloo), vamos, que ya yo tengo mi opinión al respecto pero me gusta saber que opinan los demás sobre diversos temas...

:P


Que cool men, la verdad, la experiencia que debe dejar el desarrollo de un framework debe ser bastante fuerte, te debió consumir un tiempo razonable, yo a duras penas he trabajado con ellos y realmente son un descanzo; lo del resumen, la verdad trate de escribirlo lo mas corto posible, solo que después de leerlo varias veces, tenia la idea de que faltaban mas cosas por colocar, así que lo organice un poco mas legible, me imagino que vos que los has estudiado mas a fondo sabes a lo que me refiero.
Saludos :cool:

Por DanielJimenez

70 de clabLevel



Genero:Masculino  

Web Developer

chrome
Citar            
MensajeEscrito el 04 Oct 2010 03:53 pm
Sinceramente son tremenda ayuda esto frameworks, pueden recomendar algunos de ellos para el trabajo con bases de datos, php y extend JS. :-/

gracias

Por Kyle_09

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Oct 2010 04:04 pm
DanielJimenez me pasa lo mismo, me da la sensación que podrías resumir muuuucho más. El contenido es interesante, pero demasiado tedioso de digerir.

Dejame darte un ejemplo:

Tu dijiste:

Modelo:


los modelos son la base de la inteligencia del negocio, en esto se encuentran todos los objetos definidos en el diagrama de clases del sitio Web, como, también todas las herramientas que me permitan procesar la información contenida en el.


Control:


se encarga de brindar los mecanismos necesarios para que el modelo pueda ser manipulado correctamente con respecto a la extracción de información por parte de las vistas, en este caso podrían ser desde simples funciones que ejecuten llamados a objetos del modelo, hasta sofisticados Web Services.


Vistas:


son las interfaces que desplegaran la información al usuario final, tan especializadas o simples como se requiera, por ejemplo una pagina Web, o una vista acondicionada para verse en dispositivos móviles, o para responder en consola.


Yo diría:

Modelo.
Todos nuestros objetos definidos, herramientas y clases internas que no tienen interacción directa sino lógica para realizar una tarea dada.

Control.
Conexión entre las vistas (Diseño) con nuestro Modelo. Desde funciones simples a complicados Web Services.

Vistas:
La interfaz en sí misma, el diseño del portal o sitio que tomará la información del usuario para operar.


Intenta recordar escribir didáctico no es escribir extenso. Es la diferencia entre un buen profesor y uno de esos que aburren a la clase jaja.

Igual no te pongas mal, este concepto me atormentó Freddie años hasta que lo pude aplicar decentemente (Y aún hoy día fallo horriblemente a veces).

Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.