¿Cómo debería un programador que nunca ha trabajado en una aplicación web comenzar a trabajar en una aplicación web?

Como ya tiene experiencia en programación, la curva de aprendizaje para el desarrollo web se reducirá considerablemente.
Aunque existen muchas tecnologías para trabajar, voy a enumerar algunas de las más comunes en uso hoy en día:
Interfaz

  • HTML5 / CSS3
  • JavaScript
  • jQuery (biblioteca js)
  • AngularJS (biblioteca js)

Backend

  • Ruby on Rails
  • PHP
  • Python-Django
  • Nodejs – ExpressJs

Bases de datos

  • Mysql
  • Postgres
  • MongoDB

Algunos consejos sobre dónde comenzar el desarrollo web y cómo hacerlo:

  • Es importante saber HTML5-CSS3-Javascript. Sí, los tres. Pero no se preocupe, todos son bastante simples y no debería tomarle mucho tiempo aprenderlos.
  • jQuery es una biblioteca de JavaScript, que tiene muchas funciones ordenadas para realizar una gran cantidad de tareas. Le recomiendo que aprenda esto también. De hecho, le sugiero que aprenda esto antes de aprender JavaScript.
  • AngularJS está en un nivel avanzado. Guarda esto para más tarde.
  • Elija una de las tecnologías enumeradas en Backend y aprenda eso. Todos son más o menos equivalentes, así que no te preocupes por cuál eliges.
  • Aprenda suficiente SQL para comprender las operaciones básicas.

Sí, esas son muchas cosas que aprender. Y sí, llevará tiempo. La clave es aprender un idioma y trabajar con él antes de pasar al siguiente.

El modelo de aplicación web

El modelo de aplicación web, como muchos modelos de desarrollo de software, se basa en 3 niveles: Servicios de usuario, Servicios comerciales y Servicios de datos. Este modelo divide una aplicación en una red de consumidores y proveedores de servicios.

El nivel de servicio de usuario crea una puerta de enlace visual para que el consumidor interactúe con la aplicación. Esto puede variar desde HTML básico y DHTML hasta componentes COM complejos y applets de Java.

Los servicios de usuario luego toman la lógica y los procedimientos comerciales de los Servicios comerciales. Este nivel puede variar desde secuencias de comandos web en ASP / PHP / JSP hasta programación del lado del servidor como TCL, CORBA y PERL, que permite al usuario realizar acciones complejas a través de una interfaz web.

El nivel final es la capa de servicio de datos. Los servicios de datos almacenan, recuperan y actualizan información a un alto nivel. Las bases de datos, los sistemas de archivos y los medios grabables son ejemplos de dispositivos de almacenamiento y recuperación de datos. Para aplicaciones web, sin embargo, las bases de datos son más prácticas. Las bases de datos permiten a los desarrolladores almacenar, recuperar, agregar y actualizar información categórica de manera sistemática y organizada.

Elegir el proyecto correcto

Elegir los tipos correctos de proyectos para trabajar es una parte extremadamente importante del plan de desarrollo de aplicaciones web.

Evaluar sus recursos, habilidades técnicas y capacidades de publicación debe ser su primer objetivo. Teniendo en cuenta los 3 niveles, elabore una lista de todos los recursos disponibles que se pueden asignar categóricamente a cada nivel.

La siguiente consideración debería ser el costo. ¿Tiene un presupuesto para completar este proyecto? ¿Cuánto le costará diseñar, desarrollar y entregar un proyecto completo con bastante éxito? Estas son preguntas que deben responderse antes de firmar cualquier acuerdo o contrato.

Veamos un ejemplo. Una compañía llamada ABC necesita desarrollar una aplicación web que muestre información de ventas creada por diferentes agentes de ventas. Los datos se actualizan diariamente a través de un proceso completamente automatizado de los 3 niveles de servicio. El cliente le dice que todo este proyecto debe realizarse en el servidor ASP / SQL y que también debe alojar la aplicación.

