Tendencias de tecnología de desarrollo web 2019

Introduccion


La transformación digital cada año cubre más y más esferas diferentes de la vida y los negocios. Si una empresa quiere ser competitiva, los sitios de información regulares ya no son suficientes, se necesitan aplicaciones móviles y web que no solo brinden información a los usuarios, sino que también le permitan realizar algún tipo de función: recibir o pedir bienes y servicios, proporcionar herramientas.



Entonces, por ejemplo, no es suficiente que los bancos modernos tengan un sitio web con información, necesita tener herramientas en línea para sus clientes, una cuenta personal donde el usuario pueda administrar cuentas, inversiones y préstamos. Incluso las pequeñas empresas necesitan herramientas convenientes, como concertar una cita con un médico o peluquero, reservar una mesa en un restaurante o una sala de juegos para niños para un cumpleaños, para aumentar la conversión.

Y los propios propietarios deben recibir información oportuna de forma conveniente según el estado de su empresa, por ejemplo, la recopilación de datos estadísticos y análisis para diferentes departamentos de producción, o la productividad de los departamentos. A menudo, cada uno de los departamentos recopila estos datos a su manera, e incluso puede usar diferentes herramientas y el propietario necesita dedicar mucho tiempo personal para resolverlo, indirecta o directamente, puede afectar la eficiencia de la empresa y, en última instancia, sus ganancias. La transformación digital y el desarrollo de aplicaciones web o móviles también ayudarán aquí.

Las tecnologías no se detienen y evolucionan constantemente, y lo que usaron hace varios años puede no ser relevante hoy, o lo que no podían hacer hace unos años se ha convertido en realidad. Hay herramientas más modernas que ayudan a crear aplicaciones web y móviles más rápido y mejor. Basado en observaciones personales y experiencia, quiero compartir mi visión sobre cuál de las tecnologías y herramientas tendrá demanda en el futuro cercano y por qué debe prestarles atención al crear una aplicación web moderna.

Aplicación de una sola página


Definamos una pequeña terminología. Single Page Application (SPA) es una aplicación web cuyos componentes se cargan una vez en una página y el contenido se carga según sea necesario. Y cuando se cambia entre secciones de la aplicación, la página no se vuelve a cargar por completo, solo se cargan los datos y se muestran los datos necesarios.

Las aplicaciones de una sola página superan a las aplicaciones web clásicas en velocidad y facilidad de uso. Con SPA, puede lograr el efecto del sitio web como una aplicación de escritorio sin reinicios y demoras significativas.

Si hace varios años las aplicaciones de una sola página prácticamente no soportaban la optimización de motores de búsqueda y se usaban principalmente para crear paneles personales y un panel de administración, hoy es mucho más fácil crear una aplicación de una sola página con soporte completo para la optimización de motores de búsqueda (SEO). Al usar aplicaciones de una sola página con representación de servidor, hoy este problema ha desaparecido por completo. En otras palabras, esta es la misma aplicación de una página, pero en la primera solicitud, el servidor genera no solo datos, sino que crea una página lista para mostrar HTML y los motores de búsqueda obtienen páginas listas con toda la metainformación y el marcado semántico.

Con el desarrollo de herramientas para crear aplicaciones web del lado del cliente, el desarrollo y la transición a aplicaciones de una sola página en este y en los años siguientes solo crecerán. Si tiene una aplicación antigua que está desactualizada y se ejecuta lentamente, e incluso con una recarga de página completa al cambiar de sección, entonces este año puede actualizar de forma segura a una aplicación rápida de una página; ahora es un buen momento, las tecnologías ya le permiten hacerlo de manera bastante rápida y eficiente.

Tener un sitio web moderno y rápido es muy bueno, pero quiero decirte honestamente: no todas las aplicaciones se pueden convertir fácilmente a una sola página, ¡y la transición puede ser costosa! Por lo tanto, debe comprender quién necesita esta transición y por qué.

Para ayudarlo a comprender, en la tabla a continuación daré algunos ejemplos cuando el desarrollo o la transición a SPA sea apropiado y esté justificado, y cuando no.
Para
Si desea crear una aplicación moderna y rápida y desea utilizar no solo la versión web, sino también móvil o incluso de escritorio, y todos los procesos y cálculos se realizan en un servidor remoto o en la nube. Sí, y para que todos los clientes tengan una interfaz de interacción y no haya necesidad de realizar cada cambio en el código del servidor al agregar un nuevo cliente.

