Desarrollo de Aplicaciones Web basadas en PHP – Introducción
Publicado el: 14 de diciembre, 2009
Acabaste de aprender PHP, estás listo para aplicar tus nuevos conocimientos, quieres crear una aplicación para Twitter/Facebook y subirla a Internet, momentos después te das cuenta de que sólo aprendiste cuando utilizar un «for» y no un «while», o talvez la diferencia entre un «echo» y «print». No estás solo, muchos hemos leído esos libros de «Aprende X lenguaje en 7 días», pero se necesita más tiempo para conocer un lenguaje y de hecho mucho más tiempo el conocer o si quiera intuir el cómo funcionan las aplicaciones web más complejas.También es necesario tener sólidos conocimientos básicos de las Tecnologías de Internet (HTTP,FTP,SMTP,etc.) y conceptos de Seguridad para poder lanzar una aplicación web segura a Internet.
Ya una bastante cantidad de aplicaciónes están en la Nube hoy en día, las cuales están desarrolladas en una variedad de frameworks y lenguajes de programación. Con esta serie de tutoriales deseamos dar un vistazo rápido acerca del desarrollo de aplicaciones web.
Aplicaciones Web
Las aplicaciones web son generalmente vistas en un browser. Una aplicación tiene 2 partes:
- FrontEnd (Browser) El FrontEnd es con lo que se encontrará el usuario final, esta interfaz es el browser. El browser/navegador es clave ya que este nos puede dar la posibilidad de crear aplicaciones complejas como también restringirnos (Internet Explorer 6/7). Las aplicaciones deberán estar escritas en HTML/JS/CSS, o Flash/Flex, o Java FX, o Silverlight etc.
- BackEnd (Server) El servidor es el motor de estas aplicaciones web y casi siempre utilizan una base de datos para el almacenaje de datos. Los lenguajes de programación son variados en el backend, si el lenguaje de programación puede generar un script HTML entonces ya puede ser considerado un lenguaje web.
Desarrollo de Aplicaciones Web basadas en PHP
Las aplicaciones web pueden llegar a ser tan complejas como Facebook o tan simples como isFollow (hace un simple llamado al API de Twitter); lo que implica que se debe tener una idea de cómo diseñar una aplicación/sistema para un problema dado (Entender y analizar una empresa antes de crear un sistema). Para poder desarrollar aplicaciones web se necesita básicamente buenas herramientas, conceptos de desarrollo de aplicaciones (Ingeniería de Software, etc.), conceptos de diseño web, y por último, lo más importante, una idea previa de la aplicación.
Herramientas
Las herramientas son un factor clave para el desarrollo de las aplicaciones, ya que en cierta medida determinan que tan rápido puedes realizar ciertas tareas. Las herramientas pueden dividirse básicamente en:
- Browser. Entre los browsers tenemos a:
- Firefox. El browser que tiene una extensión para todo, siendo esa su mejor característica; Firefox tiene las mejores herramientas para el desarrollo web.
- Internet Explorer. Internet Explorer es el browser más utilizado y esto no cambiará por unos cuantos años más, es por tal razón que siempre debemos tomar en cuenta a este browser cuando desarrollemos una aplicación.
- Chrome. El Browser de Google (cuya nueva presigna es hacer una web mejor) es el más rápido de todos.
- Opera. Opera casi siempre es el browser con las nuevas características (aunque algo opacado con Chrome) que serán aplicadas en los otros browsers (tabs, download manager, etc.).
- Safari. El Browser de Apple, viene por defecto en su Sistema Operativo.
- IDE (Integrated Development Enviroment). Entre los IDEs más importantes para PHP tenemos a:
- Eclipse. Es un IDE flexible que soporta varios lenguajes de programación, trae una variedad de plugins lo que lo hacen ideal para el desarrollo web.
- Aptana. Aptana está basado en Eclipse y trae
- Zend Framework. Está basado en Eclipse también y fue desarrollado por la misma empresa que mantiene a PHP (Zend)
- Netbeans. Netbeans tiene un fuerte soporte de la comunidad.
- Dreamweaver. Parte del Creative Suite de Adobe
- Servidor Web. Tener acceso a un servidor web para pruebas es esencial para el desarrollo web. Mucho mejor es si este servidor de pruebas tiene las mismas características que el servidor de producción (versión de los programas instalados, etc.).
- Otros
- VCS (Version Control System). Un Sistema de Control de Versiones es vital para el desarrollo de aplicaciones en equipo e incluso cuando lo haces solo. SVN y GIT serán los que veremos en estos tutoriales.
- Cliente FTP. Para poder subir nuestros archivos al servidor de producción en la mayoría de los casos tendremos que utilizar un cliente FTP.
Diseño Web
Cuando se habla de Diseño Web se habla del Front-end, y para desarrollar la interfaz de aplicaciones web se debe tomar en cuenta los estándares que se fueron creando a medida que estas maduraban. Gran parte de estos estándares fueron ya definidos en las aplicaciones de escritorio (menú, barra de estado, etc.). Dado que las aplicaciones web tienen como interfaz al browser es necesario tener conceptos de Diseño Web (con énfasis en la Experiencia de Usuario [UX]). Podemos enfrentar los siguientes problemas si no tomamos en cuenta al Diseño Web:
- Una aplicación web puede funcionar pero es difícil encontrar las cosas.
- Una aplicación web puede tener gráficos geniales pero no es nada funcional (Mystery Meat)
Aplicaciones minimalistas
Para Google unimpressive (nada impresionante) es un cumplido. ¿Por qué?. Cuando Google lanzó la interfaz para su motor de búsqueda muchos dijeron que no les impresionó para nada, «y los widgets? y las noticias?». El objetivo de sus aplicaciones no es que te quedes en ellas sino que las utilices de tal manera que no tengas idea de que ocurre por detrás.
El modelo mental del Usuario
Cuando uno maneja un coche probablemente no entiende cómo funciona el motor, tal vez logré entender que la gasolina tiene un rol importante, pero el funcionamiento es complejo. Es interesante que un coche sea tan complejo pero en muchas ocasiones podemos seguir manejándolos aún cuando las cosas vayan mal. Y eso es porque la mayoría de los usuarios ya tienen una idea previa de cómo funciona el coche. Se deben diseñar las interfaces de manera tal que dejen a los usuarios corregir sus errores. (Leer más en libro «Designing Social Interfaces», pag 18,19)
Objetivo de los Tutoriales
El objetivo principal es que se obtenga una base sólida para desarrollar aplicaciones web en HTML/JS/CSS/PHP con las herramientas adecuadas. Se toman en cuenta los siguientes puntos:
- El sistema operativo principal es Ubuntu Linux, dado que los servidores en los que se implementan las aplicaciones web utilizan en su mayoría Linux.
- El browser utilizado será Firefox por la versatilidad de sus addons.
- Se utilizará tanto Aptana como Netbeans como IDE para el código y las aplicaciones.
- Se hará énfasis en herramientas de código abierto y disponibles para todas las plataformas de desarrollo.
Contenido de los Tutoriales
En los tutoriales se verán 3 temas importantes:
1. Herramientas
Un resumen de las herramientas utilizadas al Desarrollar Aplicaciones Web basadas en PHP
2. Conceptos básicos
Conceptos de OOP (Object Oriented Programming) en PHP y JavaScript, así como el modelo MVC (Model – View – Controller) en PHP.
3. Construcción de un Framework en base a CodeIgniter
Se explicará la construcción de un pequeño Framework por encima de CodeIgniter.
[no_adsense_bar_1]
[adsense_bar_2]