Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Web Development

15 Consideraciones Importantes para Elegir un Marco de Desarrollo Web

by
Read Time:11 minsLanguages:

Spanish (Español) translation by Jorge Montoya (you can also view the original English article)

Nuevos marcos de desarrollo web están brotando a un ritmo más rápido de lo que nadie podría seguir. En este artículo, vamos a determinar cómo decidir sobre un marco para crear su próxima espectacular aplicación web.

En este momento y época, generar una aplicación acabada y pulida antes que su competidor es clave. Codificar todo desde cero, excluyendo incluso las cosas mundanas, puede consumir mucho tiempo y hace que el desarrollador pase tiempo reinventando la rueda, tiempo que se gastaría implementando nuevas características o reforzando la base de código. Aquí es donde entran los marcos de desarrollo web. A menudo cubren todos los aspectos habituales de una aplicación, incluyendo acceso a bases de datos, autenticación, administración de sesiones y mucho más.

Hoy, vamos a echar un vistazo a los varios aspectos que deben preocuparle antes de elegir un marco. ¿Interesado? ¡Empecemos de inmediato!

1. Contexto de Uso

Tutorial ImageTutorial ImageTutorial Image

Antes incluso de empezar a mirar a los marcos de desarrollo, tendrá que hacer una lista de sus requerimientos y si un marco es adecuado para ese propósito.

Usted necesita un marco si:

  • su aplicación se basa principalmente en operaciones de CRUD
  • Usted necesita una separación adecuada de la interfaz de usuario y la lógica subyacente, pero no tiene el tiempo para implementar un sistema adecuado
  • usted se encuentra con una biblioteca hecha a mano que usted usa en cada una de sus aplicaciones que cubre la autenticación del usuario, sesiones y otras operaciones habituales asociadas con la creación de una aplicación web
  • usted tiene un jefe que quiere que usted cree un CMS para ellos en 2 días y ya conoce el marco de desarrollo

Usted NO necesita un marco si:

  • usted solo quiere un bonito sistema de URL
  • usted solo desea una parte específica del marco como su ORM
  • usted está en una línea de tiempo apretada y necesita aprender el marco a partir de cero
  • le dijeron que los marcos de desarrollo curaban el cáncer

2. Licencia

Tutorial ImageTutorial ImageTutorial Image

Antes de comenzar a desarrollar con un marco, vea bajo qué tipo de licencia se distribuye el marco. Aunque la mayoría de las licencias son bastante liberales para trabajar y le permite crear aplicaciones comerciales, algunas de ellas no son tan generosas. Lo último que usted querría es crear una aplicación completa para descubrir que la licencia no le permite distribuirla comercialmente. Es mejor hacer su investigación antes que sufrir después.

Tenga en cuenta que esto no se limita únicamente al marco. El complemento o extensión que utilizó para la funcionalidad adicional puede tener una cláusula oculta. ¡Compruebe su licencia también!

3. Patrón de Software

Tutorial ImageTutorial ImageTutorial Image
Del Proyecto Symfony

Casi todos los frameworks allá afuera utilizan exclusivamente el patrón MVC. MVC, que significa Modelo-Vista-Controlador, le ayuda a mantener sus datos: el modelo, la lógica: el controlador y la interfaz de usuario: la vista, separados unos de otros. Esto a su vez le permite escribir código mejor, más estricto lo que en última instancia, resulta en mejores aplicaciones.

Sólo porque casi todo el mundo utiliza MVC no significa que es todo lo que necesita saber. Hay un par de variantes incluyendo MVP: Modelo-Vista-Presentador, MVA: Modelo-Vista-Adaptador y AVC: Aplicación-Vista-Controlador.

4. Requerimientos de Hosting

Tutorial ImageTutorial ImageTutorial Image

Como desarrolladores web, podemos estar inclinados a la construcción de aplicaciones en plataformas de vanguardia, pero a menudo la necesidad y el presupuesto del cliente vienen primero. A veces, puede estar fuera del presupuesto conseguir un host dedicado para colocar nuestras aplicaciones y tendremos que conformarnos con el alojamiento compartido con módulos y configuraciones normales.

Los marcos que juegan bien con alojamiento compartido incluyen:

Marcos que requieren configuraciones relativamente no tradicionales:

Con toda honestidad sin embargo, usted puede todavía correr marcos como Django en un host compartido de paquete. Sólo requerirá que el servidor tenga instalado el módulo necesario. Es posible que pueda ejecutarlo CGI pero será mucho más lento que ejecutarlo de forma nativa.

5. Facilidad de Instalación

Tutorial ImageTutorial ImageTutorial Image

La facilidad de la instalación juega un papel muy importante al eligir un marco. Un marco, esté cargado de características o sea rápido, puede plantear un gran problema si uno tiene que ejecutar una serie de pasos sólo para instalarlo y tenerlo funcionando.

