El desafío del desarrollo web
Posted on 09. Jul, 2009 by Guillermo in Development, Español

El terreno del desarrollo web es amplio y variado, donde entran en juego un conjunto de disciplinas muy dispares. Esta explicación bastante abarcativa, trata de cubrir un poco el panorama.
A grandes rasgos podemos separar una aplicación web en 2 grandes partes, bastante distintas, que conviven entre sí, casi transparentemente a los ojos del usuario.
El usuario y su navegador
Estamos en las profundidades del browser y el procesamiento del lado del cliente. Aquí aparecen varias tecnologías involucradas, a grandes rasgos son: html + css, javascript y flash (siendo muy amplio podría incluir a applets java, aunque no es lo más frecuente de ver).
HTML + CSS
El diseño del sitio e interfaz de usuario puede verse muy lindo en Photoshop, pero a la hora de la verdad tiene que estar traducido (cortado se le suele decir) en HTML y CSS. Buenas prácticas de codificación, estándares web, divs, doctypes, compatibilidad entre navegadores (tratando de caerle bien a ese amigo que nadie quiere, pero que la realidad nos obliga a tener, IE6) y consideraciones para el SEO (optimización para motores de búsqueda) son algunos de los ingredientes de esta ensalada de fruta (y esto no termina acá).
Javascript
En pocas palabras, en único lenguaje de programación que entienden los navegadores nativamente (y no todos por igual :S). Animaciones sin flash, AJAX (Javascript asíncrono, la X de XML es debatible), y cualquier tipo de lógica ejecutada en el navegador, todas están a cargo de Javascript.
Con su sintaxis parecida a Java y C, es la manera de agregar algún tipo de inteligencia a las aplicaciones web.
Flash y applets java también son alternativas propietarias a la hora de programación del lado del cliente y los 2 requieren de agregados instalados en el cliente (realmente no son mi especialidad).
Dentro de el mundo de Javascript, hay varias librerías que extienden las funcionalidades nativas del lenguaje y permiten llevar la experiencia de usuario a otro nivel.
A nuestro entender son fundamentales a la hora de programar en javascript, facilitando mucho las cosas. La mayoría de las veces trabajamos con Jquery y su Jquery UI, en el pasado hemos usado Mootools, Prototype y Scriptaculous.
La parte de atras
El mundo del backend es otro cantar, el encargado de servir nuestras páginas y entregar los datos requeridos por nuestra aplicación es otra bestia totalmente diferente.
El protagonista aquí es el servidor web, encargado de recibir la petición, procesarla y devolvernos el resultado. Este resultado puede estar listo para ser mostrado en formato HTML, o bien en otra forma (xml, json, texto plano, etc.) para ser procesado por nuestra aplicación en el cliente.
Apache, Nginx, Lighttpd e IIS están entre los más usados, encargados de interactuar con los intérpretes de los distintos lenguajes: (dependiendo de la elección de tecnología) PHP, Ruby, Python, ASP, entre otros.
Dentro de los lenguajes de programación server-side tenemos al submundo de los frameworks. Un framework provee una estructura de soporte, mediante la cual el proyecto de software puede ser organizado y desarrollado, haciendo más fáciles algunas tareas y salvándonos de “reinventar la rueda” brindando funcionalidad básica.
Por mencionar algunos, en el mundo de PHP tenemos a CakePHP, CodeIgniter y Symphony (son sólo algunos). Otros destacados y muy populares son Ruby on Rails (para Ruby) y Django (para Python).
Bajando un poco de nivel seguimos encontrando cosas a tener en cuenta:
- Seguridad: En el servidor propiamente dicha(a nivel de red), en la aplicación (inyecciones SQL, XSS – Cross site scripting, validación, etc).
- Optimización: Caches a nivel de framework, caches independientes como memcached, caches a través de proxys. Optimización del código, precompiladores, etc.
- Escalabilidad: Eliminar cuellos de botella a nivel de servidor web con redundancia, redundancia en la base de datos separando las llamadas de lectura de las de escritura a distintos servidores (las de lectura representan el 80%), etc.
Otra variable de esta ecuación son las bases de datos. MySql y PostgreSQL (las más populares del software libre), Oracle, SQL Server, etc. El código de los diferentes lenguajes es el que accede a estas bases de datos y se encarga de interactuar con la información.
En resumen
Todos estos factores son parte de la vida del desarrollador Web. He pasado por alto algunos temas para que no se haga tan extenso, como los CMS(Gestor de Contenidos), el SEO (Search Engine Optimization u Optimización de motores de Búsqueda, que es un mundo aparte) y un largo etcétera.
Con tantas cosas en juego, no sé quién se puede aburrir (yo a veces me quejo pero al final de cuentas, en la variedad esta la diversión). Es un desafío con el cual nos encanta enfrentarnos día a día.
Saludos!
Foto de CalEvans
No related posts.
Spanish





+54 261 4340244