Commentaires dans le code comme moyen d'expression de soi

Récemment, en choisissant un framework pas très populaire, je suis tombé sur le morceau de code suivant.


Parce que les robots tueurs adorent les licornes!

Je ne sais pas quelle pensée et dans quelle humeur l’auteur voulait transmettre, mais cela m’a amené à penser: à quelle fréquence utilisons-nous des commentaires pas tout à fait pour leur destination? Quelques trouvailles sous la coupe.

  // Il n'est pas recommandé de lire si vous n'aimez pas les messages du vendredi mardi. 

Il existe différentes opinions sur le sujet des commentaires de code. Il y a des adeptes du code explicite. Selon ce concept, les variables et les fonctions sont nommées de manière aussi complète que possible, ce qui élimine dans de nombreux cas la nécessité d'écrire des commentaires supplémentaires. D'autres préfèrent décrire chaque étape dans les commentaires pour s'aider eux-mêmes et ceux qui devront plus tard travailler avec le code. Certains écrivent des constructions à 3 étages sur une seule ligne et ne les commentent pas du tout (il a lui-même péché, je l'avoue). Mais il y a d'autres cas.

Triste confession


Avez-vous déjà écrit quelque chose que vous détestiez vous-même? Avez-vous compris que le faire est mauvais et moche, mais les circonstances (exigences des clients, par exemple) étaient plus fortes que vous? Une partie de cela s'est produite.

  // Ce code est nul, tu le sais et je le sais.
 // Continuez et appelez-moi un idiot plus tard. 

Ce code est dégoûtant, vous le savez et je le sais. Continuez, puis appelez-moi un idiot.

  // Je ne suis pas responsable de ce code.
 // Ils m'ont fait l'écrire, contre ma volonté. 

Je ne suis pas responsable de ce code. J'ai été obligé d'écrire ceci contre ma volonté.

  // Je dois trouver un meilleur emploi 

Il est temps de trouver un meilleur emploi

  // Je dédie tout ce code, tout mon travail, à ma femme, Darlene, qui 
 // dois subvenir à mes besoins, à ceux de nos trois enfants et au chien 
 // rendu public. 

Je dédie tout ce code, tout mon travail, à ma femme Darlene, qui devra s'occuper de moi, de nos trois enfants et du chien, dès qu'elle verra le jour.

Et parfois, les normes d'entreprise pour écrire du code vous obligent à faire quelque chose qui ne se prête pas à la logique interne du développeur.

  const int TEN = 10;  // Comme si la valeur de 10 allait fluctuer ... 

Comme si la valeur 10 pouvait varier ...

Je me suis rappelé le cas lorsque j'ai obtenu un petit travail sur un répertoire sur freelance. Le système d'interaction a été construit de manière complexe, ce qui n'a donné lieu à aucun retour direct du client. Et il fallait faire «comme sur la photo car le client l'a approuvé», bien que ce soit laid du point de vue du code. Les avez-vous rencontrés également?

Avertissements et connaissances perdues


Il arrive qu'il vaut mieux ne pas interférer avec du code. N'essayez pas de refactoriser, d'optimiser ou de l'améliorer autrement.

 / * * Vous pensez peut-être savoir ce que fait le code suivant.  * Mais ce n'est pas le cas.  Faites-moi confiance.  * Jouez avec, et vous passerez de nombreuses nuits blanches * à maudire le moment où vous pensiez que vous seriez assez intelligent * pour "optimiser" le code ci-dessous.  * Maintenant, fermez ce fichier et allez jouer avec autre chose.  * / 

Il peut vous sembler que vous savez ce que fait le code suivant. Ce n'est pas le cas. Faites-moi confiance. Allez-y et vous passerez de nombreuses nuits blanches à maudire le moment où vous pensiez être assez intelligent pour «l'optimiser». Maintenant, fermez ce fichier et allez jouer avec autre chose.

  / *
  * Cher mainteneur
  *
  * Une fois que vous avez fini d'essayer «d'optimiser» cette routine,
  * et vous avez réalisé quelle terrible erreur c'était,
  * veuillez incrémenter le compteur suivant comme avertissement
  * au prochain gars.
  *
  * total_hours_wasted_here = 73
  * / 

Cher accompagnateur! Lorsque vous avez terminé votre tentative «d'optimiser» ce processus et réalisé à quel point cette erreur était monstrueuse, augmentez le compteur suivant comme un avertissement pour ceux qui viennent pour vous.

  // Magie.  Ne touchez pas. 

La magie. Ne touchez pas.

  / *
 après des heures de consultation du tome de google
 j'ai découvert que par la volonté de forces inconnues
 sans la ligne ci-dessous, IE7 estime que 6px = 12px
 * /
 taille de police: 0px; 

Après des heures de consultation et de recherche sur Google, j'ai constaté que par la volonté de forces inconnues sans ligne ultérieure, IE7 estime que 6px = 12px

  // Généré automatiquement, ne modifiez PAS.  Toutes les modifications seront annulées. 

Généré automatiquement, NE PAS modifier. Toutes les modifications seront ignorées.

Ce dernier, soit dit en passant, est un exemple intéressant d'intelligence dans la lutte contre les tentatives d'entrer dans votre code. Ils disent que ça marche.

Douleur et désespoir