Esto también representará un gran problema una vez que la aplicación esté lista, probada y deba ser desplegada en el servidor de producción. Un marco con facilidad de instalación y un despliegue tan fácil consigue puntos adicionales aquí.

Para muchos de los marcos, configurar es tan simple como establecer los valores correctos en el archivo de configuración, mientras que para otros puede ser un asunto muy largo y elaborado. Elija un marco que le permita ponerse en marcha lo más rápido posible.

6. Curva de Aprendizaje

Tutorial ImageTutorial ImageTutorial Image

Cada marco de desarrollo tiene su propio universo diminuto: convenciones de nomenclatura, estructura de directorios y demás. Algunos marcos son bastante flexibles cuando se trata de estos, mientras que otros son muy, muy estrictos arrojando errores en la más mínima de las fallas. Algunos marcos siguen las convenciones generales al implementar una característica mientras que otros pueden separarse y hacer lo suyo. Al elegir un marco, recuerde escoger uno que tenga la menor curva de aprendizaje posible.

Si usted no conoce el lenguaje en que está escrito el marco, tome nota de incluir el propio lenguaje en la curva de aprendizaje. He visto a varios desarrolladores saltar a Django desde CakePHP y luchando ya que necesitan aprender tanto Python como Django al mismo tiempo. Si necesita aprender el marco y el lenguaje en el que fue escrito, ¡tómese su tiempo!

7. Biblioteca Central

Tutorial ImageTutorial ImageTutorial Image

Seamos sinceros; es por la biblioteca central que la mayoría de la gente adopta un marco. La biblioteca debe ser tal que le libere de escribir código repetitivo pero todavía proporcione una manera para que usted funcione con ella si usted necesita más control o características.

La mayoría de los marcos ofrecen bibliotecas que cubren casi todo de la siguiente lista:

  • AJAX
  • Autenticación
  • Autorización
  • Almacenamiento en Caché
  • Sanitización de Datos
  • Validación de Datos
  • Plantillas
  • Mapeo o Reescritura de URL

Por supuesto, no todo el mundo necesita un marco lleno de características. Mucha gente prefiere marcos para manejar el mínimo necesario, mientras que se permite que el desarrollador maneje el resto. En estos casos, tendrá que asegurarse de que el marco en cuestión sólo tiene las características que necesita.

Una tendencia actual entre los marcos es que se crean como una biblioteca de bibliotecas. En otras palabras, le permiten intercambiar partes de la biblioteca con otra parte de su elección. Un excelente ejemplo de esto sería Pylons. Le permite cambiar casi todas sus partes a partir de la ORM hasta su lenguaje de plantillas. A la gente le gusta estos marcos ligeramente acoplados, tanto como los marcos que están estrechamente vinculados con respecto a sus componentes básicos.

8. Abstracción de DB y ORM

Tutorial ImageTutorial ImageTutorial Image

Casi todas las aplicaciones tienen que acceder a una base de datos para leer los datos o editar su contenido. De cualquier manera, usted estará haciendo esto a lo largo de la aplicación y con esto en mente, la mayoría de los marcos le permiten utilizar una clase de acceso a la base de datos que usted puede utilizar. Así que al elegir una aplicación, elija una que permita que su aplicación se convierta en agnóstica de la base de datos. Nunca tendrá que preocuparse por la parte de la base de datos en caso de necesidad de cambiar las bases de datos si su marco se encarga de eso.

La segunda parte en la que deberá pensar es en las capacidades ORM del marco de desarrollo. Sin volvernos técnicos, ORM o Mapeo Objeto-Relacional le permite expresar datos como un objeto y ver cómo se relaciona con otros objetos. Imagine una base de datos de objetos de la que puede extraer información, si lo desea.

Los marcos que tienen capacidades de ORM incluyen CakePHP, Django y Ruby. Con marcos como Pylons, puede utilizar el ORM de su elección.

9. Biblioteca JS Incluida

Tutorial ImageTutorial ImageTutorial Image

Otro punto de discordia es la biblioteca JavaScript incluida. Mientras que la mayoría de bibliotecas le permiten intercambiar la biblioteca con facilidad, los métodos AJAX dentro del marco de desarrollo están en su mayoría aún orientados hacia una biblioteca específica de JS. Esto significa implícitamente que tendrá que escribir manualmente la funcionalidad usted mismo. Por otro lado existen marcos con métodos agnósticos de biblioteca que le permiten intercambiar la biblioteca de JavaScript con poca o ninguna molestia.

Como referencia, tanto CakePHP como Ruby on Rails vienen con Prototype y Scriptaculous como estándar.

10. Pruebas Unitarias

Tutorial Image

Yo soy uno de esos desarrolladores que cree firmemente en las pruebas unitarias. Wikipedia define las pruebas unitarias como:

La prueba unitaria es un método de verificación y validación de software en el que un programador prueba si las unidades individuales del código fuente son aptas para su uso. Una unidad es la parte comprobable más pequeña de una aplicación.

