Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabaja del lado Cliente, en el navegador, en el lado de lo que se ve. Principalmente se ocupa de los componentes externos del sitio
web o de la aplicación web. Como consecuencia, deben dominar obligatoriamente:
HTML: HyperText Markup Language, es el componente estructural clave de todas las webs de internet. Sin él las páginas
web no pueden existir.
CSS: Cascading Style Sheets, es lo que le proporciona estilo a HTML.
JavaScript: Usando solo HTML y CSS tus webs serían páginas estáticas, con JS tus páginas web son interactivas.
En general se asocia a los desarrolladores front-end con los principios de diseño y de estructura de páginas. Sin embargo, un
desarrollador web va más allá que un diseñador. Obviamente tiene que tener en cuenta la usabilidad y la legibilidad de la página o
de la aplicación web, pero como buen programador es consciente de que su trabajo se ejecutará en el lado Cliente, en la mayoría de
los casos, en el navegador. Y la información no se almacena en el lado Cliente. De la misma manera existen frameworks que hacen
el trabajo más fácil y la elección va dependiendo del desarrollador, a continuación se muestra una tabla con algunos de ellos.
En 1995 existía el HTML 2.0 y que más tarde aparecería CSS en el cual ya en aquel momento teníamos un buen HTML y un poderoso
CSS.En 1997 comenzó a verse navegadores con interacciones con HTML 3.0, CSS y un Javascript muy básico.Hasta el 2006 se hacía
páginas con frames, relojes Java, gif, páginas con tabla, páginas con Flash, el cual no duró mucho y pasó al olvido.En el 2006 llegó
JQuery presentado en New York el cual era un selector muy básico, aquí empezó la revolución con la llegada de AJAX, se comenzó
a incentivar a los desarrolladores la escritura de plugins, en este momento ya estaba HTML5, CSS3 y JQuery el cual era todo un
boom.Desde ese momento aparecen los patrones modulares, para manejar en manera asíncrona y cargar a demanda Javascript y
Node.js el cual ofrece npm para manejar los paquetes de dependencias y ordenarlas.
Velocidad de acceso
Un usuario puede esperar un aproximado en 4 segundos en la carga y renderizado de la página ya que si pasa más de ello el usuario
tiende a cerrar la página u optar por buscar otra página, por ello tenemos un ejemplo; Amazon se preocupa mucho en ello porque es
un punto en contra ya que la experiencia de usuario no es lo más óptimo. Existe una metodología de trabajo llamada diseño interactivo
para hacer prototipos el cual hace mejorar tu producto y dándole una facilidad de carga.
En la actualidad podemos optar por una aplicación isomórfica el cual tiene el compromiso de ser ejecutable en todo los navegadores
y dispositivos que se puede encontrar.Render es una librería para renderizado hace que navegadores muestren todos los elementos de
manera más consistente y de acuerdo con las normas modernas. Se dirige precisamente sólo los estilos que necesitan normalización.
Procesos de un proyecto
Para poder realizar un proyecto se debería cumplir unas etapas, existen un sinfín de formas de realizar un proceso, aquí les
mecionaremos y detallaremos algunos pasos a seguir:
Crear: Esta es la primera etapa y el más importante, ver que tecnología debemos usar, hacer las bases del proyecto, saber
escoger qué herramientas son confiables.
Desarrollar: En esta etapa es donde se comenzaría a desarrollar el proyecto creado poniendo en práctica las herramientas y
estrategias propuestas.
Probar: Esta etapa es la más minuciosa ya que deberías testear el desarrollo ya hecho y ver todas las vulnerabilidades que
existe.
Construir: Aquí mostraremos los builds de la aplicación y utilización de webpack u otro task runner.
Desplegar: En esta última etapa se comenzará a hacer commits donde llega al servidor, se hacen triggers y comenzará a correr
tu aplicación.
¿Qué son los estandares Web?
Son lenguajes Web, protocolos y tecnologías inter-operativas e internacionales creadas con la finalidad de guiar la Web hacia
su máximo potencial a través del desarrollo de protocolos y pautas estandarizadas.Con el objetivo de que la Web alcance su
máximo potencial, las tecnologías Web más destacadas deben ser compatibles entre sí y permitir que cualquier hardware y
software para acceder a la Web funcione conjuntamente.El W3C hace referencia a este objetivo denominándolo
"interoperabilidad Web".
¿Porque necesito estándares Web?
¿Ha visitado alguna vez una página Web y no podía ver correctamente los contenidos?
¿Utiliza un navegador de Internet como puede ser el caso de Mozilla Firefox, Opera o Safari diferente al mayoritario ( Internet
Explorer ) y está cansado de ver que los elementos de la página web no se ven o no funcionan correctamente?
¿Tiene problemas de visión y no puede cambiar el tamaño de la fuente porque las páginas se desestructuran o se ven mal?
Pues bien, si esto le ha pasado alguna vez y era bastante molesto piense ahora que es un visitante de su propia página Web ...Lo
más lógico es que acabe de perder un potencial cliente sin ni siquiera haberle dado la posibilidad de ofrecerle sus servicios o
artículos y que además posiblemente no vuelva a visitar su página Web.
¿Qué es un Estándar?
Un estándar es un conjunto de reglas normalizadas que describen los requisitos que deben ser cumplidos por un producto, proceso
o servicio, con el objetivo de establecer un mecanismo base para permitir que distintos elementos hardware o software que lo
utilicen, sean compatibles entre sí.El W3C, organización independiente y neutral, desarrolla estándares relacionados con la Web
también conocidos como Recomendaciones, que sirven como referencia para construir una Web accesible, interoperable y eficiente,
en la que se puedan desarrollar aplicaciones cada vez más robustas.
¿Qué es el W3C?
El Consorcio World Wide Web (W3C) es una comunidad internacional donde las organizaciones Miembro, personal a tiempo
completo y el público en general trabajan conjuntamente para desarrollar estándares Web.Liderado por el inventor de la Web Tim
Berners-Lee y el Director Ejecutivo (CEO) Jeffrey Jaffe, la misión del W3C es guiar la Web hacia su máximo potencial.
Back-end.
El desarrollador back-end trabaja del lado Servidor, detrás del escenario, permitiendo con su trabajo que el usuario disfrute de su
experiencia. Sin él, el desarrollo llevado a cabo por su anterior compañero no se sostendría.
Para ser programador del lado Servidor, son numerosos los lenguajes y frameworks entre los que elegir, todo dependerá de la
empresa en la que caigas. A día de hoy, los más comunes son:
NET: es la plataforma de desarrollo web de Microsoft. Muy utilizada en las empresas. Tiene las variantes Web Forms y
MVC.
PHP: por ejemplo, el famoso gestor de contenidos WordPress usa por detrás PHP. Laravel es uno de los frameworksusados
con este lenguaje.
Ruby: junto con su frameworkRuby on rails.
Python: fácil de aprender. Usado a menudo con Django como framework
js: se está haciendo cada vez más popular debido a que usa el mismo lenguaje que en el lado cliente: JavaScript.
Sin embargo, no es suficiente con dominar un lenguaje y un framework. Toda aplicación web debe almacenar datos de alguna
manera. Por lo tanto, un desarrollador back-end también debe estar familiarizado con las bases de datos. Entre las más comunes
destacan:
SQL Server
MySQL
Oracle
PostgreSQL
MongoDB, que es un almacén de datos no-relacional o NoSQL.
Un servidor web o servidor HTTP es un programa informático que procesa una aplicación del lado delservidor, realizando
conexiones bidireccionales o unidireccionales y síncronas o asíncronas con el cliente y generando o cediendo una respuesta en
cualquier lenguaje o Aplicación del lado del cliente.
¿Qué es un servicio web?
El World Wide Web Consortium (W3C) define un servicio web como un sistema de software designado para dar soporte a la
interacción de máquina a máquina interoperativa a través de una red.
Un servicio web realiza una tarea específica o un conjunto de tareas, y se describe mediante una descripción de servicio en una
notación XML estándar llamada WSDL (Web Services Description Language). La descripción de servicio proporciona todos los
detalles necesarios para interactuar con el servicio, incluidos los formatos de mensaje (que detallan las operaciones), los protocolos
de transporte y la ubicación.
Otros sistemas utilizan mensajes SOAP para interactuar con el servicio web, normalmente utilizando HTTP con una serialización
XML conjuntamente con otros estándares relacionados con la web.
La interfaz WSDL oculta los detalles de cómo se implementa el servicio, y el servicio se puede utilizar independientemente de la
plataforma de hardware o software en la que se implementa e independientemente del lenguaje de programación en el que está
escrito.
Las aplicaciones basadas en servicios web son implementaciones en todas las tecnologías, con acoplamientos flexibles y orientadas
a componentes. Los servicios web se pueden utilizar individualmente o junto con otros servicios web, para llevar a cabo una
agregación completa o una transacción empresarial.
Modelo Vista Controlador (MVC) es un estilo de arquitectura de software que separa los datos de una aplicación, la interfaz de
usuario, y la lógica de control en tres componentes distintos.
Se trata de un modelo muy maduro y que ha demostrado su validez a lo largo de los años en todo tipo de aplicaciones, y sobre
multitud de lenguajes y plataformas de desarrollo.
El Modelo que contiene una representación de los datos que maneja el sistema, su lógica de negocio, y sus mecanismos
de persistencia.
La Vista, o interfaz de usuario, que compone la información que se envía al cliente y los mecanismos interacción con
éste.
El Controlador, que actúa como intermediario entre el Modelo y la Vista, gestionando el flujo de información entre ellos
y las transformaciones para adaptar los datos a las necesidades de cada uno.
El modelo es el responsable de:
Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelo sea independiente del sistema de
almacenamiento.
Define las reglas de negocio (la funcionalidad del sistema). Un ejemplo de regla puede ser: "Si la mercancía pedida no
está en el almacén, consultar el tiempo de entrega estándar del proveedor".
Lleva un registro de las vistas y controladores del sistema.
Si estamos ante un modelo activo, notificará a las vistas los cambios que en los datos pueda producir un agente externo
(por ejemplo, un fichero por lotes que actualiza los datos, un temporizador que desencadena una inserción, etc.).
Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.).
Contiene reglas de gestión de eventos, del tipo "SI Evento Z, entonces Acción W". Estas acciones pueden suponer
peticiones al modelo o a las vistas. Una de estas peticiones a las vistas puede ser una llamada al método "Actualizar()".
Una petición al modelo puede ser "Obtener_tiempo_de_entrega ( nueva_orden_de_venta )".
REQUEST
En inglés, request significa pedir, solicitar. En efecto, la acción de escribir una dirección cualquiera en la línea de URL de tu
navegador, se traduce en solicitar un determinado fichero a un servidor, o dicho en la jerga técnica, se le hace un request al servidor.
El protocolo que utiliza el navegador (por defecto salvo que se indique otro, como el FTP) para dialogar con un servidor web es el
llamado HTTP, que como habrás visto figura al principio de todas las direcciones web. No es necesario escribir el protocolo en los
navegadores modernos, simplemente escribimos la dirección de la página solicitada, y el navegador añade delante de la misma su
protocolo por defecto. Por ejemplo, si escribes:
El objeto Request permite el acceso a toda la información que pasa desde el navegador del cliente al servidor. Al recibir esta
información, es repartida y almacenada entre cinco colecciones. Cada colección es similar en estructura a una tabla de datos (también
llamada matriz de datos o array). Los datos, una vez cargados, pueden ser accedidos individualmente en cada colección a través de
una única clave asignada a cada item.
Todas las variables pueden ser accedidas directamente mediante una llamada del tipo Request(variable) sin mencionar el nombre
de la colección. En este caso, el servidor web busca entre todas las colecciones la clave pedida (variable), buscando por este orden:
QueryString, Form, Cookies, ClientCertificate y ServerVariables que son las cinco colecciones que tiene el objeto.
SERIALIZACIONES
En ciencias de la computación, la serialización (o marshalling en inglés) consiste en un proceso de codificación de un objeto en un
medio de almacenamiento (como puede ser un archivo, o un buffer de memoria) con el fin de transmitirlo a través de una conexión
en red como una serie de bytes o en un formato humanamente más legible como XML o JSON, entre otros. La serie de bytes o el
formato pueden ser usados para crear un nuevo objeto que es idéntico en todo al original, incluido su estado interno (por tanto, el
nuevo objeto es un clon del original). La serialización es un mecanismo ampliamente usado para transportar objetos a través de una
red, para hacer persistente un objeto en un archivo o base de datos, o para distribuir objetos idénticos a varias aplicaciones o
localizaciones.
Serialización tiene una serie de ventajas:
Un método de persistencia de objetos que es más conveniente que escribir sus propiedades a un archivo de texto en disco.
Un método de emisión de llamadas a procedimiento remoto, por ejemplo, SOAP.
Un método para la distribución de objetos, especialmente en los componentes software, tales como COM, CORBA, etc.
Un método para detectar cambios en variables en el tiempo.
Response (respuesta) es posiblemente el objeto más utilizado de todos, ya que sirve para presentar en la pantalla del navegador
del cliente el resultado de cualquier código que hayamos escrito.
NoSQL vs SQL
Está más adaptado su uso y los perfiles que las conocen son mayoritarios y más baratos.
Debido al largo tiempo que llevan en el mercado, estas herramientas tienen un mayor soporte y mejores suites de productos
y add-ons para gestionar estas bases de datos.
La atomicidad de las operaciones en la base de datos. Esto es, que en estas bases de datos o se hace la operación entera o no
se hace utilizando la famosa técnica del rollback.
Los datos deben cumplir requisitos de integridad tanto en tipo de dato como en compatibilidad.
La atomicidad de las operaciones juega un papel crucial en el rendimiento de las bases de datos.
Escalabilidad, que aunque probada en muchos entornos productivos suele, por norma, ser inferior a las bases de datos
NoSQL.
No todas las bases de datos NoSQL contemplan la atomicidad de las instrucciones y la integridad de los datos. Soportan lo
que se llama consistencia eventual.
Problemas de compatibilidad entre instrucciones SQL. Las nuevas bases de datos utilizan sus propias características en el
lenguaje de consulta y no son 100% compatibles con el SQL de las bases de datos relacionales. El soporte a problemas con
las queries de trabajo en una base de datos NoSQL es más complicado.
Falta de estandarización. Hay muchas bases de datos NoSQL y aún no hay un estándar como sí lo hay en las bases de datos
relacionales. Se presume un futuro incierto en estas bases de datos.
Soporte multiplataforma. Aún quedan muchas mejoras en algunos sistemas para que soporten sistemas operativos que no
sean Linux.
Suelen tener herramientas de administración no muy usables o se accede por consola.
Cuando los datos deben ser consistentes sin dar posibilidad al error utilizar una base de datos relacional, SQL.
Cuando nuestro presupuesto no se puede permitir grandes máquinas y debe destinarse a máquinas de menor rendimiento,
NoSQL.
Cuando las estructuras de datos que manejamos son variables, NoSQL.
Análisis de grandes cantidades de datos en modo lectura, NoSQL.
Captura y procesado de eventos, NoSQL.
Tiendas online con motores de inteligencia complejos, NoSQL.