Posteado por: felixcriv | mayo 30, 2009

Tecnologías Web que todo profesional IT (por ahora) debería conocer

Cuando decidimos optar por una solución orientada a la Web nos vemos en la necesidad de buscar y en muchos casos poner en prácticas las mejores formas de desarrollo, no sólo en cuanto a técnicas de planificación de software sino cuál o cuales tecnologías de desarrollo web se ajustan a los requerimientos tantos técnicos como funcionales, eso sí, pensando siempre en la escalabilidad de la aplicación.

Si bien hoy día la mayoría de los desarrollos de software están orientados a la web esto presupone que este campo cuenta con muchas alternativas por donde encaminar un nuevo proyecto, es por ello que siendo profesionales dedicados a este tipo de soluciones debemos estar “up-to-date” no sólo en “the best practices” sino también en “Web Development Oriented Technologies”.

Entendamos que un equipo de desarrollo está conformado por varios profesionales IT, cada uno con diferentes habilidades y por hende con diferentes percepciones de desarrollo, es por esto, que aún cuando existen tecnologías que pueden abarcar ciertos aspectos del desarrollo no son éstas las más convenientes por diversas razones; por ahora no entraré en esta discusión de qué es más conveniente, pues este es un criterio bastante subjetivo y que está ligado al hecho de las experiencias que cada uno pueda tener en su campo, teniendo esto en cuenta, cada quién sabe qué es más apropiado para su proyecto, inclusive algunos proyectos de desarrollo sólo de dedican buena parte  a probar tecnologías de desarrollo.

Lo cierto es que existe un conjunto de herramientas que nos permiten planificar, desarrollar, documentar y probar nuestras aplicaciones, aquí nombraré algunas:

Metodologías de desarrollo: de todas las AGILE, SCRUM es muy flexible a la dinámica de negocios que se vive hoy día.

Herramientas para Planificación del proyecto: Bootcamp (37signals) es una buena opción, permite planificar con el cliente y con tu equipo de desarrollo especificaciones de requerimientos en una plataforma que se presta completamente para ello.

Frameworks: permiten al equipo de desarrollo producir rápidamente aplicaciones prototipo pues en su mayoría generar el scaffold (andamiaje) a través del mapeo ORM (Oriented Relational Mapping).

Librerías: permite a los programadores y especialistas de pruebas de software emplear subrutinas ya elaboradas, sin tener que re-inventar la rueda, la mayoría de éstas brindan funcionalidades muy específicas en el desarrollo.

Arquitecturas de Diseño: sin caer en controversiales discusiones, la conclusión en MVC con orientación de servicios en REST

Lenguajes de programación: he aquí el talón de aquiles de la aplicación pues no sólo su desempeño pondrá en juego el desarrollo sino que tan orientado a servicios web puede ser, hoy día cualquier lenguaje orientado a objetos debe ser tomado en cuenta, pues si piensas interoperar con otras aplicaciones puedes brindar webservices en REST (SOAP, particularmente no, gracias). ¿Puedo programar para Web en C++?, sí, pero tendrás que asumir muchos retos.

Formatos de Intercambio de Datos: si se emplea arquitectura REST pues XML es nuestro formato, también JSON es una opción.

Mapeadores ORM: aunque muchos frameworks brindan esta opción puedes usar Hibernate el cual puede ser integrado con varios lenguajes, existen otros pero debes ver que tan transparente es el mapeo a objetos así como también debes tener en cuenta si te permite ejecutar consultas directas en SQL.

Motores de base de datos: PostgreSQL, MySQL, SQLServer son una de las opciones, puedes también considerar los sorprendentes servicios de Amazon y Google de base de datos.

Control de cambios: Control de cambios por subversión es lo mejor que existe si deseas mantener integridad en todos los aspectos de tu proyecto.

Unidades de prueba (unit test): una práctica muy recomendada, varios frameworks incorporan unidades de prueba, así como también existen librerías orientadas a unit tests.

HTML5, CSS, SVG, JavaScript: esto es base, el enfoque IT es integral,  de igual forma se debe tener en cuenta estos aspectos.

Frameworks JavaScript (mootools, script.aco.lus): para manejar eventos AJAX, efectos, aunque estos aspectos están siendo cubiertos por los frameworks de desarrollo al incorporar estas funcionalidades.

Flash, ActionScript: lo dejo como un apartado pues comprende algo que en un principio era empleado para animación, ahora se usa mucho flash para desarrollo web y aplicaciones; AS es un lenguaje que se está volviendo muy poderoso, al punto que es una tecnología empleada en muchos escenarios.

RIA: ¿quién no ha escuchado esto? (y si no, entonces que me dicen del Flex, AIR, Silverlight), las API son libres, los entornos de desarrollo no, pero de igual forma puedes hacer mucho con RIA.

Por ahora tenemos este panorama, existen otros aspectos como integración con redes sociales, geo-location, documentación de sistemas y otras cosas que estaré comentando.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: