jueves, 23 de febrero de 2017

El desarrollador back-end cada día más cerca del front-end




Antes de que comience a leer está entrada quiero infórmate que todo lo he escrito aquí es en base a mi experiencia no una verdad absoluta, y no vamos a ver nada de código.

Conceptos previos
Inciamos la entrada aclarando 2 conceptos en el mundo de la tecnología web:

Front-end: desarrollador que realiza aplicaciones web usando tecnología del lado del cliente como lo es javascript, css, etc.
Back-end: desarrollador que realiza aplicaciones web usando tecnología del lado del servidor como PHP, .NET, Java, etc.
Teniendo claro estas diferencias podemos comenzar con la entrada a fondo.

Normalmente una web es desarrollada con alguna tecnología back-end (PHP, Java, Ruby, .Net, entre otros) y la maquetación y e interacción la hacemos con CSS y Javascript (jQuery en la mayoría de los casos adicionando sus plugins), ya sea para una página web comercial o un sistema web.

¿A que me refiero con página web comercial y sistema web?

Página web comercial: aquellas páginas que tienen un público objetivo definido como visitantes al cual les quieres mostrar tu servicios o productos que ofreces como persona natural o empresa.
Sistema Web: sistema realizado a medida para satisfacer la demanda de un proceso interno de una empresa, por ejm: un ERP, CRM, etc.


Rest Api
Hablemos de arquitectura, lo normal en un desarrollo de un sistema web es crear un capa de presentación (lo que el usuario visualiza), una capa de negocio (las reglas de negocio de tu empresa, por ejemplo: métodos para efectuar una venta) y una capa de persistencia (consultas a la base de datos), estos 3 los enlazas y tu capa de presentación se encarga de mostrar la información que el usuario requiere. Normalmente, la capa de persistencia viene siendo creada como un servicio (Webservices o Rest Api). Actualmente, se está optando más por desarrollar Rest Api, incluso se han desarrollado Frameworks exclusivamente para Rest Api, como lo es:

Laravel Lumen (PHP)
Web Api (.NET)
Slim (PHP)
¿Rest Api?, es una arquitectura de software basada en HTTP para crear servicios y aplicaciones que puedan ser consumidas por otros. En español, es declarar rutas o URL que permitan hacer alguna acción para que tu aplicativo pueda interactuar bajo ciertos estándares. Ejm: Tienes tu aplicación Android y quieres mostrar las últimas ventas del mes, puedes llamas a tu API http://api.miweb.com/ventas/GetAll.


Javascript hoy en día
Han nacido varios frameworks para consumir dichos servicios, como Angular JS, Backbone, Ember JS, entre otros, la cual es la nueva tendencia que se está optando en el desarrollo web, desarrollar SPA (Single Page Application) o aplicación de una sola página y a la par librerías para darle potencia a la interface del usuario como jade, react js, polymer, entre otros. Javascript ha crecido tanto que es prácticamente la nueva tendencia para desarrollar aplicaciones web, vamos a ver las ventajas:

Tiempo de espera reducido entre páginas (No hay postback, se juega con el historial de navegación)
Comunicación con el servidor más fluida:
El cliente realiza una petición al servidor.
El servidor responde al request serializando la información a Json.
El cliente se encarga de procesar dicha información en mili segundos.
Mayor fluidez para realizar aplicaciones responsive, en un dispositivo movil se debería ver más fluído acercandose a una aplicación nativa.
Reglas de negocio ejecutadas desde el lado del cliente, esto nos va a dar un mayor performance. (Igual hay que validar en el servidor para evitar una brecha de seguridad en nuestra aplicación).


¿Que pasará con las aplicaciones tradicionales?
Así es, el desarrollador back-end va a terminar siendo desarrollador front-end, en realidad un híbrido (full-stack) ya que va a tener que dominar la parte back-end para crear los servicios, el cual requiere conocimiento de base de datos y la tecnología del servidor para validar la información, y la parte front-end para crear la aplicación. Con lo que quiero decir, que en base a mi especulación el desarrollo web que conociamos puede ser reemplazado por las aplicaciones SPA. Ahora posiblemente hayan casos que ustedes dirán, esto no lo puede hacer con javascript (generar un PDF), tu Rest API si lo puede hacer, solo sería cosa de pasar el enlace de descarga. Además, que no nos sorprenda que más adelante puedas generar documentos desde el lado del cliente, quien iba a pensar que javascript sería lo que es hoy a comparación de hace 10 años a más.



¿El back-end va a desaparecer?
No, siempre va a estar, ya que javascript necesita un servicio para poder crear la aplicación, al menos que inventen una tecnología que conecte a Oracle tan solo usando javascript (no creo ¬¬). Y la demanda back-end siempre va a estar en auge, muchas empresas requieren programadores back-end ya sea para dar soporte a sus sistemas antiguos o crear nuevos módulos (trabajo hay y habrá bastante). Otro punto, que para desarrollar una web comercial o derrepente un start up, requiera hacer el desarrollo como lo hacemos siempre para el tema del posicionamiento (SEO). Adicionalmente, no creo que páginas como Ebay decidan de la noche a la mañana cambiar a SPA, seguirán contratando desarrolladores back-end para dar soporte y/o realizar mejoras a sus proyectos.



Conclusión
Piensa en SPA para el futuro de las aplicaciones web para que seas más competitivo en el mercado aprovechando las ventajas que nos brinda este, entrénate y prepárate porque la demanda va a aumentar. Toda está ¿teoría? que he planteado se debe a que cada día se habla más de javascript, nuevas librerías, nuevos frameworks para el desarrollo de SPA y capa de presentación con javascript, y los frameworks tradicionales para back-end han optado por desarrollar frameworks que solo sean Rest API. Por esta razón, es que voy a comenzar a perfeccionarme en javascript y ser más front-end.

Fuente: anexsoft.

0 comentarios:

Publicar un comentario