Los marcos que me permiten escribir pruebas unitarias son una ventaja definitiva en este caso. Una gran cantidad de marcos, incluyendo Code Igniter, CakePHP y Zend le permiten crear pruebas personalizadas, además de las pruebas de núcleo para comprobar las partes críticas de su aplicación.

11. Escalado

Tutorial ImageTutorial ImageTutorial Image

El desarrollador web promedio no tiene que preocuparse por la escalabilidad de un marco. Como suele ser el caso, la latencia de E/S y de red suelen ser el problema más que la escalabilidad de un marco. Incluso el mítico problema de escalabilidad de Twitter no era culpa del marco en cuestión.

Si alguien le pide que descarte un marco señalando problemas de escalado, ignórelos. El marco es rara vez la razón del problema de escalado. Claro, usted podría optimizar el código un poco, pero a menudo la razón de peso del problema de escalado se encuentra en otra parte.

12. Documentación

Tutorial ImageTutorial ImageTutorial Image

La documentación de un marco es a menudo clave para su éxito. Documentación bien explicada, detallada atrae a los usuarios intensivos y evangelistas que luego traen más personas. Con documentación confusa y de mala calidad, las personas van a irse confundidas y molestas.

Busque un marco que tenga documentación completa con gran cantidad de ejemplos, fragmentos, código de ejemplo, artículos y tutoriales. Videotutoriales como los de Jeffrey son una ventaja especial ya que le permitirán trabajar paralelamente.

13. La Comunidad

Tutorial ImageTutorial ImageTutorial Image

Inevitablemente, incluso con la documentación adecuada, usted va a incurrir en errores que deberá rectificar, para los cuales usted va a tener que pedir a la comunidad detrás del marco por ayuda. He interactuado personalmente con comunidades que critican severamente a los programadores nuevos en el marco y se burlan de ellos, mientras que en el otro extremo he visto las comunidades acoger alegremente a los novatos y enseñarles los trucos del oficio. Creo que no hay necesidad de decir qué marco acabé eligiendo y con cuál comencé a trabajar permanentemente.

Como sucede a menudo, las comunidades detrás de un marco hacen o rompen el marco de desarrollo. Demasiado estirada y usted se resentirá con el marco en vez de con la gente. Bien educada y usted gravitará en dirección al marco. Elija un marco que tenga una comunidad amigable que ayude a los desarrolladores nuevos en la plataforma.

14. Correcciones/actualizaciones de errores

Tutorial ImageTutorial ImageTutorial Image

Una de las razones por las que los desarrolladores web evitan crear sus propios frameworks es el hecho de que ellos son los únicos responsables de arreglar los errores y de las actualizaciones. Con un gran marco de desarrollo, usted literalmente tiene miles de programadores filtrando a través del código y poniéndolo a través de sus pasos sobre una base diaria. Los errores, si y cuando se encuentran, se resuelven tan pronto como sea posible después de ser encontrados.

Elija un marco que no esté estancado. Usted no quiere que un hacker le diga que existe una vulnerabilidad de seguridad en el marco a través de una página que hackeó en su sitio. Usted prefiere escuchar eso de los desarrolladores del marco, esperemos que con un enlace a un parche para el problema. Elija un marco que se actualice a menudo, esté abierto sobre los errores que encuentra y lo más importante, corrija los errores que la gente encuentre tan pronto como sea posible.

15. Facilidad de Creación de una Extensión y Disponibilidad

Tutorial ImageTutorial ImageTutorial Image

Mientras que un marco cubre todas las bases importantes de una aplicación, lo más probable es que usted todavía tenga que escribir un montón de código. Hágalo lo suficientemente genérico y podrá volverlo a emplear en un componente adecuado para reutilización en otras aplicaciones o incluso mejor liberarlo al público en general para que hagan uso de él en sus aplicaciones.

Elija un marco de desarrollo que le permita extenderlo fácilmente y con un mínimo de alboroto. Con CakePHP por ejemplo, la ampliación de un controlador es atendida por los componentes y las vistas por los ayudantes. En cualquier caso, crear una extensión es tan simple como definir una nueva clase que hereda de una clase base principal.

Al elegir un marco, también tenga en cuenta la disponibilidad de complementos. A menudo no tendrá tiempo para crear una extensión personalizada desde cero. Tener un enorme grupo de extensiones para elegir alivia enormemente este problema. Elija no por el número de extensiones sino por la calidad de las extensiones.

Conclusión

¡Y hemos terminado! Miramos todos los aspectos que debe considerar antes de elegir un marco de desarrollo web. Hemos estudiado todo, desde la revisión acerca de si sería adecuado para nuestros propósitos hasta correcciones de errores y actualizaciones. Esperemos que esto haya sido útil para usted y lo haya encontrado interesante.

¿Preguntas? ¿Comentarios agradables? ¿Críticas? Pulse en la sección de comentarios y déjeme un comentario. ¡Feliz codificación!


Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.