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

PHP, Next e Nuxt. Minha Jornada no desenvolvimento Web

Sobre mim

Essa é minha primeira publicação aqui, e gostaria de compartilhar um pouco da minha experiência ao me embarcar no desenvolvimento Web. Comecei a programar em 2018, minhas primeiras linguagens foram C e PHP. A linguagem C foi a que me inspirou e incentivou a seguir na área de software. Eu gosto e me aventuro por outras áreas, como Mobile, embarcados, app Desktop, Machine Learnign e Inteligência Artificial. Cada área tem suas particulares e espero compartilhar minhas experiências com cada uma.

PHP

Eu comecei pelo básico, HTML, CSS e JS. Confesso que achei bem chato criar documentos e estilizar, e até hoje sou péssimo nisso, mas quando o JS entrou no caminho, as coisas ficaram interessantes. Eu aprendi tudo isso no Ensino Médio, que tinha diversos cursos de informática. No segundo ano, o PHP entrou em cena. Até então nunca tinha visto algo mais belo e mágico do que você criar um script, que torna aqueles documentos HTML mais interativos e dinâmicos do que o JS. Nessa época aprendi um pouco de banco de dados e vi como interligar tudo isso e achei um máximo.

O que mais acho incrível no PHP, é que ele foi feito para web, então todos os conceitos e ideias por trás do desenvolvimento web você consegue aprender com o PHP. Eu fico até arrepiado quando alguém aqui do TabNews escreve algo em PHP. Fiquei nisso até 2021, quando comecei a estudar um monstro...

Um monstro chamado Node

Eu tinha achado interessante como o PHP dava muito poder a um site, algo que o JS não era capaz. Então conheci o node, tão inocente e belo, que tornava o JS como o PHP, não ia mais preciar configurar um servidor como fazia com PHP, estava tudo junto e organizado, o que poderia dar errado? Mas, assim como Sauron enganou os elfos na Terra-Média, esse foi o golpe fatal que o Node me deu, a organização era uma mentira, precisava instalar um monte de pacote, e alguns deles tinham risco de ter códigos maliciosos, além de diversos problemas que o próprio criador do Node apontava. Estou sendo muito dramático ao digitar isso, mas eu tinha explorado as famosas Stacks como MERN, MEAN e por ai vai. Achei tudo aquilo muito complicado, até porque eu não tinha apanhado tanto assim com o PHP. Então eu dei um tempo e encontrei o Deno, a versão melhorada do Node, e de fato minha experiência mudou muito, mas ainda o elephantinho estava no meu coração e para mim ainda era a melhor forma de programar na Web.

Eu dei um tempo no desenvolvimento Web e foquei em outras coisas, mais ainda mexia em alguma coisa aqui e ali por causa da minha faculdade de engenharia de software. Então chegou 2023...

Next.js um substituto digno do PHP

Ano passado comecei a explorar novamente o univverso web quando o Youtube começou a me recomendar vídeos sobre uma nova tecnologia: o Next.js
Comecei a assistir a diversos vídeos e praticar alguns tutoriais e finalmente fiz um projeto para a faculdade com ele. Eu pessoalmente não fiz (ainda) um projeto pessoal nele, mas fiquei impressionado com a organização, a documentação e o quão poderoso ele é. Tudo o que é fundamental para a Web está embutido nele, e é fácil integrar com outros módulos compátiveis. Ali eu comecei a mudar minha visão da Web e vi que era possível construir algo mais fácil e intuitivo que as stacks do JS e uma excelente alternativa ao PHP.

Nuxt.js: uma delicinha

Eu pensei que não poderia ter algo melhor e mais fácil que o Next para criar desde uma simples aplicação até algo mais robusto. Porém, me enganei de novo!!!
Vi que tinha uma alternativa com um nome muito semelhante, e minha curiosidade me levou aprender o Nuxt.js. Uma das melhores documentações que já vi, uma organização impecável, muito fácil de aprender e usar para praticamente qualquer tipo de aplicação Web, e atualmente estou bem fiel a ele e aprendendo cada vez mais.

Conclusão: O que eu quis dizer com isso tudo?

Meu principal objetivo de ter escrito esse post foi para mostrar, principalmente você que é iniciante, a não ficar preso a determinada tecnologia, com certeza existem caminhos e soluções melhores. E não ache que software é apenas Desenvolvimento WEB, outras áreas precisam de profissionais também, ciência de dados, inteligência artificial, embarcados, mobile e até jogos!
Espero que eu tenha agregado algum valor para vocês, até mais!