Después de evaluar todos sus recursos, usted y su equipo llegan a la conclusión de que la empresa no puede realizar copias de seguridad de los datos a diario. Después de más discusiones, se da cuenta de que esta es una parte muy importante de la configuración de su cliente, y no debe arriesgarse a arriesgarse con el proyecto. Es muy probable que esté más preparado la próxima vez, cuando un proyecto similar aterrice en su escritorio, por lo que rechazará el trabajo y recomendará a otra persona que tenga la capacidad de hacerlo en este momento.

Las fases en un proyecto de aplicación web

El proceso de desarrollo de aplicaciones web tiene 4 fases:

  1. Visualizar la naturaleza y dirección del proyecto.
  2. Diseñando el plan
  3. Desarrollo
  4. Pruebas, soporte y estabilidad.

Veamos cada uno de estos con más detalle.

1. Visualizar la naturaleza y dirección del proyecto.

En esta fase, la administración y los desarrolladores asignados al proyecto se unen y establecen los objetivos que la solución debe alcanzar. Esto incluye reconocer las limitaciones que se colocan en el proyecto, la programación y el control de versiones de la aplicación. Al final de esta fase, debe haber una documentación clara sobre lo que la aplicación logrará.

2. Diseñando el plan

En esta fase, usted y su equipo deben determinar el “cómo” de la aplicación.

¿Qué lenguaje de script es el más apropiado, qué características deben incluirse y cuánto tiempo llevará? Estas son algunas de las preguntas que deben responderse a través de esta fase de planificación. Las tangentes principales en este punto son el plan del proyecto y la especificación funcional. El plan del proyecto determina un marco temporal de eventos y tareas, mientras que la especificación funcional describe en detalle cómo funcionará y fluirá la aplicación.

3. Desarrollo

Una vez que el plan del proyecto y la especificación funcional están listos, se establece una línea de base para que comience el trabajo de desarrollo. Los programadores o desarrolladores web comienzan a codificar, probar y publicar datos. Esta fase establece las variables de datos, entidades y procedimientos de codificación que se utilizarán durante el resto del proyecto. El equipo de desarrollo prepara un documento histórico que luego se entrega a la gerencia para su revisión.

4. Pruebas, soporte y estabilidad.

La fase de estabilidad del proyecto de la aplicación se centra principalmente en las pruebas y la eliminación de errores, discrepancias y problemas de red que de otro modo podrían hacer que la aplicación falle. Es aquí donde se establecen políticas y procedimientos para un sistema de apoyo exitoso.

Conociendo sus opciones y usándolas sabiamente

Bien, ahora que comprende la arquitectura y los procedimientos detrás del desarrollo de aplicaciones web, veamos qué opciones técnicas deberá tener en cuenta para el proceso de desarrollo en sí.

Servidores web de Windows

Microsoft ha creado una base de clientes leales en un factor importante: su software fácil de usar. Los servidores web de Windows NT / 2000 / XP son muy rápidos y fáciles de administrar. El hecho de que el sistema operativo sea un shell de Windows significa que los administradores y autores pueden permitir fácilmente que el servidor web interactúe con otras aplicaciones de software y hardware para transmitir y recibir datos a través de Internet. Los lenguajes de script populares del lado del servidor que se usan con los servidores de Windows son ASP / ASP. net, Java Server Pages y PHP.

Servidores web UNIX / Linux

UNIX ha sido conocido por su confiabilidad. Es un servidor web y sistema operativo potente y robusto. Unix es el servidor elegido para muchos sitios web a gran escala que necesitan sistemas de gestión de contenido o reciben un volumen de tráfico extremadamente alto. Los lenguajes de script populares del lado del servidor para UNIX son Java Server Pages, PERL, PHP y CORBA

Cada lenguaje de script tiene sus pros y sus contras. Como no estoy escribiendo un libro aquí, usaré el modelo ASP como mi lenguaje de ilustración. Cuando se trabaja con servidores Windows, hay varios parámetros importantes que el desarrollador necesita incluir en la ecuación, incluyendo seguridad, escalabilidad, velocidad y diseño de aplicaciones. A continuación, le ayudaré a formular un plan exitoso para lograr todo tipo de proyectos web.

Planificación para un proyecto de desarrollo web exitoso

Para minimizar drásticamente el riesgo de falla del proyecto, siempre he abordado mis proyectos de desarrollo de aplicaciones en la siguiente secuencia.

