Quelqu’un aurait-il la gentillesse d’expliquer plus en détail cette blague : « Il y a deux problèmes difficiles en informatique : nommer les choses, l’invalidation du cache et les erreurs off-by-1 » ?


La question écrit deux mais mentionne en fait trois choses.

A propos, voici pourquoi je pense que ces 3 sont difficiles en informatique:

  • Nommer les choses : Toute personne qui a déjà nommé un bébé, un animal de compagnie, un blog, un personnage, une voiture ou quoi que ce soit connaît cette lutte. Nous voulons que notre code soit beau et propre, mais nous voulons aussi que le nommage en lui soit facile et court. Nous voulons qu'il soit pratique, afin qu'il puisse transmettre l'intention ou le travail de la variable, de la fonction ou de tout autre élément. Parce que vous avez peut-être écrit un programme complexe hier soir et vous ne vous souvenez plus de ce qu'il fait :/
  • Invalidation du cache : Les caches sont utilisés pour mettre à disposition une copie locale afin de rendre la navigation peu coûteuse. MAIS, les données originales changent, et le moment du changement est indéterministe. Nous voulons conserver l'ancienne copie, mais nous devons la modifier, mais nous ne savons pas quand... :/
  • L'erreur Off-by-1 : Communément appelé Off-by-1 bug ou OB1 erreur, se produit lorsque l'itération fonctionne une fois beaucoup trop en avant ou une fois beaucoup trop moins. C'est un équivalent de l'erreur commune que nous faisons en comptant les années, les jours, ou quelque chose de similaire. Cela se produit lorsque le programmeur met "<=" au lieu de "<" ou leur équivalent avec plus que. Et puis, je reviens à mes leçons de première année et je compte les pommes que j'ai après avoir donné à mon ami 5 sur 11. :blush:

_Zircoz