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

[DÚVIDA] - Até que ponto posso não saber o que está acontecendo num projeto

Estudo e prático programação há 3 anos, sempre tentando criar projetoa novos e voltados a problemas reais (e não, eu nunca fiz uma pokédex, ou um clone do facebook), e por ter como passatempo escrever livros, decidi criar de bobeira um editor de texto voltado para escritores (mais para fins didáticos do que realmente lançar um "novo" produto no mercado)

Como comecei pelo frontend (focando especificamente só no layout, deixando questões de segurança para quando tiver o backend), decidi usar next.js + typescript + tailwind

Porém, eu queria que o site tivesse uma opção pro usuário poder escolher que idioma ele quer que a página esteja (pt, en, etc.), e após uma série de pesquisas vi que a lib next-intl poderia me ajudar nisso. Li sua documentação, testei no meu projeto e de cara não deu certo. Pesquisei vídeos sobre ela no YouTube, vi o passo-a-passo de um indiano (que fazia algumas poucas coisas de diferente da documentação), e funcionou de primeira no meu projeto.

Após commitar essa nova feat, eu comecei a ter o seguinte pensamento: "essa lib está funcionando como eu queria, mas eu não faço ideia de como ela realmente funciona. Isso é algo ruim?"

Pois, mesmo que eu não seja o desenvolvedor mais experiente do mundo em next.js, typescript etailwind, eu tenho uma noção de pelo menos 50% de como eles funcionam, o que seus comandos realmente fazem por de trás dos panos quando eu rodo o projeto, ou quando gero um build, etc. Isso já é o suficiente pra me dar uma leve segurança caso ocorra um erro na minha aplicação. Mas isso não aconteceu com o next-intl

Mesmo lendo sua documentação e vendo as explicações do vídeo que fez meu projeto funcionar, eu ainda sinto que não tenho o mínimo de conhecimento necessário sobre uma ferramenta que está praticamente em todas as páginas do meu projeto.

Por isso gostaria de saber se é comum quando você é um desenvolvedor pleno ou sênior, ter partes do seu projeto onde você não faz a mínima ideia de como aquilo realmente funciona, ou pelo menos como minimamente funciona. E o que você normalmente faz nessas situações, exemplo continuar usando a ferramenta e só aceitar que você não tem poder real sobre aquele pedaço do seu projeto, ou você inicialmente faz isso mas logo depois parte numa jornada de entender o que está acontecendo ali.

Carregando publicação patrocinada...
2

Bom dia, acredito que vai muito mais de você do que outros aspectos, um exemplo muito especifico, é o meu caso, eu como desenvolvedor tenho a pessima mania de estudar a arquitetura do projeto, e, por que ele foi feito de X maneira, pois gosto de fazer as coisas com entendimento do assunto e um objetivo final. Por exemplo, eu gosto de saber pq certas decisões foram tomadas, isso me ajuda a clarear as ideias e afins. Agora se você é uma pessoa que faz por fazer e se sente confortavel desta forma, não creio que você como desenvolvedor pleno/senior precise saber a fundo como uma lib especifica funciona, mas precisa ter uma noção sim da regra de negócio, pois o produto gira em torno disso. Acredito que se qualquer dev saber a base do sistema e a regra de negócio, já está 90% do caminho andado, o resto vai se ajustando. No geral, você não precisa decorar com uma função está implementada, ou o por que foi feito de X forma e não Y, mas você deve ter o conhecimento do contexto que está e da arquitetura que foi feita, a partir disso você já tem um norte para onde ir.

1

Interessante, só fiquei realmente curioso o do porque você considera sua mania de estudar a arquitetura de um projeto como péssima?

2
2

Vou tentar colaborar com 1 centavo aqui, com minha opiniao que nao é la aquelas coisas.
Quando se utiliza uma lib, é importante saber o comportamento dela dado diferentes entradas e qual o comportamento esperado quando vario esses parametros de entrada e quais as saidas que essa lib produz nos mais diferentes cenarios, é importantissimo que voce entenda o porquê de estar utilizando a lib, e os problemas que a mesma resolve.

Um exemplo bobo seria uma lib que faz uma soma simples, passando dois numeros inteiros a soma dos dois numeros é retornada, mas caso cargas d'agua o sistema que estou integrando informe uma string por conta de descuidos na tipagem ou alguma operacao anterior que gerou uma string ao inves de um int, o que aconteceria com o sistema como um todo? Alem disso, a soma está sendo gerada de forma eficiente?

Na correria do dia-a-dia nao da pra ficar entrando nos detalhes minuciosos de implementacao de cada lib que utilizamos e importamos, mas é muito importante saber o comportamento geral, contrato de entrada e saida, cenarios de borda, perfomance, entre outros fatores da biblioteca utilizada.

2

Entendi, então o "melhor" seria se contentar em pelo menos entender o que essa lib faz e retorna, do que realmente entender a fundo como e porque.

Essa minha dúvida começou porque pra esse lib funcionar no meu projeto eu tive que criar praticamente uns 6 arquivos diferentes que pegasse na URL qual idioma o usuário deseja, procurar no meu projeto um arquivo JSON que tivesse o nome do idioma escolhido, e gerar o conteúdo da página com o que está escrito nesse JSON

Então eu tenho uma ideia geral de como está funcionando, mas quando eu vou realmente tentar entender cada comando ou function nesses 6 arquivos, eu não entendo tudo o que está acontecendo. Por isso esse questionamento.

Muito obrigado pela sua opinião!