1. Identificar la lógica empresarial y las entidades.

Comience reuniendo información sobre todo lo que tiene. Si va a trabajar con bases de datos, comience enumerando cuántas entidades se utilizarán en la lógica de negocios. Por ejemplo, si su programa implementa datos de ventas, un ticket de venta sería una entidad.

Una vez que haya identificado todas sus entidades, establezca una directriz clara para sus relaciones. Esto se puede hacer a través de presentaciones, diagramas de flujo o incluso informes.

2. Crear una especificación funcional y un plan de proyecto

Esta parte, en mi opinión, es la parte más importante del proyecto. Las especificaciones funcionales (o especificaciones funcionales) son un mapa o plano de cómo desea que se vea y funcione una aplicación web en particular. La especificación detalla lo que hará el producto terminado, la interacción del usuario y su aspecto.

Una ventaja de escribir una especificación funcional es que agiliza el proceso de desarrollo. Elimina las discrepancias y las conjeturas del proceso de programación, porque el nivel de detalle que entra en el plan hace posible minimizar el malentendido que generalmente se asocia con los percances del proyecto. Vea ejemplos de especificaciones funcionales bien escritas en RayComm.com.

Una vez que finaliza la especificación funcional, se debe idear un plan de proyecto. Un plan de proyecto es un cronograma de tareas y eventos que tendrán lugar durante el proyecto. El gerente del proyecto o programa es normalmente la persona que crea un plan de proyecto, y su enfoque principal es detallar las notas de la tarea mientras puede acomodar la programación y la información de recursos. Puede descargar un archivo Excel de muestra para un plan de proyecto en Method123.com.

3. Ponga en juego el modelo de aplicación

Como se discutió anteriormente, el modelo de aplicación consta de 3 niveles: los niveles de servicio de usuario, comercial y de datos, cada uno de los cuales tiene un propósito sustancial.

Hablando en términos prácticos, siempre es mejor comenzar con el nivel de datos, porque ya ha identificado sus entidades y comprende sus relaciones. El nivel de datos puede ser una base de datos del servidor SQL, un archivo de texto o incluso el poderoso y robusto Oracle. Cree tablas, relaciones, trabajos y procedimientos según la plataforma que haya elegido. Si los datos son un almacén (es decir, los datos ya existen y no dependen de la interacción en tiempo real), asegúrese de que se puedan agregar datos nuevos y adicionales de forma segura y escalable.

Un consejo rápido: el uso de vistas en SQL Server / Oracle puede mejorar drásticamente la productividad y el rendimiento de su aplicación. Aumentan la velocidad porque son “consultas almacenadas” que no tienen una existencia física.

El nivel de servicios empresariales, en mi opinión, es el corazón de la aplicación. Implica la implementación de la lógica empresarial en el lenguaje de programación o scripting.

En esta etapa, asegúrese de haber configurado su entorno para pruebas y depuración. Siempre pruebe en al menos 2 instancias en su aplicación, después de todo, lo que puede funcionar perfectamente para usted, puede no funcionar tan bien en otras plataformas o máquinas. ASP, XML, PHP, JSP y CGI son algunos ejemplos de lenguajes de secuencias de comandos del lado del servidor utilizados en el nivel de servicio empresarial. Independientemente del idioma que elija, asegúrese de que sea capaz de manejar toda la lógica empresarial presentada en la especificación funcional.

El último es el nivel de usuario, que es absolutamente vital para los elementos interactivos y estratégicos de la aplicación. Proporciona al usuario una puerta de entrada visual al servicio comercial mediante la colocación de imágenes, iconos, gráficos y elementos de diseño en áreas estratégicas de interés, más comúnmente, basadas en investigaciones de gestión. Si va a desarrollar el nivel de usuario usted mismo, asegúrese de haber estudiado su competencia. Lo último que necesita es que su aplicación se vea exactamente igual a la de otra persona.

4. Desarrollar un esquema de apoyo

Ser capaz de soportar y estabilizar su aplicación es muy importante. Defina una llamada de procedimiento para casos de falla, percances o incluso tiempo de inactividad. Ofrezca a sus clientes la posibilidad de contactarlo en caso de una emergencia relacionada con el programa.