Framework Front-End. Recomendaciones.

Ranthas

Bueno, en breve me caerá arriba un proyecto en el que en teoría sólo me ocuparé del backend, que está escrito en Java (Spring MVC). Pero como más sabe el diablo por viejo que por diablo, ya veo que me tocará desarrollar el front también, porque Dios aprieta, pero no ahoga.

Los últimos años los pequeños/medianos proyectos que he ido desarrollando los he hecho íntegramente en Java, la mayoría con JSF 2.2 + Primefaces, y unos pocos con Vaadin (más nunca, lo juro). Lo "bueno" de estos frameworks es que la parte del frontend la puedo desarrollar súper rápido y tocando lo mínimo de JS, muchas veces, sin tocar absolutamente nada.

Pero claro, en esta nueva aplicación no me dejan reescribirla con estos FW, así que como de Spring solo tengo que repasar conceptos y ponerme al día, solicito vuestro vasto e inigualable conocimiento sobre....Front End.

-> Tanto en JS como CSS voy justísimo, por no decir nulo completamente. Los frameworks de curva dura de este lenguaje deberían ser mi última opción, ya que para meterme con eso, mejor tirar la aplicación y reescribirla con las tecnologías que conozco.

-> Una opción manejable podría ser Bootstrap? Lo pregunto porque no lo he tocado nunca, pero lo poquísimo que he visto por el interné parece que no tiene mucho misterio.

En fin, necesito ideas. No estoy cerrado a ninguna tecnología, siempre que sea abordable.

Gracias de antebraso.

1
Zerokkk

Está siempre bien conocer un poco de ambos lados. Todo buen programador debería conocer y trabajar con cierta fluidez con al menos una tecnología de BBDD, backend y frontend. Y por eso creo que esta es una buena oportunidad para que aprendas algún framework de frontend potente y capaz.

Ya sabes cuáles son las opciones más famosas:

  • React: es el que más comunidad tiene ahora mismo si no me equivoco. Te permitirá usar React Native si quieres programar apps híbridas con facilidad. Creo que a día de hoy es la opción más inteligente ya que es la que más mercado comienza a tener.
  • Angular: es un poco overengineered, muy grande, pero sin duda también potente. Si lo sabes usar bien, con Angular se desarrolla a toda ostia y las apps van finas, además de que con cada versión lo optimizan más para que el tiempo de carga sea menor. Yo estoy contento con Angular 4 ahora mismo, desarrollar con él en Ionic 3 es una gozada, pero como ya dije, esta opción quizá sea la que más tiempo de aprendizaje requiere. NOTA: Como ventaja extra para ti, que sepas que hay frameworks que casan Angular 2 (y posterior) con Java EE, incluído Spring.
  • Vue: A día de hoy parece las tecnología de frontend más minimalista y sencilla, yo creo que es interesante también ya que te llevará poco aprender con él, aunque es la opción más nueva y con menos comunidad de las tres.

Pero antes de todo esto, te sugiero que te metas a tope en ES6 y le eches un vistazo a este post, que te dará mucha info sobre temas que revisarte: https://medium.com/javascript-scene/top-javascript-frameworks-topics-to-learn-in-2017-700a397b711

Saludos!

3 2 respuestas
Ranthas

#2 Bueno, gracias antes que nada.

Parece que la opción más inteligente es meterme con Angular por las ventajas que me ofrece al desarrollar en Java, pero no quiero meterme de lleno y luego verme corto de tiempo o con el desarrollo a cuestas mientras a la vez estoy guerreando con Angular. Sin embargo, creo que para mi situación sería meterme mejor con React.

Iré empezando a compaginar React + JS basis, a ver que sale. Con suerte me equivoco y no tendré que llevar el front de esa dichosa aplicación, y así podré dedicarme a esto con un poco más de paciencia.

1 respuesta
s4suk3

react native y fácil no va en la misma línea
Yo tengo pendiente controlar flex box

Bootstrap parece lo q buscas #1, está todo mascado y hay miles de ejemplos

Supongo que en Java puedes usar un tipo de plantillas como bladee, no creo q necesites angular para nada