Avez-vous dû travailler avec quelque chose qui vous a plongé dans un désespoir absolu? Le développeur de la visionneuse d'images Xee a rencontré l'analyse du format PSD. Mais avec qui un programmeur peut-il partager ses souffrances, sinon avec un commentaire? Ci-dessous est une traduction, l'original est actuellement sur le github .

Ici, je voudrais m'arrêter un instant et parler du format Adobe PSD. Le PSD n'est pas un bon format. Le PSD n'est même pas un mauvais format. Pour l'appeler, ce serait une insulte à d'autres mauvais formats, tels que PCX ou JPEG. Non, PSD est un format monstrueux. Quelques semaines de travail sur ce code ont élevé ma haine du PSD au niveau d'un feu féroce, brûlant de la passion féroce d'un million de soleils.

S'il y a deux façons de faire quelque chose, le PSD utilise les deux à différents endroits. De plus, il créera trois autres façons qui n'auraient pas pu arriver à une personne sensée et les utilisera en même temps. PSD prend l'incohérence au niveau de l'art. Pourquoi, par exemple, il a décidé que ces blocs devraient être alignés sur quatre octets, et cet alignement ne devrait pas être inclus dans la taille? D'autres blocs à d'autres endroits ne s'alignent pas ou incluent un alignement de taille. Ici, cependant, il n'est pas inclus. N'importe laquelle de ces trois façons ferait l'affaire. Un format raisonnable se concentrerait sur un seul. PSD, bien sûr, utilise les trois et d'autres.

Essayer d'extraire des données d'un fichier PSD, c'est comme chercher quelque chose dans le grenier de votre vieil oncle excentrique décédé des suites de l'attaque d'un requin d'eau douce frénétique à son 58e anniversaire. Le dernier détail n'est pas particulièrement significatif pour le récit, mais pour le moment je passe beaucoup de temps à présenter des destins intéressants pour les personnes responsables de ce Rub Goldberg parmi les formats de fichiers.

Plus tôt, j'ai essayé d'obtenir les dernières spécifications de format PSD. Pour ce faire, j'ai dû me tourner vers eux pour avoir la permission de me tourner vers eux pour envisager la possibilité de m'envoyer ce volume sacré. Le processus comprenait la télécopie de copies de certains documents, éventuellement signés de sang. La seule explication qui me vient à l'esprit est la complexité du processus - ils ont extrêmement honte de la création de cette abomination. Naturellement, je n'ai pas pu suivre cette procédure, mais si je le pouvais, j'imprimerais tout sur une seule page de cette spécification et les graverais. Si c'était en mon pouvoir, je collecterais toutes les copies de la spécification dans le monde et les enverrais une fusée directement au Soleil.

Le PSD n'est pas mon format préféré.

Je n'ai pas atteint un tel niveau de haine, mais je me suis souvenu de la façon dont mes yeux saignaient en lisant de la documentation pour l'API de certains développeurs nationaux.

Façon de vous divertir


Nous savons à quel point le travail d'un programmeur est ennuyeux et solitaire. Parce que nous jouons tous parfois la même personne dans KVN. La façon la plus sûre de le faire est bien sûr dans les commentaires, mais il y a des options.

  #Initialiseur d'arbre de Noël  
     toConnect = []  
     toRead = []  
     toWrite = []   
     primes = []  
     réponses = {}  
     restant = {} 

Initialiseur d'arbre de Noël

  ///////////////////////////////////////// c'est une ligne bien commentée 

Ligne bien commentée

  Répéter
     ...
 Jusqu'à (JesusChristsReturn) 'Pas sûr 

Dogme religieux en doute ...

  // si jamais je revois ça, je vais commencer à apporter des armes à feu au travail 

Encore une fois, je le verrai - je vais commencer à porter des armes pour travailler

  // Abandonnez tout espoir, vous qui entrez au-delà de ce point 

Abandonnez tout espoir de venir ici

  // ivre, réparer plus tard 

Correction d'ivresse plus tard

Blague comme une blague, et une fois que je me suis laissé une note similaire sur un autocollant sur le moniteur: "Sober up - check XXX, YYY classes" ...

  catch (Exception e) {
  // qui s'en soucie?
 } 

Qui s'en soucie?

  // Je ne comprends pas comment fonctionne le bit suivant, mais cela a fonctionné dans le programme à partir duquel je l'ai volé. 

Je ne sais pas comment cette pièce fonctionne, mais elle a fonctionné dans le programme, d'où je l'ai volée.

  // Ce code a été écrit par un génie alors n'essayez pas de le comprendre avec
 // votre minuscule petit cerveau. 

Ce code est écrit par un génie. N'essayez pas de le comprendre avec votre cerveau miniature.

  double pénétration;  // aïe 

Et vraiment, oh ...

  // Ajouté parce que le patron a changé d'avis: 20020111,20020501,20020820, ...
 // Commenté parce que le patron a changé d'avis: 20020201,20020614,20020908, ... 

Ajouté depuis le patron a changé d'avis ... commenté, car le patron a changé d'avis ...

  // Haleluya je peux rentrer chez moi! 

Aleluia, je peux rentrer chez moi

Je suis rentré chez moi. Et vous nous dites quel a été votre commentaire le plus mémorable ou amusant.

Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en le recommandant à vos amis, une réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher? Nous avons seulement 2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

Source: https://habr.com/ru/post/fr420091/


All Articles