UNIVERSIDAD DE BELGRANO
PROGRAMACIÓN 3
Profesor:
Programa de la materia:
Objetivo: convertirse en desarrolladores de soluciones web,
conociendo cada una de las tecnologías que complementan el desarrollo de aplicaciones o portales web, tanto estáticos como dinámicos.
Unidad 1: Ecosistema web.
Unidad 2: Desarrollo Frontend.
Bibliografía de la materia:
AUTOR TÍTULO EDITORIAL EDICIÓN Fernando Luna Programador
Web Full Stack Users 1ra Edición (Español) 2017 Juan Gauchat El gran libro de
HTML5, CSS3 & Javascript
MARCOMBO 2014
Deitel & Deitel Java como
programar PearsonPrentice Hall
9na Edición
(Español) 2012
Pablo Pandolfo Apuntes de la
materia Sitio de la materia 2020
Ecosistema Web
Desarrollo web.
Perfil de un programador full stack.
Tecnologías web / Lenguajes de programación. Editores de código.
Navegador web.
Funcionamiento de la web.
Ecosistema Web
Tres preguntas sobre el desarrollo web:
1. ¿Por qué el desarrollo web es el futuro? 2. ¿Qué hace un programador full stack?
3. ¿Cómo nos orientamos entre tantos lenguajes y
Ecosistema Web
1. ¿Por qué el desarrollo web es el futuro?
Desarrollo de software centralizado en Mobile y Web. Ventajas:
Es multiplataforma.
No se limita a capacidades de hardware.
Es mas flexible a cuanto actualizaciones.
Agrupa múltiples tecnologías de desarrollo.
Ecosistema Web
2. ¿Qué hace un programador full stack?
Desarrollo frontend: partes que vemos y con las que
interactuamos. Combinación de HTML, CSS y JavaScript.
Desarrollo backend: base de datos, servicios web.
Conceptos técnicos de servidores, redes, modelado de
Ecosistema Web
3. ¿Cómo nos orientamos entre tantos lenguajes y tecnologías? Lenguajes de marcado: HTML, CSS, XML.
Bases de datos locales o remotas: MySQL, SQL Server, Oracle,
MongoDB, WebSQL, LocalStorage.
Lenguajes de intercambio de datos: XML, JSoN Lenguajes de backend: Java, PHP, C#, Groovy Lenguajes de frontend: JavaScript, PHP
Conocimiento de servidores web: IIS, Apache, nginx
Sistemas operativos del servidor: Windows Server, Linux, *nix
Lenguajes de programación alternativos: Python, Ruby, CGI
Ecosistema Web
Navegador web:
Cada navegador web cuenta con un motor de renderizado. Renderizado es un proceso que ejecutan los motores de los
navegadores web, que al cargar un sitio web, leen en tiempo real el código de los tags HTML, CSS y JavaScript, para poder transformarlos en los componentes visuales y textos formateados que conforman una web.
Cada motor es particular, hay que lograr la compatibilidad necesaria para respetar al menos el desempeño de nuestras web en los navegadores más populares del momento:
Ecosistema Web
Nuestra primera línea de código:
1. Abrir editor de texto (Ejemplo, Bloc de Notas, Vim, etc.) 2. Guardar el archivo (Ejemplo, index.html)
3. Escribir el código.
4. Abrir sesión o pestana de nuestro navegador web.
Ecosistema Web
Ecosistema Web
¿Cómo funcionan los tags?
Los tags son la base necesaria de las páginas HTML. <html></html>
<head></head> <title></title>
<body></body>
<h1></h1>
Ecosistema Web
¿Cómo funcionan los navegadores web?
1. Abrir el Navegador.
2. En la barra de direcciones del navegador se escribe una URL o se clickea un link.
3. El navegador envía una solicitud HTTP al servidor.
4. El servidor busca la página HTML y reenvía una respuesta HTTP.
5. El navegador analiza el documento HTML. En caso de requerir recursos adicionales, como imágenes, documentos, plugins, etc., vuelve a hacer una solicitud al servidor por cada recurso.
6. El servidor localiza los archivos adicionales solicitados y los envía al navegador. Si la web ha sido visitada anteriormente utiliza la memoria caché y agiliza la carga de la páginas, sin necesidad de recurrir al servidor.
Ecosistema Web
URL:
Universal Resource Locator.
Se ocupa de enlazar recursos, que se mueven a través de
direcciones IP o nombres de dominios.
Se ocupa de “volver amigable” a través de una dirección web,
Ecosistema Web
Servidor web:
Es una aplicación que procesa el contenido, usualmente
páginas web, del lado del servidor.
Realiza conexiones uni/bidireccionales de forma sincrónica o
asincrónica con la/s máquina/s cliente, entregando o recibiendo respuestas.
Ecosistema Web
Páginas html:
Alojan el contenido general que compone cada texto.
Están armadas con contenido HTML, CSS, JavaScript,
imágenes, videos, etc. Todo este contenido es armado de forma óptima y estática, para que pueda ser visualizado a través de los navegadores.
Ecosistema Web
Recursos adicionales:
Contenido adicional que complementa un sitio web, como los
videos, audio, imágenes, documentos, PDF, aplicaciones instalables, plugins, etc.
En muchos casos estos contenidos pueden ser vinculados
Ecosistema Web
Hipervínculos:
Es la dirección física de un archivo o recurso, dentro del
mismo servidor web o hacia un servidor web externo.
Nos permiten navegar el contenido web, iniciar un nuevo
mensaje de correo electrónico, acceder a la lectura de contenido PDF, escuchar un archivo MP3, o visualizar un video mediante streaming.
Ecosistema Web
Mapa de tecnologías
TECNOLOGÍA CARACTERISTICAS
HTML • Lenguaje de marcado e hipertexto (Hyper Text Markup Language). • Estructura de todos los desarrollos web.
• Conjuga el diseño de texto + imágenes de una página web.
CSS • Hojas de estilo en cascada (Cascading Style Sheets).
• Estructuran y presentan los documentos creados con el HTML, de manera gráfica y visual.
• Establece arte gráfico a través de código, y obtiene así una web liviana en recursos.
JavaScript • Sintaxis similar al lenguaje C.
• Lenguaje de programación interpretado.
• Permite combinar HTML + CSS + programación, para dotar de
Ecosistema Web
Lenguajes de programación
LENGUAJ
E CARACTERISTICAS
PHP • Pre Hypertext Processor.
• Aporta facilidad de manejo de HTML, CSS, JavaScript, al poder embeber estos dentro de su propia sintaxis.
Java • Se utiliza mucho en el desarrollo de soluciones corporativas que requieren de estabilidad y seguridad (home-banking, CRM, ERP, etc.)
.NET • Tecnología que se adaptó y hoy cuenta con un fuerte background y soporte orientado a la web.
Ecosistema Web
Caja de herramientas:
Editores de código desktop. Editores de código web.
Servidor web local. Editores de imágenes.
Ecosistema Web
Editores de código desktop:
NOMBRE URL PLATAFORM
A LICENCIA
Dreamweaver www.adobe.com Win, iOS PAGO
Visual Studio
Express www.visualstudio.com/vs/visual-studio-express/ Win, iOS LIBRE
Brackets www.brackets.io Win, iOS,
Linux LIBRE
Visual Studio
Code code.visualstudio.com/ Win, iOS, Linux LIBRE
Netbeans IDE netbeans.org/features/html5/index.html Win, iOS,
Linux LIBRE
Aptana Studio http://www.aptana.org/products/studio3 Win, iOS,
Linux LIBRE
Notepad++ http://notepad-plus-plus.org/ Win LIBRE
Bluegriffon http://bluegriffon.org/ Win, iOS,
Linux AMBAS
Sublime Text www.sublimetext.com Win, iOS,
Ecosistema Web
Editores de código web:
NOMBRE URL
Codepen www.codepen.io
CodeAnywhere https://codeanywhere.com/
Ecosistema Web
Servidor web local:
NOMBRE URL PLATAFORM
A Internet Information Server https://www.microsoft.com/es-es/download/ Win TinyWeb
Server https://www.ritlabs.com/en/products/tinyweb/ Win, iOS, Linux
MiniWeb HTTP
Server
https://sourceforge.net/projects/miniweb/ Win, Linux
Apache HTTP Server
Ecosistema Web
Editor de imágenes:
NOMBRE
Paint.NET Gimp
Ecosistema Web
Navegadores web:
NOMBRE URL PLATAFORM
A
Microsoft
Edge Preinstalado en el SO Windows 10. Win
Mozilla Firefox https://www.mozilla.org/es-AR/# Win, iOS, Linux
Chrome https://www.google.com/chrome/ Win, iOS, Linux
Apple Safari Preinstalado en Mac OS
Buenas prácticas
Análisis funcional.
Planificación efectiva de un relevamiento. Elaborar la documentación.
Metodologías de prototipado. Importancia del testing.
Automatización de tests.
Metodologías de trabajo.
Escenarios de trabajo.
Recursos web para freelancers
Buenas prácticas
Análisis funcional:
Papel abstracto de una persona que comprende la función de
un usuario final como así también la de un desarrollador de software.
La planificación y documentación de las necesidades
informáticas de una empresa puedan ser trazadas de manera lógica, absorbiendo los conocimientos operativos del usuario final, pero también centrándose en la complejidad del software y la visión de las etapas y los tiempos de desarrollo que vive un programador.
Buenas prácticas
Análisis funcional:
El analista funcional requiere estar planificando de manera
constante reuniones con jefes, auditores, lideres y usuarios finales, para poder delinear de forma efectiva la manera de cómo se encarará el desarrollo de una solución de software.
Habilidades blandas (conocimiento social, lado emocional, hemisferio derecho del cerebro): se vuelcan mas a la comunicación y al desenvolvimiento de las personas en entornos conformados por pares. Además de la responsabilidad, la honestidad y el compromiso.
Buenas prácticas
Análisis funcional:
El rol del analista técnico-funcional (también conocido como
Buenas prácticas
Reglas de negocio:
Son las políticas y las normativas que definen las operaciones
y limitan las tareas dentro de una organización.
Resultan de vital importancia para realizar, de manera
efectiva, una tarea o una obligación laboral.
Se dividen en explicitas y tácitas.
Buenas prácticas
Planificación efectiva de un relevamiento. Etapas:
1. Reuniones con el cliente (presencial, videoconferencias o
llamadas telefónicas) para conocer la necesidad del cliente para desarrollar un módulo o una aplicación nueva.
2. Conocer en detalle la operativa actual.
3. Investigación de mercado sobre diversas funciones.
4. Mirar soluciones resueltas en otras aplicaciones.
5. Realización de escenarios de trabajo.
Buenas prácticas
Elaborar la documentación:
Método: user stories o historias de usuario.
Ayudan a redactar la necesidad de un cliente y, a partir de
esto, comenzar a delinear la solución que se requiere.
Son parte de metodologías de trabajo agiles (scrum, XP, etc) Son el camino más coloquial hacia el desarrollo de un
Buenas prácticas
Elaborar la documentación:
Representación mediante diagramas de
flujo.
Son una de las mejores
representaciones gráficas, en lenguaje natural, útiles tanto para el programador como para el usuario final.
Buenas prácticas
Metodologías de prototipado:
Mediante el prototipado de aplicaciones es posible expresar
los objetivos generales que cumplimentará el software o el módulo del software solicitado por el cliente.
Se le ofrece al cliente una experiencia próxima a la necesidad
comprendida o recopilada a través de los pasos de relevamiento y diagramación de la solución de software.
Buenas prácticas
La importancia del testing:
Es la fase final del desarrollo de aplicaciones.
Permite definir la fiabilidad y la robustez que la aplicación
integra, y también los errores, conocidos como bugs, que esta tiene.
La finalidad es pulir al máximo el control de errores, para entregar un producto lo mas cercano a la perfección.
Buenas prácticas
La importancia del testing:
La usabilidad y la experiencia de usuario son factores clave
en el momento de testear una aplicación.
Ejemplos de usabilidad:
La fácil lectura de los textos en pantalla.
La disposición de los componentes que conforman la pantalla.
Buenas prácticas
Métricas:
Las métricas en el testing permiten devolver decenas de
resultados útiles para pulir diferentes factores que involucran el diseño o la creación de aplicaciones. Ejemplos:
efectividad en las pruebas, defectos críticos,
tiempo promedio de resolución de defectos,
casos ejecutados y redactados,
defectos reportados,
sobreesfuerzo,
Buenas prácticas
Automatización de tests:
Pone entre el tester y la aplicación de software un programa
informático diseñado para controlar la ejecución de pruebas, y comparar de manera más rápida los resultados obtenidos y los resultados esperados.
Generar reportes con las pruebas exitosas y fallidas.
Guarda las métricas necesarias.
Buenas prácticas
Metodologías de trabajo:
Antiguo modelo de cascada (waterfall): separaba en tres
etapas básicas todo el proceso de construcción de aplicaciones de software en un flujo de trabajo irreversible. Complicaciones:
Cada departamento interpreta los requerimientos asociados a su manera.
Comunicación casi nula entre departamentos.
No permite hacer cambios de último momento, generando atascos y ajustes innecesarios en una etapa avanzada.
SCRUM: permite actividades en equipo a través de procesos de interacciones.
Diseño
Desarroll o
Buenas prácticas
Buenas prácticas
Buenas prácticas
Escenarios de trabajo:
Modalidad freelance:
Empleado independiente.
Seguimiento y vínculos (propia cartera de clientes) Redes de contacto.
Vidrieras digitales (Sitio web propio, LinkedIN, redes sociales, etc.)
Buenas prácticas
Escenarios de trabajo:
Modalidad onsite: Empleado fijo.
CV, resume, hoja de vida, etc.
Sectores con mayor demanda: programadores, analista QA (tester), analista funcional.
Senioritys: Traineé (5%), Jr (40%), SSr (35%) y Sr (20%).