Hey! Tudo bem?
Em desenvolvimento web, existem algumas práticas de codificação, arquitetura ou design que, apesar de serem soluções comumente utilizadas, resultam em consequências negativas, como código difícil de manter, baixa performance, falta de segurança ou escalabilidade limitada. São os chamados antipatterns ou antipadrões, e eles podem aparecer por erros de julgamento, falta de conhecimento ou tentativas de atalhos. Por isso, selecionamos artigos para te ajudar a reconhecê-los e evitá-los.
Você também vê como quebrar um projeto em tarefas, como configurar um ambiente de desenvolvimento Elixir com Nix flakes, como abordar um problema de reduce em Ruby, a possibilidade de unificar queries relacionais e buscas vetoriais em Postgres com pgvecto.rs 0.2 e como fazer uma análise de métricas do GitLab com SQLite e Grafana.
Boa leitura!
ANTIPATTERNS
Visão geral de antipatterns
Esse artigo explica o que são os antipatterns, trazendo diversos exemplos de soluções comuns, mas ineficazes, além de discutir sobre a importância de adotar práticas de programação sólidas e evitar armadilhas que possam comprometer a qualidade e o sucesso dos projetos de software.
Como detectar e evitar antipatterns
Nesse artigo, você descobre como identificar sinais de alerta e aplicar boas práticas de engenharia de software para evitar armadilhas comuns. Também encontra sugestões de ferramentas e técnicas para lidar com antipadrões a partir da observabilidade no processo de desenvolvimento.
Top 10 micro front-end antipatterns
Micro front-end é um padrão análogo a uma abordagem de microsserviços que permite construir o front-end de aplicações a partir de fragmentos diferentes. Esse artigo mostra as 10 práticas comuns que podem levar a problemas de manutenção, desempenho e escalabilidade ao implementar arquiteturas de micro front-ends.
CAMPUSCODERS INDICAM
Quebrando um projeto em tarefas
Esse artigo aborda a importância de decompor projetos em listas de tarefas bem definidas, ou seja, dividir tarefas complexas em tarefas menores e mais gerenciáveis. Ele destaca os benefícios dessa abordagem para aumentar a eficiência e reduzir a sobrecarga cognitiva, além de explorar estratégias para alcançar esse objetivo.
Configurando um ambiente de desenvolvimento Elixir com Nix flakes
Esse artigo apresenta um guia para configurar um ambiente de desenvolvimento Elixir usando Nix flakes, uma ferramenta para gerenciamento de pacotes e ambientes. Veja os benefícios de usá-la para controlar dependências, além de instruções detalhadas sobre como configurar um ambiente consistente e reproduzível.
Como abordar um problema de reduce
Reduce é uma ferramenta do Ruby para dimensionar um método que combina 2 itens em um método que combina n itens. Esse artigo apresenta uma abordagem simplificada para resolver problemas de agregação de dados usando o método educe.
Unificando queries relacionais e buscas vetoriais em Postgres com pgvecto.rs 0.2
O projeto PGVectors visa unificar consultas relacionais e pesquisa vetorial em PostgreSQL, proporcionando uma maneira eficiente de executar consultas que combinam características de ambos os tipos de dados. Esse artigo discute a integração de índices de pesquisa vetorial em PostgreSQL e como isso pode ser utilizado para consultas mais complexas que envolvem tanto dados relacionais quanto vetoriais com a versão 0.2 do projeto.
Análise de métricas do GitLab com SQLite e Grafana
Esse tutorial explica como mergulhar profundamente nas métricas do GitLab usando SQLite e Grafana. Ele ensina a coletar, armazenar e visualizar os dados de desempenho, permitindo às pessoas usuárias monitorar e otimizar suas instâncias do GitLab.
Campuscoders que contribuíram com a curadoria da semana: André Benjamim, Ederson de Lima, Otávio Lins e Paulo Rodrigues 💚