Carregando publicação patrocinada...
3
2
1
1
1
1

Eu venho do PHP e Laravel + jQuery. O frontend era quadrado, formulário básico e tal. A internet evoluiu e jQuery se tornou obsoleto.

O Laravel me encantou por ser fácil e intuitivo, documentação muito bem organizada e escrita, e em relação a estrutura e código com design patterns aplicado do jeito certo tal qual Facade, Singleton, Builders (...) me faz apaixonar pelo framework.

Mas precisava usar algum framework de JavaScript e aposentar o jQuery, e testei vue.js e Next.js e vou te dizer: mesmo com typescript é decepcionante! Todo ecossistema do JavaScript é uma completa gambiarra, pior, é um caos!

Muitas dependencias de pequenos mantenedores. Um package para listar arquivos de uma pasta, outro package para criar um arquivo...

Tinha o NPM, e ao invés de melhorar o NPM, criaram o PNPM, depois dezenas de gerenciadores de pacotes.

Javascript tem em si o espirito das distro linux. Todos os dias alguem faz fork do Ubuntu e melhora algo, e ao invés de fazer (ou aceitar) uma pull request, e a consequencia é muda o nome (Kubuntu por exemplo) e dizer ser um sistema operacional novo. O ponto é que cada um quer ter seu 'framework' ao invés de contribuir com (ou aceitar contribuição em) um projeto já existente.

A comunidade de JavaScript constroem packages e frameworks igual ao dono dessa casa. Sem estudo, sem planejamento, um andar de cada vez, e quando precisar ampliar, ao invés de reestruturar, o negócio é "se a casa não caiu, dá pra morar dentro".
Casa construida com gabiarra

Desconhecem orientação a objetos, DRY, e todos os padrões de projeto.

Eu sei que estou sendo dramático, mas não estou exagerando...

Acho que todos que codaram node usaram Prisma ao menos uma vez, e na documentação deles, na seção de boas práticas, olha como eles definem Singleton:

import { PrismaClient } from '@prisma/client'

const prismaClientSingleton = () => {
  return new PrismaClient()
}

declare const globalThis: {
  prismaGlobal: ReturnType<typeof prismaClientSingleton>;
} & typeof global;

const prisma = globalThis.prismaGlobal ?? prismaClientSingleton()

export default prisma

if (process.env.NODE_ENV !== 'production') globalThis.prismaGlobal = prisma

Agora vejam o como é um Singleton de verdade que implementei em um projeto que estou trabalhando:

import { PrismaClient } from "@prisma/client";

export class PrismaClientSingleton {
  protected static instance: PrismaClient;

  public static getInstance() {
    if (!PrismaClientSingleton.instance) {
      PrismaClientSingleton.instance = new PrismaClient();
    }

    return PrismaClientSingleton.instance;
  }
}

Vocês podem conferir sobre Singleton aqui https://refactoring.guru/pt-br/design-patterns/singleton.

A galera do javascript diz que não é bem assim, que estou exagerando. Mas a conclusão que passei a ter é que essa galera nunca programou com organização, estão acostumados a fazer scripts e gambiarra, e desconhecem algo melhor estruturado. E como meu caminho foi de vir algo mais estruturado, para algo mais caótico deu ruim.

Eu programo typescript, Next.js, Vue.js e o que mais surgir pela demanda da empresa que trabalho, mas não é prazeroso codar nada feito em javascript. É tudo muito penoso.

Eu não odeio nenhuma linguagem de programação (exceto Java por trauma), pois cada uma delas é ótima em resolver problemas especificos, e sinceramente, javascript tem potencial para ser a melhor, mas infelizmente javascript sofre desse mal.

0

Já tem o Next, criaram o Nuxt e daqui a pouco vem "Noxt" e "magicamente" tudo fica ultrapassado, hoje a tecnologia é assim, um framework javascript surge a cada instante.
Opa... Nem vou terminar o comentário, surgiu outro, vou ali estudar. kkkk
Quanta loucura!!!

4

Já tem o Next, criaram o Nuxt

Next: React

Nuxt: Vue

Essa foi a principal diferença inicial. Após isso o Nuxt foi se aperfeiçoando por um caminho diferente do Next.

Eu prefiro muito mais o Nuxt por não ter sempre a sombra de uma empresa que quer lucrar com essa ferramenta (Vercel)