← Voltar

Desenvovimento do blog, escolhas e desafios.

Criei esse projeto no intuito de mostrar minha jornada como dev, e sim, o primeiro post vai falar sobre o próprio site onde ele está.

A primeira vez que pensei em fazer esse projeto achei que seria uma ideia tosca porque primeiro nunca escrevi em nenhum blog e também não sou dos melhores escritores, mas aí lembrei que a gente tem que começar de algum lugar e acho que a melhor forma de se desenvolver como programador quando você é um estudante solo seria escrevendo sobre o que aprendeu e dando sua própria visão daquilo.

Então o blog nasceu apenas para isso ? Sim e não, além de sempre postar o que venho aprendendo também pretendo falar sobre as tecnologias e coisas que acontecem no nosso mundo dev, sempre tentando dar meus 10 centavos de comentários e opiniões, obviamente antes de dar "opinião" ou fazer "comentários" pretendo pesquisar sobre o assunto, entender melhor, explicar sobre ele e falar sobre o que eu acho, resumindo é isso que pretendo com esse blog.

O blog.

jhonatta.dev veio como mencionado antes para mostrar minha jornada como dev.

Não pretendo divulgar o código do blog, mas vou passar o que eu escolhi e o porquê, e as dificuldades que tive e como resolvi. Não pretendo esconder nada sobre o desenvolvimento do blog: o back-end inteiro foi feito na mão, no front-end foi utilizada IA apenas na parte visual. Utilizei o Claude Code Opus 4.8 como um sênior que me passava as tasks e me auxiliava com as dúvidas. Obviamente, não pedi para a IA me dar a resposta, mas sim me auxiliar na pesquisa; só nos casos em que eu não encontrei a resposta sozinho é que pedi para ela me dar a resposta, sempre bem explicativa (isso me consumia muitos tokens).

Arquitetura:

A arquitetura escolhida foi a Package by Feature, pois em outros projetos de estudo eu estava utilizando a de monolito, e depois utilizei a clean architecture, mas pra um projeto de blog julguei a monolito muito fraca e a clean architecture muito complexa. Pesquisei e encontrei essa e pretendo manter ela.

Banco de dados:

Banco de dados escolhido foi o PostgreSQL, pois é um banco que eu estou mais acostumado a mexer e consigo lidar melhor com ele, é uma questão de costume mesmo.

Segurança:

Decidi por utilizar JWT, BCrypt Hash, como só tem 1 admin que no caso sou eu então optei por algo mais simples porém forte.

Stack:

Obviamente, o Java 21 LTS com Spring Boot 4.0.6 com maven.

Front-end:

Foi feito com Next.js. Decidi por ele pois nos primórdios dos meus estudos comecei pelo JS com Node.js, então escolhi ele por ser parecido, para não ficar tão perdido.

Ditas as tecnologias e os porquês, vou fazer um resumo aqui, senão o post fica muito grande.

No início, o desenvolvimento foi demorado, porém tranquilo. O que pegou foi que eu decidi fazer tudo com TDD (Test-Driven Development). Um resumo rápido pra quem não sabe: o TDD é você criar o teste antes de criar o código para esse teste, estranho né, também achei, mas é muito utilizado e bem viável. Foi onde pegou, pois, como nunca tinha feito, tive que pesquisar, aprender e aprender na marra. Foi difícil, sim, ainda não está 100% na minha cabeça, mas sei que com futuros projetos, se eu manter essa linha de sempre criar testes antes, vou pegar e vai ficar natural.

Então, a estrutura estando pronta, tive que retornar um pouco e pesquisar sobre markdown, e decidi utilizar o CommonMark, pois ele ainda recebe atualização e aceita bastante configurações. Falando em configuração, o que eu penei muito foi na sanitização desse markdown, para evitar ao máximo que alguém tentasse injetar algo. Foi chato encontrar algo na internet: a única fonte confiável e fácil de entender era o próprio repositório deles. Mas, no fim das contas, entendi um pouco, o suficiente pra ler e entender o que está acontecendo e não depender da IA pra tudo.

Back-end finalizado, fui para o front-end. Aqui foi tranquilo: passei minhas ideias para a IA, mandei imagens de blog de exemplo e gerei um prompt, e ela fez exatamente o que eu queria. Então fui ligando os pontos, os endpoints. Como não sei muito sobre front e muito pouco sobre Next.js, a IA me ajudou bastante a entender de onde cada endpoint entra e o porquê. Acho que a IA tem que ser usada assim, para auxiliar, não fazer o seu trabalho, ainda mais sendo junior, aí eu não aprendo nada mesmo, kkk.

Então, resumidamente, foi isso: tive dificuldades em pontos interessantes no back-end, o front-end foi mais tranquilo, obviamente por conta da ajuda da IA. Mas, se fosse fazer do zero na mão, sendo que teria que estudar antes, esse site ainda não estaria de pé. Mas fica o aprendizado e o interesse de estudar Next.js e acabar virando Full-stack. O caminho está aí, falta trilhar.