Duda sobre seleccion tecnologias frontend+backend

willy_chaos

En el trabajo tenemos una intranet que tiene una estética bastante vieja y que ademas es un monstruo de todos los módulos que tiene. Debido a ciertas problemáticas queremos comenzar a partirla y extraer módulos a mini apps web.

Estamos decidiéndonos por estos lenguajes backend, aunque me gustaría saber que frameworks recomendáis.

  • Java OpenJDK 1.11 (actualmente trabajamos sobre J2EE por lo que el cambio no sería nada traumático)
  • Python
  • PHP

También queremos crear un frontend de forma sencilla (sin tener que pelearnos mucho con CSS), así que la idea es usar bootstrap, pero también querríamos no tener que hacer todo el JScript a pelo (como hacemos ahora, js nativo + jquery) y html también a mano. Así que había pensado en algo tipo:

  • React
  • Angular
  • ????

De forma que nos sea mas sencillo y sobretodo estandarizar la forma de programar en algo común y no que cada uno lo haga como el crea.

Podéis darme vuestras opiniones y/o experiencias?

Saludos!

_Rpv

Backend en .NET Core y front en angular.

2 1 respuesta
HeXaN

Si ya trabajáis con JAVA seguid con JAVA pero en su última versión. Menos dolor de cabeza para los programadores.

1 respuesta
willy_chaos

#2 ya se intento hace un tiempo pasar a .NET para incluso integrar apps con SharePoint, pero al final quedo descartado. Respecto Angular, porque? Osea, mejor que REACT por alguna razón? No he trabajado con ellos así que desconozco mas allá de lo que veo en la documentación, pero si trabajáis con ello frente a otro, entiendo que es por algo. Os ayuda mas que otra tecnología.

#3 Recomendación de algún framework en concreto? Debido a la antigüedad de la plataforma (1996, obviamente se han ido actualizando cosas) , digamos que es un framework totalmente hecho a manita, así que estaría bien conocer vuestras experiencias con los diferentes frameworks que habéis usado y porque finalmente los habéis aceptado para producción o descartado.

Se que hay información por internet, pero se que en MV hay muchos que domináis y que ya tenéis la espalda curtida, así que me parece mas fiable vuestra opinión y también mas "cercana"

Por ejemplo el problema que nos encontramos a veces con Java es que para realizar ciertas tareas, hay que picar bastantes lineas cosa que con python en 3 lineas está hecho.

Etc...

Respecto al frontend, que recomendáis y porque?

1 respuesta
isvidal

#4 Depende del tamaño que querais darle al front, si es muy masivo quizas Angular por el tema de que es un framework mvc muy completo, pero si ha de ser solo pequeñas ventanas al back quizas React, que es una libreria y mucho mas ligero y escalable, os case mejor .

Wei-Yu

disclaimer: yo no tengo ni puta idea pero vengo a opinar igual

Yo tiraría por cosas con las que estéis familiarizados, estén asentadas y sepáis que podáis contratar gente que sepa usarlas en caso de necesitarlo.

Spring boot es más o menos el estándar para proyectos nuevos de java. Sin falta de usar boot podéis tirar por mvc, pero definitivamente tiraría por spring porque practicamente es industry standard para estas cosas.

En tema de front yo diría que tanto react como angular están bastante extendidos, aunque tampoco sé si vuestro usecase demanda usar un framework para todo el proyecto o con vanillaJS y un template engine os vale, o si mezcla y mezcla está bien... no estoy muy puesto en esto pero entiendo que mientras sólo tengáis que encadenar formularios y funcionalidades simples no deberíais necesitar un framework así. Depende de las dimensiones y necesidades, al final no hay que olvidar que un framework así añade mucha carga de trabajo.

1
Beavis

En la parte de fronted infórmate bien de la arquitectura que os interesa seguir, no siempre una SPA es el mejor caso de uso para todas las aplicaciones y para muchas cosas tener el peso en el backend a mi me parece mucho más eficiente aunque no esté de moda.
Si estáis familiarizados con un ecosistema a priori lo más eficiente parece que uséis algún framework moderno del lenguaje que controléis que más se adapte a las necesidades del proyecto y con el que podéis ser productivos desde el día cero (npi de java sorry) salvo que os suponga un bloqueo o busquéis características que no tiene.
Si vais a mirar otros lenguajes de PHP te puedo recomendar Laravel o Symfony si el primero se os queda corto.
Personalmente yo estoy usando elixir/phoenix en las cosas nuevas que voy haciendo y estoy muy contento con el lenguaje: me permite ser muy productivo, código robusto y super claro, te olvidas de problemas de escalabilidad con las herramientas que te da la vm de erlang, pero bueno aquí cada uno va a tener una opinión similar con su lenguaje predilecto.
Como te decía antes hacer una inversión así en un ecosistema nuevo por un proyecto puntual no sé hasta qué punto es rentable, salvo que sea una herramienta que os interese añadir a vuestro arsenal para futuros proyectos.

2 2 respuestas
Ridote

Yo estoy recién iniciándome en tecnologías web y para el front React es la leche :ok_hand:

Camperito

#7 Yo uso vuejs para casi todos mis proyectos y no necesariamente como SPA, de hecho en casi todos, no son SPA, porque no tienen sentido para ese proyecto

1 1 respuesta
Beavis

#9 tienes razón me refería aquí a arquitectura de la aplicación más que a los frameworks de js en concreto, me he explicado mal.

