Conhecimento amaldiçoado
(immich.app)- Compartilhamento de uma lista de conhecimentos amaldiçoados adquiridos durante o desenvolvimento do Immich
- Organização de problemas inesperados encontrados em diferentes ambientes de software e infraestrutura
- Menciona questões de ferramentas e linguagens, incluindo metadados EXIF, tratamento de espaços em branco em YAML, PostgreSQL
- Alguns problemas se conectam diretamente à segurança, compatibilidade de plataforma e dependências de código aberto
- Foca em casos reais e causas que desenvolvedores devem ficar atentos
Visão geral
O time de desenvolvimento do Immich divulgou uma lista de conhecimentos amaldiçoados que não quer mais precisar reaprender durante o projeto. Trata-se de uma relação de armadilhas e problemas inesperados encontrados diretamente em diversas ferramentas, linguagens e plataformas durante o desenvolvimento e operação de serviços reais.
Lista de conhecimento amaldiçoado
-
4 de junho de 2025
- O Actions do Zitadel é uma funcionalidade amaldiçoada
- O recurso de script personalizado oferecido pelo Zitadel é baseado no motor JS, mas mostra limitações por não suportar grupos de captura nomeada em regex
-
30 de maio de 2025
- O Microsoft Entra suporta PKCE, mas não documenta isso no documento de descoberta do OpenID
- Isso causa um problema em que o recurso existente não é detectado no cliente
-
5 de maio de 2025
- As informações de tamanho nos metadados EXIF das imagens podem ser diferentes da imagem real
- Essa diferença pode causar erros em operações de recorte e redimensionamento
-
1 de abril de 2025
- O tratamento de espaços em YAML frequentemente se comporta de modo diferente do esperado
- Por ser sensível à formatação, há risco de interpretação de conteúdo diferente da intenção
-
20 de setembro de 2024
- Arquivos ocultos do Windows não são abertos com a flag "w"
- Combinado com a opção "hide dot files" do SMB, isso aumenta bastante a confusão no listagem e no processamento de arquivos
-
7 de agosto de 2024
- Em scripts Bash, é possível haver problema de carriage return (CRLF)
- Se o Git converter automaticamente LF para CRLF no checkout, isso pode causar erros na execução do script
-
7 de agosto de 2024
- No Cloudflare Workers, o fetch aplica http por padrão mesmo quando o https é especificado
- Isso pode causar problemas de rede, como loops de redirecionamento
-
21 de julho de 2024
- O compartilhamento de GPS em mobile remove silenciosamente os dados de GPS das imagens quando o app não tem permissão de localização
- Impacta a precisão de serviços baseados em localização e a privacidade
-
3 de julho de 2024
- O NOTIFY do PostgreSQL funciona apenas dentro de transações
- Ao usar com socket.io e postgres-adapter, ocorre gravação de WAL a cada 5 segundos, gerando carga
-
3 de julho de 2024
- Cada vez que um script npm é executado, é enviada uma solicitação HTTP ao registro npm
- Portanto, realizar health check via script é ineficiente
-
28 de junho de 2024
- Alguns usuários da comunidade JavaScript forçaram a inclusão de cerca de 50 dependências de pacotes sob o pretexto de retrocompatibilidade
- Todas essas dependências são mantidas pelo mesmo usuário
-
25 de junho de 2024
- A implementação do bcrypt usa apenas os primeiros 72 bytes da string
- Os caracteres após isso são ignorados, tornando senhas longas sem efeito
-
31 de janeiro de 2024
- O objeto Date do JavaScript indexa ano e dia a partir de 1, e o mês a partir de 0
- É uma estrutura fácil de causar confusão
-
9 de janeiro de 2024
- Em projetos CommonJS usando a opção --experimental-vm-modules do Node.js anterior à v20.8,
- ocorre segfault ao carregar novamente módulos CommonJS em módulos ES, fazendo o Node.js crashar
- Em projetos CommonJS usando a opção --experimental-vm-modules do Node.js anterior à v20.8,
-
28 de dezembro de 2023
- O limite de parâmetros do PostgreSQL é 65.535
- Isso gera limitação de desempenho em inserções em massa com grandes conjuntos de dados
-
26 de junho de 2023
- Há APIs da web disponíveis apenas em Secure Contexts
- Especificamente, APIs como a Clipboard funcionam apenas em ambientes https ou localhost
-
23 de fevereiro de 2023
- A implementação do remove do TypeORM afeta os dados de entrada
- Remove também a propriedade id do objeto original
Conclusão
Esse tipo de conhecimento amaldiçoado aparece com frequência em cenários reais de desenvolvimento e operação de serviços. Para desenvolvedores, mapear previamente as restrições e problemas ocultos por ferramenta, linguagem e ambiente ajuda na resolução eficiente de problemas e no desenvolvimento de serviços mais estáveis.
Ainda não há comentários.