4 points par GN⁺ 2025-08-08 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Cette liste partage des connaissances maudites acquises lors du développement d'Immich.
  • Elle rassemble des problèmes inattendus découverts dans des environnements logiciels et d'infrastructure variés.
  • Elle mentionne des problèmes par outil et langage, comme les métadonnées EXIF, la gestion des espaces YAML, PostgreSQL, etc.
  • Certains problèmes sont directement liés à la sécurité, à la compatibilité des plateformes et aux dépendances open source.
  • L'accent est mis sur des cas concrets et leurs causes auxquels les développeurs doivent faire attention.

Aperçu

L'équipe de développement d'Immich rend publiques les connaissances maudites qu'elle a acquises au cours du projet et qu'elle ne souhaite plus jamais revoir. Il s'agit d'une liste de pièges et de problèmes inattendus rencontrés en service réel au fil de l'utilisation de divers outils, langages et plateformes pendant le développement et l'exploitation.

Liste des connaissances maudites

  • 4 juin 2025

    • Les Actions de Zitadel sont une fonctionnalité maudite.
    • La fonction de scripting personnalisé fournie par Zitadel est basée sur un moteur JS, mais elle ne prend pas en charge les groupes de capture nommés des expressions régulières, ce qui en limite l'usage.
  • 30 mai 2025

    • Microsoft Entra prend en charge le PKCE, mais ne l'indique pas dans le document de découverte OpenID.
    • Cette absence de documentation provoque un problème où une fonctionnalité existante n'est pas détectée côté client.
  • 5 mai 2025

    • Les informations de taille dans les métadonnées EXIF d'une image peuvent être différentes de la taille réelle de l'image.
    • Cet écart peut générer des erreurs lors des opérations de recadrage et de redimensionnement.
  • 1 avril 2025

    • Le traitement des espaces en YAML se comporte souvent différemment des attentes.
    • Il est sensible au formatage et peut être interprété d'une manière inattendue.
  • 20 septembre 2024

    • Les fichiers cachés de Windows ne s'ouvrent pas avec le drapeau w.
    • Associé à l'option hide dot files de SMB, cela augmente la confusion lors de l'exploration et du traitement des fichiers.
  • 7 août 2024

    • Les scripts Bash peuvent rencontrer des problèmes de retour chariot (CRLF).
    • Lorsque Git convertit automatiquement les LF en CRLF au checkout, cela peut provoquer des erreurs d'exécution.
  • 7 août 2024

    • Dans Cloudflare Workers, fetch applique http par défaut même si https est explicitement indiqué.
    • Cela peut entraîner des problèmes réseau, comme des boucles de redirection.
  • 21 juillet 2024

    • Le partage GPS sur mobile supprime silencieusement les données GPS des images si l'application n'a pas l'autorisation de localisation.
    • Cela affecte la précision des services géolocalisés et la confidentialité.
  • 3 juillet 2024

    • NOTIFY de PostgreSQL ne fonctionne qu'au sein d'une transaction.
    • Lorsqu'il est utilisé avec l'adapter postgres de socket.io, cela déclenche des écritures WAL toutes les 5 secondes, ce qui peut générer une charge.
  • 3 juillet 2024

    • Chaque exécution d'un script npm envoie une requête HTTP vers le registre npm.
    • Les checks de santé via script sont donc inefficaces.
  • 28 juin 2024

    • Certains membres de la communauté JavaScript ont imposé l'ajout de plus de 50 dépendances pour des raisons de rétrocompatibilité.
    • Tous ces paquets sont maintenus par la même personne.
  • 25 juin 2024

    • Les implémentations de bcrypt n'utilisent que les 72 premiers octets d'une chaîne.
    • Les caractères suivants étant ignorés, les mots de passe longs deviennent inefficaces.
  • 31 janvier 2024

    • L'objet Date de JavaScript indexe l'année et le jour à partir de 1, et le mois à partir de 0.
    • C'est une structure facile à confondre.
  • 9 janvier 2024

    • Avant Node.js v20.8, dans un projet CommonJS utilisant l'option --experimental-vm-modules, lorsqu'un module ES charge à nouveau un module CommonJS,
      • un segfault peut provoquer un crash de Node.js.
  • 28 décembre 2023

    • La limite de paramètres de PostgreSQL est de 65 535.
    • Cela crée des limites de performance pour les insertions en masse de jeux de données volumineux.
  • 26 juin 2023

    • Certaines Web API ne sont disponibles que dans des Secure Contexts.
    • Par exemple, l'API Clipboard et similaires ne fonctionnent qu'en https ou sur un environnement localhost.
  • 23 février 2023

    • L'implémentation remove de TypeORM affecte directement la valeur d'entrée.
    • Elle supprime même la propriété id de l'objet source.

Conclusion

Ces connaissances maudites représentent des pièges fréquemment rencontrés dans des contextes réels de développement et d'exploitation de services. Les développeurs gagnent à identifier en amont les contraintes et les problèmes cachés de chaque outil, langage et environnement, afin de faciliter la résolution efficace des incidents et un développement de services plus fiable.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.