Frameworks de desarrollo, dejando de reinventar la rueda

Llevo ya varios días sin publicar nada pero, no os preocupéis, ¡sigo vivo! He empezado a hacer un curso de Diseño de Aplicaciones Web con Patrones Java que me ha vuelto a dar el empujón que necesitaba para ponerme de nuevo con el desarrollo.

En concreto en el curso estamos viendo los diferentes patrones, tanto arquitectónicos como de diseño, para el desarrollo de aplicaciones. Un patrón, en esencia, es una solución en forma de modelo (diagrama de clases e interacción entre ellas) a un situación o problemática típica que se presenta que se presenta muchas veces en el desarrollo de software. Hay patrones para muchas de esas situaciones “tipo”, solo hay que elegir el más adecuado e implementarlo. No nos libra de tener que desarrollar, pero nos viene a decir más o menos cómo hacerlo.

Apache Struts

Apache Struts

Los patrones los vemos desde la perspectiva de los estándares J2EE para desarrollar en Java. Concretamente en la parte práctica utilizamos el framework de desarrollo web en Java, Apache Struts. Un framework es un conjunto de patrones arquitectónicos y de diseño ya implementados en algún lenguaje, que establecen un entorno y proporcionan las herramientas necesarias para desarrollar un aplicación web más o menos compleja. En concreto Struts utiliza la arquitectura Modelo Vista Controlador para su desarrollo.

En estos días estoy refrescando mis conocimientos de Java, que hace prácticamente 4 años que dejé aparcados. Recuerdo que me gustaba bastante, sobre todo por la manera de abordar los proyectos. Por supuesto Orientado a Objetos, pero ya no solo eso, con algún tipo de metodología tradicional o ágil, con una documentación aunque sea mínima… Me había acostumbrado a la programación de “andar por casa”, a retocar cosas ya hechas con “lo mínimo para que funcione”, a la continua corrección de errores y bugs, a los continuos cambios de requisitos… y claro esto ahora es como ver la luz de nuevo. Pero ya hablaré de metodologías en futuros posts.

Una vez metido en esto de los frameworks de nuevo, me entró la curiosidad de ver qué había sobre esto para PHP. Mas que nada porque lo de Java está muy bien, pero orientado a nivel más “industrial”, debido a los costes. Pues bien, buscando encontré cosas como CakePHP, Zend o Symfony y siguiendo algunos consejos y opiniones por Internet me he quedado con este último.

Symfony

Symfony

Y ahí ando, de momento familiarizarme con este framework siguiendo un tutorial diario que describe el desarrollo de una aplicación web en 23 días con Symfony. Una vez familiarizado con su manera de hacer las cosas, Symfony promete un desarrollo rápido de aplicaciones web, de manera modular y bien estructurada, sin tener que estar reinventando la rueda cada vez que empezamos un proyecto. En contrapartida, la aplicación tendrá un mayor consumo de recursos, algo que con las máquinas de hoy en día podemos permitirnos siempre y cuando esté controlado. Algunas voces añaden a esto que tiene una curva de aprendizaje bastante lenta, aunque todo depende si estas acostumbrado a este tipo de frameworks o no ya que de ser así solo tendras que comprender y dominar sus peculiaridades.

En definitiva, me parece un buen punto de partida para el desarrollo de aplicaciones que espero poder utilizar de ahora en adelante en mis proyectos.

Consigue un diseño profesional y original por internet

La mayoría de los programadores nos encontramos con el escollo del diseño a la hora de empezar con un proyecto web. Sobre todo en las empresas en las la figura del diseñador no existe y paradógicamente es al diseño a lo que más importancia le dan en el proyecto.

12designer.com

www.12designer.com

En esta web podréis exponer vuestro proyecto a la espera de obtener propuestas de los diferentes diseñadores que hay registrados en su web, que al parecer no son pocos. También tenéis la posibilidad de diseñar vuestros logos, tarjetas de visita y demás.

No la he probado pero no parece tener mala pinta, y los precios parecen asequibles. A tener en cuenta cuando necesite un buen diseño para alguno de mis trabajos.