Executando verificação de segurança...
1

Você é desenvolvedor Java Spring Boot? Quais tecnologias você usa para o frontend?

Fala galera! Gostaria de saber qual stack recomendada para uma aplicação Java Spring Boot. Especificamente, na parte do frontend, pois tenho tido dificuldade de trabalhar somente com Javascript puro e JQuery.

Mais um pouco de contexto

Busco alguma opção que ofereça boa usabilidade e performance. Não necessariamente um framework (como por exemplo, AlpineJS, HTMX). Atualmente o frontend consiste de Thymeleaf, SCSS (pra customizar o Bootstrap) e JS + JQuery.

Num outro post um amigo comentou algo que me ajudou muito: escrever código JS com classes, numa abordagem OOP, por exemplo:

class Foo {

    constructor(elementSelector = ".foo" ){
        this.$element = $(elementSelector)
        
        this.initialize();
        this.bindEvents();
    }
    
    initialize(){
        // manipula a DOM... define estado inicial da UI
    }

    bindEvents(){
        this.$element.on("some-event", () => handleSomeEvent())
    }

    handleSomeEvent() {
        // handler...
    }

}

$(document).ready(() => {
  const foo = new Foo();
  // outras classes podem ser instanciadas aqui e elas poderiam também disparar eventos e se comunicar entre si...
});


Já trabalhei bastante com React, NextJS, então está sendo difícil um pouco de trabalhar com JQuery e JS puros. Agradeceria muito se você deixasse um conselho.

Carregando publicação patrocinada...
1

Em projetos pessoais estou usando lit-html (https://lit.dev/docs/libraries/standalone-templates/) puro, só para renderizar jsx, bind de propriedades e ações.

Daí combino com webcomponents.

ex


import {render} from '<cdn>'

class Component extends HTMLElement {

    constructor() {
       super({});
    }

    connectedCallback() {
         render(this.template())
    }
    
    template() {
        throw Error('not implemented')
    }
}

import {html} from 'cdn';

class MyPage extendes Component {

     constructor() {
         super();
      }
      
      teste(){
          console.log('teste');
       }
       
      template() {
          return html`<div>
              <button @click=${ e => this.teste()}> Teste </button>
              `;
       }
       
 }
 
 customElements.define('app-my-page', MyPage)

Daí é só importar a o componente na página que for utilizar.

1

A melhor recomendação é focar naquela que supre suas demandas da forma mais simples possível.

Porque você precisa de usabilidade e performance? Está trabalhando em um sistema de alta disponibilidade, que precisa ser escalável e atender milhões de requisições?
Precisa de algo simples que sirva como UI para um projeto? Está fazendo para aprender?

Apesar dos apesares, sempre gosto de ficar no simples, óbvio e clichê. Acho que hoje independente do projeto, React vai bem. Tem uma vasta comunidade, tem gente de sobra procurando vaga, é muito fácil estender e modificar.

Não usaria JQuery nem JS puro, simplesmente porque não vale o esforço. Não tem vantagem nenhuma fazer isso.

escrever código JS com classes, numa abordagem OOP

Particularmente acho besteira. Muito código pra pouca coisa. Além de que, digo por experiência própria, já vi muuuuuitos projetos assim, e JS é terra de ninguém. Você começa colocando classes aqui, daqui a pouco um Sass, precisa de um compilador e minificador, o projeto cresce, migra pra react... vira um inferno.

Na minha cabeça, JS bom é um script desacoplado que tem uma boa limitação de alcance (talvez um por tela, dependendo do caso), e talvez algumas libs de utilidade. A não ser que você esteja falando de um sistema altamente complexo e modularizado, nesse caso, React + a arquitetura padrão que a comunidade já aplica. JS com classes e OOP é a mesma coisa que querer escrever uma API usando CowScript (https://esolangs.org/wiki/COW) ou BIRL (https://birl-language.github.io/). Não é porque existe que faz sentido usar.