Por ejemplo: redes sociales, agregadores, plataformas SaaS (software como servicio en la nube), mercados
Si tiene una tienda o un servicio web, sabe que es lento y la gente se va, quiere hacerlo más rápido, comprende el valor de los clientes y está listo para pagar un millón de rublos por una actualización.
Tiene una aplicación móvil que usa la API del sitio, mientras que el sitio es lento y con cargas completas de contenido al cambiar de página
CONTRA
Si su público objetivo no utiliza navegadores y dispositivos modernos.

Por ejemplo: áreas corporativas específicas, como el desarrollo de sistemas internos para bancos, instituciones médicas y educación.
La actividad principal que realiza fuera de línea y no está listo para proporcionar ningún servicio en línea, y solo necesita atraer clientes.
Si tiene una tienda en línea o un servicio web que se vende tan bien, no verá una salida de clientes y quejas
Si tiene una aplicación que no se puede adaptar para SPA y solo necesita reescribir todo desde cero y usar otras tecnologías, y no está listo para gastar varios millones en ella.

Por ejemplo: hay un sitio en caja o algún tipo de antiguo código monolítico antiguo.

Aplicaciones web progresivas


Las aplicaciones web progresivas son producto de la evolución conjunta de una aplicación nativa y un sitio web. De hecho, esta es una aplicación web que se ve y se comporta como una aplicación nativa real, puede recibir notificaciones push, trabajar sin conexión, etc. En este caso, el usuario no necesita descargar la aplicación desde la AppStore o Google Play, sino simplemente guardarla en el escritorio.

Como enfoque tecnológico o de desarrollo, PWA se ha desarrollado desde 2015, y recientemente también ha ganado una enorme popularidad en el campo del comercio electrónico.

Algunos ejemplos de la vida real:

  • El año pasado, el Best Western River North Hotel, después de lanzar un nuevo sitio web habilitado para PWA, pudo aumentar los ingresos en un 300%;
  • Árabe Avito OpenSooq.com después de crear soporte para PWA en su sitio web pudo aumentar en un 25% el tiempo que lleva visitar el sitio y en un 260% el número de clientes potenciales;
  • El conocido servicio de citas Tinder pudo reducir la velocidad de descarga de 11.91s a 4.69s al desarrollar PWA, además, la aplicación pesa 90% menos que su contraparte nativa de Android.

El hecho de que uno de los motores más grandes para crear proyectos de comercio electrónico Magento en 2018 lanzó una versión de desarrollo inicial de PWA Studio también indica que vale la pena prestar atención a esta tecnología. La plataforma permite "fuera de la caja" crear una interfaz basada en React para sus soluciones de comercio electrónico con soporte PWA.

Consejos para aquellos que ya tienen un proyecto de Internet o simplemente la idea de un nuevo servicio con soporte para dispositivos móviles: no se apresuren a escribir una aplicación nativa completa, sino que primero vean la tecnología PWA. Quizás esta sea la mejor solución de relación calidad / precio para su producto.

Un poco de practica. Para crear una aplicación de noticias móvil nativa simple, siempre que ya haya un servidor REST listo, se necesitan aproximadamente 200-300 horas hombre para cada plataforma. Con un precio de mercado promedio por hora de desarrollo de 1,500-2,000 rublos por hora, una aplicación puede costar aproximadamente 1 millón de rublos. Si desarrolla una aplicación web con soporte completo para PWA: notificaciones push, modo fuera de línea y otras ventajas, entonces el desarrollo tomará entre 200 y 300 horas hombre, pero el producto estará disponible de inmediato en todas las plataformas. Es decir, ahorrar aproximadamente 2 veces, sin mencionar el hecho de que no tiene que pagar cuotas para ser colocado en las tiendas de aplicaciones.

Sin servidor


Este es otro enfoque moderno para el desarrollo. Debido al nombre, muchas personas piensan que esto es realmente un desarrollo sin servidor, no necesita escribir código de fondo, y cualquier desarrollador front-end podrá crear una aplicación web completa. ¡Pero esto no es así!

