Yᴏᴜʀ Pʀᴏᴅᴜᴄᴛ ʜᴇʀᴇ !
Ajoutez ici un lien vers votre entreprise ou votre projet : achetez un parrainage GitHub.
La logique du monde est antérieure à toute vérité et à tout mensonge.
— Ludwig Wittgenstein [1]
Une liste organisée de mensonges auxquels croient les programmeurs. Un mensonge est une idée que vous croyiez initialement être vraie , mais en réalité, il s'avère qu'elle est fausse .
Par exemple, une idée : une adresse e-mail valide contient exactement un caractère @
. Vous utiliserez donc cette règle pour implémenter votre logique de validation de champ de courrier électronique. Droite? Faux! La réalité est la suivante : les e-mails peuvent avoir plusieurs caractères @
. Par conséquent, votre implémentation devrait permettre cela. L’ idée initiale est un mensonge auquel vous croyez.
Les articles mensongers répertoriés ci-dessous contiennent une liste complète de ces fausses croyances dont vous devez être conscient, pour vous aider à devenir un meilleur programmeur.
Contenu
- Méta
- Arts
- Entreprise
- Crypto-monnaie
- Dates et heures
- Éducation
- E-mails
- Géographie
- Identité humaine
- Internationalisation
- Gestion
- Multimédia
- Réseaux
- Numéros de téléphone
- Adresses postales
- Science
- Société
- Génie logiciel
- Transport
- Typographie
- Jeux vidéo
- Internet
Méta
- Les programmeurs croient aux mensonges - Une brève liste de mensonges courants. Un excellent aperçu et une introduction rapide au monde des mensonges.
- Mensonges sur la programmation - Une liste humiliante et amusante sur la programmation et les programmeurs eux-mêmes.
- Mensonges sur les listes de mensonges - Méta-commentaire sur la façon dont ces mensonges ne devraient pas être traités.
Arts
- Mensonges sur la musique - Fausse hypothèse qui pourrait être formulée lors de la codification de la musique.
- Mensonges sur l’art – Idées fausses courantes sur l’art.
Entreprise
- Mensonges sur les achats en ligne – Couvre les prix, les devises et les stocks.
- Mensonges sur les prix – Couvre les devises, les montants et la localisation.
- Mensonges sur les IBAN – Les numéros de comptes bancaires internationaux ne sont pas internationaux.
- Mensonges sur l’économie – L’économie n’est ni simple ni rationnelle.
- Erreur de point décimal dans le système comptable d'Etsy - L'importance des types dans les logiciels de comptabilité : manquer le point décimal entraîne des surfacturations 100 fois supérieures.
- Vingt-cinq mille dollars d'argent fictif - Même erreur que ci-dessus sur Google Ads, ou le danger de séparer vos sous de vos dollars, où des coupons internes de 250 $ se sont transformés en 25 000 $. Mon conseil : débarrassez-vous des entiers et des flottants pour les valeurs monétaires. Utilisez des décimales. Ou revenez aux chaînes et analysez-les, ne validez pas.
- Les caractères
<
et >
dans les noms d'entreprise conduisent à des attaques XSS - Le Royaume-Uni permettant aux entreprises d'être enregistrées avec des caractères spéciaux, un pirate informatique les a exploités pour enregistrer "><SCRIPT SRC=MJT.XSS.HT></SCRIPT> LTD
, mais aussi ; DROP TABLE "COMPANIES";-- LTD
, BETTS & TWINE LTD
et SAFDASD & SFSAF ' SFDAASF" LTD
. - Minuties des noms d'entreprises - Comment les règles de l'État du Delaware et de l'IRS ne se recoupent pas.
- Définitions des devises CLDR - Les plages de dates de validité des devises se chevauchent en raison des révoltes, des invasions, des nouvelles constitutions et de la lenteur de l'adoption prévue.
-
tax
- Une bibliothèque de gestion fiscale PHP 5.4+.
Crypto-monnaie
- Mensonges sur Bitcoin – Une liste de perspectives erronées sur Bitcoin.
- Mensonges sur Ethereum – Idées fausses et pièges courants dans la programmation contractuelle.
Dates et heures
- Mensonges sur le temps - Article fondateur sur les dates et l'heure.
- Plus de mensonges sur le temps - Partie. 2 de l'article ci-dessus.
- Mensonges sur l'heure et les fuseaux horaires - Un autre s'attaque aux mensonges liés au temps, en mettant l'accent sur les fuseaux horaires.
- Critique des mensonges sur le temps – Reprend le premier article ci-dessus et fournit une explication de chaque mensonge, avec plus de contexte et de ressources externes.
- Mensonges sur l'heure Unix - Attention à la seconde intercalaire !
- Mensonges sur les fuseaux horaires - Présente quelques points intéressants concernant les cas extrêmes des transitions DST.
- Your Calendrical Fallacy Is Thinking… - Liste couvrant l'intercalation et l'influence culturelle, réalisée par une communauté de développeurs iOS et macOS.
- Base de données de fuseaux horaires : code et données qui représentent l'historique de l'heure locale pour de nombreux emplacements représentatifs à travers le monde.
- La longue et douloureuse histoire du temps – La plupart des particularités de la chronométrie peuvent trouver une explication dans l’histoire.
- Vous préconisez une réforme du calendrier – Votre idée ne fonctionnera pas. Cet article vous explique pourquoi.
- Vous souhaitez donc abolir les fuseaux horaires - L'abolition des fuseaux horaires peut sembler une bonne idée, mais il existe de nombreuses complications qui font que ce n'est pas tout à fait le cas.
- Le problème avec l'heure et les fuseaux horaires - Une vidéo expliquant pourquoi vous ne devriez jamais vous occuper des fuseaux horaires si vous pouvez l'aider.
- 26 000 $ Surcollecte par le ministère du Travail - La conséquence d'une mauvaise comptabilité calendaire.
- RFC-3339 vs ISO-8601 - Une liste géante de formats des deux normes, comment ils se chevauchent et des exemples concrets.
- ISO-8601,
YYYY
, yyyy
et pourquoi votre année peut être erronée - Le formatage des chaînes de date est difficile. - UTC est suffisant pour tout le monde, n'est-ce pas ? - Il existe des cas extrêmes concernant les dates et l'heure (en particulier UTC) auxquels vous n'avez probablement pas pensé.
- Le stockage UTC n'est pas une solution miracle - « Stocker simplement les dates en UTC » n'est pas toujours la bonne approche.
- Comment choisir entre UT1, TAI et UTC - Cela dépend de vos priorités entre les secondes SI, la synchronisation de la rotation de la Terre et l'évitement des secondes intercalaires.
- Pourquoi la soustraction de ces deux temps (en 1927) donne-t-elle un résultat étrange ? - La fameuse réponse de Stack Overflow sur les fuseaux horaires historiques compliqués et sur la manière dont les dates historiques peuvent être réinterprétées par les versions plus récentes du logiciel.
- Dates critiques et significatives - De l'an 2000 au débordement des secondes 32 bits de l'époque Unix, une liste de dates spéciales à surveiller en fonction du système.
- "Je vais dans une commune du Vermont et je ne traiterai d'aucune unité de temps inférieure à une saison." - Est-ce la note laissée sur son terminal par un ingénieur qui a quitté son poste dans les années 70, après trop d'efforts sur des problèmes de timing inférieurs à la seconde. Source : L'âme d'une nouvelle machine.
Éducation
- Mensonges que les étudiants en informatique croient (encore) après avoir obtenu leur diplôme - Une liste de choses (pas seulement) que les étudiants en informatique ont tendance à croire à tort et parfois de manière surprenante, même s'ils devraient (probablement) savoir mieux.
- Mythes postdoctoraux - «Beaucoup de choses sont dites, écrites et crues à propos des chercheurs postdoctoraux qui ne sont tout simplement pas vraies.»
E-mails
- Mensonges sur le courrier électronique - Sur les adresses, le contenu et la livraison.
- Je savais comment valider une adresse e-mail jusqu'à ce que je lise la RFC - Fournit des exemples complexes d'adresses e-mail valides insoupçonnées selon la RFC-822.
- Vous pensez donc pouvoir valider les adresses e-mail (FOSDEM 2018) - Présentation des adresses e-mail de pointe et pourquoi vous ne devriez pas utiliser d'expressions régulières pour les analyser.
- Votre logique de validation de courrier électronique est erronée - Un résumé des différentes choses surprenantes autorisées dans une adresse e-mail.
-
libvldmail
- Une bibliothèque qui implémente des vérifications basées sur RFC pour les adresses e-mail.
Géographie
- Mensonges sur la géographie - Prend des lieux, leurs noms et emplacements.
- Mensonges sur les cartes - Couvre les coordonnées, la projection et le SIG.
- Je déteste les systèmes de coordonnées - Un guide destiné aux praticiens géospatiaux sur le diagnostic et la résolution des problèmes courants liés aux systèmes de coordonnées.
- Top 5 des noms de lieux kanji les plus fous au Japon - « Il existe un groupe spécial de kanji qui est difficile à lire, même pour les Japonais : les noms de lieux. »
Identité humaine
- Mensonges sur les noms - L'article qui a tout déclenché.
- Mensonges sur les noms – Avec exemples – Une version revisitée de l’article ci-dessus, cette fois avec des explications détaillées.
- Mensonges sur la biométrie - Les empreintes digitales ne sont pas uniques.
- Mensonges sur les familles - On ne peut pas vraiment définir une famille avec des règles strictes.
- Mensonges sur le genre : #1 et #2 - Le genre fait partie de l'identité humaine et a ses propres subtilités.
- Mensonges à mon sujet - Questions à l'intersection des noms, du genre et de l'internationalisation.
- Mariage gay : la perspective de l'ingénierie des bases de données - Comment stocker un mariage dans une base de données tout en éliminant la plupart des mensonges sur le sexe, le nom et les relations.
- Noms personnels dans le monde – En quoi les noms des personnes diffèrent-ils à travers le monde et quelles sont les implications pour le Web ?
- XKCD #327 : Exploits d'une mère – Une vision amusante de la façon dont la mise en œuvre d'un mensonge peut conduire à des failles de sécurité.
- Bonjour, je suis M. Null. Mon nom me rend invisible pour les ordinateurs – Un exemple concret montrant comment la mise en œuvre d'un mensonge a un impact négatif sur la vie de quelqu'un.
- HL7 v3 RIM - Un modèle de données flexible pour représenter les noms humains.
- Apple iOS
NSPersonNameComponentsFormatter
- Représentations localisées des composants du nom d'une personne.
Internationalisation
Sur le codage des caractères, le formatage des chaînes, l'unicode et l'internationalisation.
- Mensonges sur la langue - Traduire un logiciel depuis l'anglais n'est pas aussi simple qu'il y paraît.
- Mensonges sur le texte brut - Le texte brut ne peut pas suffire, ce qui rend Unicode encore plus incroyable pour sa capacité à bien fonctionner.
- Mensonges sur le texte - Un sous-ensemble des mensonges présentés ci-dessus, illustrés par quelques exemples.
- Internationalis(z)ing Code - Une vidéo sur les éléments que vous devez garder à l'esprit lors de l'internationalisation de votre code.
- Minimum à connaître sur Unicode et les jeux de caractères - Une bonne introduction à l'Unicode, son contexte historique et ses origines, suivie d'un aperçu de son fonctionnement interne.
- Awesome Unicode - Une liste organisée de délicieuses informations, packages et ressources Unicode.
- Coins sombres d'Unicode - Unicode est vaste, voici les dragons.
- Arrêtons d'attribuer une signification aux points de code - Plonge plus profondément dans Unicode et dissipe les mythes sur les points de code.
- Idées fausses sur Unicode - Une collection de mensonges sur la casse, les encodages, la longueur des chaînes, etc.
- Briser nos hypothèses
Latin-1
- La plupart des programmeurs passent tellement de temps avec Latin-1
qu'ils oublient les bizarreries des scripts des autres. - Ode à une étiquette d'expédition - L'encodage des caractères est difficile, d'autant plus lorsque chaque couche brisée d'entrée de données ajoute sa propre touche.
- Échec de localisation : la température est difficile – Vous ne pouvez pas localiser les différences de température telles quelles.
- Données de test i18n - Compilation de données de noms internationales et diverses en termes réels pour les tests unitaires et l'assurance qualité.
- Grande liste de chaînes coquines - Un énorme corpus de chaînes qui ont une forte probabilité de causer des problèmes lorsqu'elles sont utilisées comme données saisies par l'utilisateur. Un ensemble indispensable de cas pratiques pour tester votre logiciel.
Gestion
- Mensonges sur les candidats à un emploi – Les hypothèses concernant les candidats à un emploi et leurs antécédents professionnels ne sont pas nécessairement vraies.
Multimédia
- Mensonges sur la vidéo - Couvrez tout : décodage et lecture vidéo, fichiers, mise à l'échelle des images, espaces colorimétriques et conversion, affichages et sous-titres.
- Cas extrêmes à prendre en compte lorsqu'il s'agit de musique - Les données des catalogues de musique regorgent de choses folles.
- Schéma de base de données MusicBrainz - Un projet et une base de données open source qui semblent avoir résolu la complexité de la gestion des catalogues musicaux.
- DDEX - La norme industrielle pour les métadonnées musicales, y compris l'archivage, l'enregistrement sonore, les rapports sur les ventes et l'utilisation, les redevances et les accords de licence.
- Apple Music Style Guide - Directives d'assurance qualité pour formater la musique, les illustrations et les métadonnées afin d'augmenter la visibilité.
Réseaux
- Mensonges sur les réseaux – Couvre TCP, DHCP, DNS, VLAN et IPv4/v6.
- Erreurs de l'informatique distribuée - Hypothèses que font invariablement les programmeurs novices dans les applications distribuées.
- Il existe plusieurs façons d'écrire une adresse IP : certaines parties de l'adresse sont facultatives, faites attention aux notations décimales et octales, et n'oubliez pas non plus IPv6.
- L'IDN est fou - Les caractères internationaux dans les noms de domaine signifient la prise en charge des homographes et des hétérographes.
-
hostname-validate
- Une tentative de validation des noms d'hôte en Python.
Numéros de téléphone
- Mensonges sur les numéros de téléphone – Couvre les numéros de téléphone, leur représentation et leur signification.
-
libphonenumber
- La bibliothèque Java, C++ et JavaScript commune de Google pour l'analyse, le formatage et la validation des numéros de téléphone internationaux. Également disponible pour C#, Objective-C, Python, Ruby et PHP.
Adresses postales
- Mensonges sur les adresses – Couvre les rues, les codes postaux, les bâtiments, les villes et les pays.
- Mensonges sur la résidence - Il ne s'agit pas seulement de l'adresse elle-même, mais aussi de la relation entre une personne et sa résidence.
- Lettre livrée sans nom ni adresse - Mensonge ultime sur les adresses postales : vous n'en avez pas besoin.
- UK Address Oddities - Bizarreries extraites d'une liste de la plupart des ventes de propriétés résidentielles en Angleterre et au Pays de Galles depuis 1995.
- Quelle est l’adresse la plus minimale possible au Royaume-Uni ? - L'astuce consiste à s'appuyer sur les codes postaux, qui au Royaume-Uni sont assez spécifiques et « identifient souvent un ou quelques bâtiments spécifiques, contrairement aux pays où un code postal représente un quartier entier ».
- L'ours avec son propre code postal - Smokey Bear a son propre code postal (
20252
) parce qu'il reçoit beaucoup de courrier. - Pourquoi le Costa Rica n'utilise-t-il pas de vraies adresses ? - Le Costaricain utilise un système d'adresses idiosyncratique qui repose sur des points de repère, l'histoire et un peu de conjectures.
- Regex et adresses postales - Pourquoi les expressions régulières et les adresses postales ne font pas bon ménage.
- Analyse du tristement célèbre CSV postal japonais : « J'ai vu de nombreuses horreurs, mais je n'ai jamais vu ce choix de formatage particulier ailleurs. »
- Normes d'adressage postal USPS : décrit à la fois les formats et le contenu d'adresse standardisés.
-
libaddressinput
: la bibliothèque C++ et Java commune de Google pour l'analyse, le formatage et la validation des adresses postales internationales. -
addressing
- Une bibliothèque d'adressage PHP 5.4+, alimentée par l'ensemble de données de Google. -
postal-address
- Module Python pour analyser, normaliser et restituer les adresses postales. -
address
- Accédez à la bibliothèque pour valider et formater les adresses à l'aide de l'ensemble de données de Google.
Science
- Mensonges sur les systèmes de mesure – Sur le travail avec les systèmes de mesure et la conversion entre eux.
Société
- Mensonges sur les nominations politiques - La conception de systèmes électoraux comporte ses propres astuces.
- Mensonges sur les femmes dans la technologie - Mythe sur les femmes dans les secteurs STEM (sciences, technologie, ingénierie, mathématiques).
Génie logiciel
- Mensonges sur les versions - Attribuer une identité à une version logicielle peut s'avérer plus difficile que prévu.
- Mensonges sur les systèmes de construction - Créer des logiciels est difficile. Créer un logiciel qui construit des logiciels est plus difficile.
- Mensonges sur un comportement non défini - Invoquer un comportement non défini peut provoquer n'importe quoi , pour une définition beaucoup plus large de « n'importe quoi » qu'on pourrait le penser.
- Mensonges sur les CSV - Bien que la RFC4180 existe, elle est loin d'être définitive et est largement ignorée.
- Mensonges sur les gestionnaires de packages - Couvre les packages et leurs gestionnaires.
- Mensonges sur les tests - Une tentative d'établir une liste de mensonges sur les tests.
- Mensonges sur la recherche - Pourquoi la recherche (y compris l'analyse, la tokenisation, la mise en évidence) est d'une complexité trompeuse.
- Ce que tout ingénieur logiciel devrait savoir sur la recherche – Un article mieux documenté sur la difficulté de mise en œuvre des moteurs de recherche.
- Mensonges sur la pagination - Pourquoi votre algorithme de pagination donne mal à la tête à quelqu'un (peut-être vous).
- Mensonges sur le ramassage des déchets - Idées fausses sur la prévisibilité et les performances du ramassage des déchets.
- Mythes sur les chemins de fichiers - La diversité des systèmes de fichiers et des systèmes d'exploitation rend les chemins de fichiers un peu plus difficiles qu'on pourrait le penser.
- Le monde étrange des chemins de fichiers Windows - « Sur n'importe quel système dérivé d'Unix, un chemin est une chose admirablement simple : s'il commence par un
/
, c'est un chemin. Ce n’est pas le cas sous Windows. - Mythes sur les caches de processeur : les idées fausses sur les caches conduisent souvent à de fausses affirmations, en particulier lorsqu'il s'agit de conditions de concurrence et de concurrence.
- Mythes sur
/dev/urandom
- Il y a certaines choses à propos de /dev/urandom
et /dev/random
qui sont répétées encore et encore. Pourtant, ils sont faux. - Faits sur les machines à états - Les machines à états sont souvent mal comprises et sous-utilisées.
- Salut! Je m'appelle… - Cette discussion aurait pu être qualifiée de mensonges sur les noms d'utilisateur (et autres identifiants) .
- Idées fausses populaires sur
mtime
- Partie d'un article expliquant pourquoi la comparaison mtime
d'un fichier pourrait être considérée comme dangereuse. - Règles de saisie semi-automatique - Pas de mensonges en soi , mais quand même une excellente liste de bonnes pratiques pour mettre en œuvre la saisie semi-automatique.
- Mathématiques à virgule flottante - « Votre langage n'est pas cassé, il fait des mathématiques à virgule flottante. (…) C'est pourquoi, le plus souvent,
0.1 + 0.2 != 0.3
.» - Le document yaml de l'enfer - YAML est plein d'une complexité obscure comme des nombres accidentels et des clés sans chaîne.
- Je suis sans cesse fasciné par les systèmes de marquage de contenu. Il existe des cas extrêmes, même dans les systèmes de marquage qui sont censés être simples.
- Mensonges sur la technologie quantique – Idées fausses courantes sur la technologie quantique et les ordinateurs.
- Mensonges sur les systèmes pilotés par les événements - Idées fausses sur les systèmes pilotés par les événements et la transmission des messages.
Transport
- Mensonges sur les voitures - Même quelque chose d'aussi courant que définir une voiture est semé d'embûches.
- Mensonges sur les plans des sièges des compagnies aériennes – Les plans des sièges des compagnies aériennes sont bien plus complexes que de simples rangées et colonnes de sièges.
- Le désordre exaspérant des codes d'aéroport - Le fait que plusieurs agences internationales et nationales tentent de concilier l'histoire, l'aspect pratique et la logistique fait que les codes suivent des règles obscures.
- Mon nom pose problème lors de toute réservation ! - Les anciens systèmes de réservation des compagnies aériennes considèrent le suffixe
MR
comme Mister
et le suppriment.
Typographie
- Mensonges sur les polices - Hypothèses sur la typographie sur le Web et dans les applications de bureau.
- Les programmeurs de vérités devraient connaître le cas - Un inverse complet du format des mensonges, sur le thème du cas (comme dans le texte en majuscules et en minuscules).
Jeux vidéo
- Le problème des portes – Toutes les choses que vous n’avez pas envisagé de mettre en œuvre pour vos portes dans les jeux.
Internet
- Mensonges sur HTML - « Le Web est beau. Le Web est moche. Le Web est étonnant. Une partie de cet attrait est le HTML, avec ses bizarreries historiques.
- Mensonges sur les API REST - Pièges à prendre en compte lors de la création et de la documentation des API.
- URLs : C'est compliqué… - Il y a beaucoup de composants dans une URL, et tous ont leur propre logique.
- La complexité cachée du téléchargement de favicons, expliquée dans plus de 15 cas Edge - Télécharger cette petite icône que vous voyez dans les onglets de votre navigateur devrait être un exercice simple. Cela s’est avéré beaucoup plus compliqué que vous ne le pensez. Soyez vigilant et ne rasez pas un Yak.
Contribuer
Vos contributions sont toujours les bienvenues ! Veuillez d'abord consulter les directives de contribution.
Notes de bas de page
Cette liste a gagné en popularité sur les réseaux sociaux au cours des dernières années. Voyez-le discuté et mentionné ailleurs.
L'image d'en-tête est basée sur une photo modifiée prise en février 2010 par Iza Bella, distribuée sous licence Creative Commons BY-SA 2.0 UK.
[1] : Carnets, 1914-1916 (Liveright, 2022) - source : page 14e. [↑]