1 respuesta
Wasd

Después de analizar las tres alternativas principales (React, Angular y Vue) he tirado por Angular.

Yo soy desarrollador backend, utilizo frameworks como Symfony, Laravel, CodeIgniter, y cuando no utilizo framework me contruyo yo mismo uno que utilice arquitecturas parecidas a las de esos frameworks.

La arquitectura de Angular y el lenguaje utilizado (TypeScript, aunque si esto te echa para atrás puedes programar en JS directamente) hacen que el estilo de desarrollo sea muy similar entre hacer frontend y backend. Ya no tengo que "cambiar el chip" al pasar del servidor al cliente, cosa que antes sí que tenía que hacer al usar JS nativo, jQuery o AngularJS.

Lo "malo" de utilizar frameworks frontend avanzados es que te ves obligado a añadir una cantidad considerable de elementos a tu tech stack: El framework en si, el nuevo lenguaje, NodeJS (npm), webpack o gulp, SCSS/Stylus, etc... Esto, sumado al stack ya de por si extenso del desarrollo backend hace que, por pequeño que sea tu proyecto, ya tengas una gran dependencia de múltiples tecnologías. Supongo que forma parte de la evolución del software, pero sí que creo que se podría estandarizar un poco para no llevar locos a los devs frontend xD.

Good luck :)

PD: Para CSS mirate CSS Grid (dentro de poco será un estándar) y mezclalo con Stylus, eso te da una versatilidad que hasta hace poco no era posible.

Kr4n3oK

#3 El tema de Angular está en que puedes desarrollar apps sin tener que profundizar mucho en la capacidad de este FW. Cuando ya entras en profundidad es cuando la curva se acentúa. Para apps CRUD tipo, angular te resultará rapido y efectivo.

s4suk3

luego peta el webpack y te tiras 2 días para encontrar que pasa

1 respuesta
Zerokkk

#7 ¿Te pasó alguna vez? Lol xD, yo en lo que llevo probado con ng2 no he tenido nunca problemas con el webpack.

1 1 respuesta
maccgeo

¿Extjs?

s4suk3

#8 con meteor nos pasó una vez en el trabajo, quisimos cambiar la estructura y la que se lió :psyduck:

Ranthas

#4 Ya estoy con ello. Lo estoy mirando junto a esto:

https://www.bootsfaces.net/

Que parece ser una solución a medida para mi "problema". Angular me gustaría echarle un vistazo, pero teniendo tiempo disponible para verlo con calma.

Starshow

Yo estoy metido con Angular 4 y la verdad, no he probado los otros pues con este estamos tirando genial. Si ves que vas muy pegado, en Udemy tienes cursos por 10€ que estan muy bien y te meten una buena introducción en líneas generales de Angular.

1
-Yepeto-

En mi trabajo estamos ahora desarrollando con VueJS 2 y muy contentos la verdad. Es un framework muy fácil de sacarle provecho sin profundizar demasiado y con una potencia bastante buena. En comparación con Angular 4, me parece mucho más fácil de aprender y comenzar a trabajar con él.

P

Hola, se que no es un framework puramente, pero últimamente estoy con Polymer y me está gustando mucho.
Facilita mucho el desarrollo sobre todo cuando le has pillado el funcionamiento.

Saludos

s4suk3

Meter angular react vue polymer etc para lo que comenta #1 me parece matar moscas a cañonazos, si quieres algún componente complejo si q merece la pena usar react,vue o polymer en vez de jquery

B

Utilizar react (sin el native) y renderizar desde backend a mí me está dando muy buenos resultados. Claro que lo usamos en una plataforma demasiado grande :)

1 respuesta
s4suk3

#16 ninjaedit :ninjaedit: renderizáis desde backend por seo o por otro motivo?

1 respuesta
B

#17 No por SEO. Al final tenemos una plataforma demasiado grande y dividida en muchos microservicios. Cada uno de ellos se encarga de renderizar su parte en cada parte... con un sistema de composición dinámica somos equipos prácticamente independientes. Ahí renderizar desde servidor nos aporta mucho (además de ser más eficiente)