Al crear una aplicación sin servidor, el servidor sigue siendo necesario, al igual que las bases de datos. La principal diferencia entre este enfoque es que el código de fondo se presenta en forma de funciones en la nube (otro nombre para sin servidor es FaaS, funciona como un servicio o funciones como servicio) y permite que la aplicación se escale rápida y fácilmente. Al crear dicha aplicación, el desarrollador puede centrarse en las tareas comerciales y no pensar en escalar y configurar la infraestructura, lo que posteriormente acelera el desarrollo de la aplicación y reduce su costo. Además, el enfoque sin servidor ayudará a ahorrar en el alquiler del servidor, ya que utiliza exactamente tantos recursos como sea necesario para completar la tarea, y si no hay carga, entonces el tiempo del servidor no se utiliza en absoluto y no se paga.

Por ejemplo, la gran empresa estadounidense de medios Bustle pudo reducir los costos de alojamiento en más del 60% al cambiar a Serverless. Y Coca-Cola, mientras desarrollaba un sistema automatizado para vender bebidas a través de máquinas expendedoras, pudo reducir los costos de alojamiento de $ 13,000 a $ 4,500 al año al cambiar a Serverless.

En los últimos años, debido a su novedad y limitaciones, Serverless se ha utilizado principalmente para pequeños proyectos, startups y MVP, pero hoy, gracias a la evolución del software, la versatilidad y el poder de la contenedorización de servidores, aparecen herramientas que le permiten eliminar restricciones, simplificar y acelerar el desarrollo de aplicaciones en la nube .
Esto significa que los escenarios empresariales corporativos en los que la actualización de la nube se consideraba imposible anteriormente (por ejemplo, para dispositivos periféricos, datos transmitidos o aplicaciones con estado) ahora son una realidad. Buenas herramientas prometedoras son kNative y Enterpriseless Server.

Pero con todo esto, Serverless no es una bala de plata para desarrollar aplicaciones web. Al igual que cualquier otra tecnología, tiene sus propias ventajas y desventajas, y debe elegir esta herramienta con comprensión y "no martillar las uñas con un microscopio", simplemente porque es más avanzada tecnológicamente.

Para ayudarlo a resolverlo, aquí hay algunos ejemplos en los que debe pensar en Serverless al desarrollar un servicio web nuevo o mejorar un servicio web existente:

  • Cuando la carga en el servidor es periódica y usted paga por la capacidad inactiva. Por ejemplo, teníamos un cliente con una red de cafeteras y era necesario procesar solicitudes y recopilar estadísticas solo unos pocos cientos o miles de veces al día, y por la noche el número de solicitudes se redujo a varias decenas. En este caso, es mucho más eficiente pagar solo por el uso real de los recursos, por lo que propusimos e implementamos la solución en Serverless;
  • Si no planea sumergirse en los detalles técnicos de la infraestructura y pagar de más por la configuración y el soporte de los servidores y el equilibrador. Por ejemplo, cuando desarrolla un mercado, no sabe exactamente cuál será el tráfico, o viceversa: planifica mucho tráfico y, por lo tanto, su aplicación puede soportar la carga, Serverless es una excelente opción.
  • Si es necesario realizar algunos eventos de transmisión en la operación de la aplicación principal, escriba datos secundarios en las tablas, realice algunos cálculos. Por ejemplo, para recopilar datos analíticos de las acciones de los usuarios, procesarlos de cierta manera y guardarlos en una base de datos;
  • Si necesita simplificar, unificar o acelerar la aplicación actual. Por ejemplo, para crear servicios que mejoren el rendimiento para trabajar con imágenes o videos cuando un usuario carga videos en la nube, y una función separada está involucrada en la transcodificación, mientras el servidor principal continúa funcionando como de costumbre.

Si necesita procesar eventos de servicios de terceros. Por ejemplo, procese las respuestas de los sistemas de pago o redirija los datos del usuario a CRM para acelerar el procesamiento de solicitudes de clientes potenciales
Si tiene una aplicación grande y algunas partes de la aplicación pueden implementarse de manera más óptima, utilizando un lenguaje diferente al principal. Por ejemplo, tiene un proyecto Java y necesita agregar una nueva funcionalidad, pero no hay manos libres, o en este idioma la implementación puede tomar más tiempo y ya existe una solución en otro idioma, entonces Serverless puede ayudarlo.

Esta no es la lista completa de herramientas y tecnologías que merecen atención, simplemente compartí lo que nosotros mismos usamos todos los días en nuestro trabajo y sé exactamente cómo pueden ayudar a los negocios.

Source: https://habr.com/ru/post/451572/


All Articles