willy_chaos

#7 bueno precisamente este "mini proyecto" es mas una prueba de concepto pero claro tampoco estamos para tirar horas a la basura probando lo mismo con diferentes backend-frontend que sera la punta de lanza para próximos proyectos y de paso para todos aquellos módulos que podamos extraer de la principal.

No tiene porque ser un SPA, aunque precisamente el modulo con el que hacer la prueba de concepto se puede crear como un SPA por la poca cantidad de información que realmente hay que mostrar. Pero si que los siguientes , seria un poco "coñazo" que fuera un SPA.

Ranthas

Si ya trabajaban con Java, creo que lo más recomendable es seguir en Java. Spring MVC o Spring Boot serían las opciones más fuertes.

Luego, para el front end...depende de vuestra pericia y que quieran hacer. Si es una intranet tampoco hace falta tirar la casa por la ventana, me arriesgaría a decir que con algun motor de plantillas tipo Thymeleaf más JS Vanilla/JQuery y Bootstrap se puede hacer algo medianamente vistoso sin tener que recurrir a Angular2+.

Lo más importante, es si tienen luz verde para meterse de lleno con tecnologías nuevas para este proyecto, es importante escoger algo con lo que todos puedan llegar a estar cómodos. En mi experiencia, he tenido que colaborar con dinosaurios que lo más novedoso en su repertorio era Turbo Pascal y moverlos a Java y a la OOP fue la peor idea que he tenido jamás, pero de lejos.

afhn

Framework spring, maven, jsf y a pastar.

1 respuesta
eondev

#13 maven? En 2019?

3 respuestas
afhn

#14 y por qué no? si van a ser módulos de una app vieja en java, un proyecto maven con varios módulos web por cada módulo de la app antigua no sería mala idea.

1 respuesta
Fyn4r

#14 desde el desconocimiento total y absoluto del entorno de Java, no es maven estándar?

1 respuesta
eondev

#15 #16 Nah, quería repetir el meme de lecherito con su LUL (se me olvidó ponerlo xD) pero hoy en día existinendo Gradle que es mucho más flexible para configurar las compilaciones y despliegue no iniciaría un proyecto nuevo con Maven ;/

Además que ahí tiene toda la pinta de que va a haber un pifostio guapo con tanto módulo y migración y tiene integración completa con Spring

2 respuestas
Troyer

Si me dices que hay dentro de la intranet, para que soléis utilizarla y cuanto tiempo de desarrollo tenéis puedo intentar decirlos las tecnologías, porque sin esa información vale cualquier cosa.

1 respuesta
Fyn4r

#17 Solo he usado gradle con Android y la verdad es que super contento xD

afhn

#17 No sabría qué decirte sinceramente, nunca he trabajado con grandle por lo que no sé cuanto mejor es en comparación a maven :S.

Ranthas

#14 Te hubiera quedado mejor con JSF, recomendar eso y encima junto a Spring es tenerlos cuadrados

Aunque donde mas uso le he visto a JSF es precisamente en intranets.

willy_chaos

#18 La intranet dispone de cosas como

  • Control de horas asignadas a una persona (ej de las Xmil horas anuales que trabaja una persona) tantas estan asignadas al proyecto tal, tantas a tal otro...
  • Modulo de notas de alumnos
  • Modulo de control de pago de los alumnos
  • Modulo de gestión de asignaturas
  • Modulo de reserva de espacios y aulas
  • Backoffice para la web externa (sincronización de datos mediante webservice)

Obviamente no todo se va a extraer ahora mismo pero si que creemos que vamos a extraer unos cuantos. Como podrás intuir se usa para todo lo que indico y cada día por un gran numero de personas (alumnos, secretaría académica, profesores, ...)

Tiempo de desarrollo pues es una prueba y como viene verano, seguramente tengamos un bajón de trabajo así que te diría que desde junio hasta septiembre (contando que agosto no trabajamos)

1 respuesta
Troyer

#22 pues si domináis java tirad con java porque realmente no os hace falta más.

Yo haría el backend con PHP usando Laravel con una api rest porque me parece bastante sólidas y estables, aparte que para diseñar/planificar la estructura de modelos y clases es sencillo.

Frontend iría por blade+boostrap+js y a chuparla, fácil de mantener y extender, no soy fan de SPAs para cosas grandes o aplicaciones que tengan funciones complejas.

Base de datos MySQL obviamente.

borchhhhh

Si domináis Java estaréis más cómodos con Angular que con React por lo que he leído .

React es más flexible pero tienes que definir tu mismo como hacer las cosas . Si no defines un patrón claro , entonces se puede convertir en una mezcla rara según quien haga cada parte . Angular te da una especie de MVC que tienes que seguir si o si por lo que tienes que hacerlo todo siguiendo un estándar

Si tienes un perfil más front entonces estarás más cómodo con React

A nivel de performance creo que no hay diferencias importantes . Tanto una como otra dan rendimiento excelente

Gantorys

Backend JAVA porque ya estáis acostumbrados.

Frontend Vue.js, que la curva de aprendizaje es más sencilla que los otros dos que mencionas (Angular y React), y tiene librerías con Bootstrap para hacer lo típico (modals, dropdowns, tooltips...)

Usuarios habituales

  • Troyer
  • willy_chaos
  • Ranthas
  • afhn
  • Fyn4r
  • eondev
  • Beavis