1 año después
B

A día de hoy, ¿Creéis que React sigue valiendo la pena, sigue siendo top, o Angular 2 o algún otro? Hablo si tuvieras que empezar desde 0. ¿Cuál sería la mejor opción para proyectos unipersonales o para buscar empleo?

¿Y la mejor combinación para full stack?

1 respuesta
Camperito

#19 Existiendo Vue, que coge lo mejor de REact y lo hace tan util como angular, no, no tiene sentido. O angular o vue.

1 respuesta
B

#20 ¿Recomiendas Vue desde cero y listo? He leído que tiene futuro, pero llevo oyendo eso mucho tiempo y no se acaba de consolidar como "la mejor".
¿Y para back? ¿Node+Mongo?

1 respuesta
Camperito

#21 Depende de lo que quieras hacer, cual es tu experiencia etc. Yo personalmente veo, inutil usar idiomas front para el back, pero para gustos colores. Tengo entendido que Node, tiene gran escalabilidad, que nunca esta mal. Mongo, se usa para un tipo de estructura de datos muy especifica, pero funciona como un tiro y es facilisimo, si encaja con tu proyecto, un si rotundo.

Mi combo favorito para web apps : Laravel para la Api , Vuejs para el front, python para todo el trabajo de scripting, sysadmin etc. Mongo o Mysq depende del proyecto no tengo favorito. No me gusta trabajar mobile first, asi que suelo pasar bastante de los dise;os estilo material. No me gustan las apps hibridas, asi que si tengo que hacer app mobiles, siempre nativas

s4suk3

usar vue en vez de react no me tiene sentido, antes por el tema de licencias si, pero ahora react se ha cargado esa licencia sospechosa

react:

vue:

B

Si te dedicas a backend no cometas el error de decir que puedes también con el frontend, esa es la razón por la que piden tanto full stack y no se gastan los cuartos en un buen desarrollador de front end.

1 respuesta
B

#24 Lo siento, pero ese pensamiento es el que rompe el avance en el mundo del software.

Dividir el Backend del Frontend tan drásticamente mutila los equipos de desarrollo y hace que la gente aprenda menos. Estoy de acuerdo con especializarse en uno de los dos lados por si se requiere conocimiento muy muy profundo, pero decirle a alguien "no cometas el error de decir que puedes también con el frontend" ... me parece muy triste.

2 respuestas
HeXaN
#25RT_jOnaS:

y hace que la gente aprenda menos.

No se trata de aprender de todo, se trata de aprender de algo mucho. En este mundillo la hiperespecialización es lo que mejor se paga y con diferencia. Ya no hablemos si eres especilista en alguna tecnología "rara" o muy específica.

1 respuesta
B

#25 Tu has trabajado alguna vez en un equipo de desarrollo?, que el frontend y el backend lo lleven dos personas diferentes no influye en nada. En el mundo empresarial, si se pueden ahorrar 2 duros para que uno realice el trabajo de 2 lo harán independientemente de la calidad del mismo. La popularidad de los full stack se debe a eso, y es puramente económico, el trabajo de dos personas o más cobrando como una persona solo.

1 1 respuesta
PaCoX

Este post ha caducado. Po favó, actualiza la web para ver nuevas recomendaciones de frameworks.

Random facts: Sabias que desde la ultima actualización han salido 123123 frameworks?

1 respuesta
B

#26 No digo que no, está claro. Lo he escrito en mi comentario. Pero también te digo que he visto varios gurús de Frontend decir "ehm... buah yo eso de hibernate... no puedo hacer nada". Muy triste. Y repito, no digo que no te especialices en algo, pero la frase a la que me refería me parece un poco fuerte.

#27 Sí, algo yo creo que he hecho... XD Ahora dime que haces cuando el frontend se te pira a otra empresa y queda el backend sólo. Si no has vivido la situación, poco te has movido ;)

1 respuesta
Leos

Al reves, al aprender dos cosas distintas estas limitando tu tiempo en aprender una bien de verdad al no poder profundizar tanto al tener que dedicar tiempo a otra tecnología también.