[JAVA] Une fois que tu le vois, c'est un putain de code

Aperçu

Inspiré de l'article de @ rana_kualu, Je vais écrire sur le putain de code le plus dangereux que j'aie jamais vu.

(Article original) · Le code source le plus sale que j'ai jamais vu - Qiita https://qiita.com/rana_kualu/items/2f3c40642836c11f5ddc

Putain de code

① typedef

Code de reproduction.c


typedef void coid;
typedef void boid;

En regardant le clavier, [** c ] [ v ] [ b **] sont alignés. Autrement dit, cela signifie que ** les fautes de frappe sont couvertes en redéfinissant le nom du modèle **. Comme prévu, je pensais que ce n'était ** pas un programme **.

② Moins 10 000

Le nom de la variable est approprié pour le moment.

Code de reproduction.php


$date0 = '20201122'; //La chaîne de caractères provient de l'écran avec AAAAMMJJ
$date1 = $date0 -10000;
$year = substr($date1, 0, 4);
$month = substr($date1, 4, 2);
$day   = substr($date1, 6, 2);

Quel est le processus de soustraction de 10 000? Un collègue (à ce moment-là) a trouvé ce code à partir d'un mécanisme en cours de maintenance et s'est embêté avec lui. Dans le traitement de la date, 10 000 est mauvais. .. .. Heureusement, la personne qui l'a écrit était à côté de moi, alors je lui ai posé la question directement.

Calculé il y a un an

:thinking::thinking::thinking::thinking::thinking:

: étonné: je vois! : rage: Réécrire! : punch_tone2:

Heureusement, la personne qui l'a écrit était un ami (camarade de classe) du lycée, alors je l'ai frappé pour le moment.

Pour la manipulation de date, il existe une fonction de manipulation de date, alors utilisons-la. (Je veux dire, je suis une personne de terrain statique, donc mes genoux tremblaient lorsque j'utilisais la conversion dynamique.)

③ Takoikapanikku

Code de reproduction.java


boolean checkNumber (str) {
  boolean isNumber = !NumberUtils.isNumber(str);
  if(isNumber) {
    //Traitement des messages d'erreur
  }
  return !isNumber;
}

Tsukkomi

La valeur logique (valeur vraie / fausse) est foirée.

<La description a été supprimée>

Les valeurs logiques sont très déroutantes, soyez donc prudent lorsque vous les manipulez. J'essaye de rendre le positif vrai et le négatif faux.

④ (Ajout) Le pouvoir d'inclure!

Je m'en suis souvenu quand j'ai vu @ fujitanozomu exemple de code, donc je vais l'ajouter.

Code de reproduction.c


int tbl[] = {
  #include <list.csv>
};

Voici comment l'utiliser comme ça. .. .. Un gros travail parce que vous comprenez le processus de compilation! ?? Je pensais.

La macro-culture est devenue une mauvaise loi fondamentale dans les langages de programmation ... (Bien que certaines fonctionnalités restent dans les langues ultérieures)

c'est tout

Je veux me consacrer tous les jours pour ne pas écrire de code de merde.

Postscript ① 21/06/2020 (dim.)

J'ai peur car le nombre de vues est plus grand que prévu. La partie qui est un peu en colère est privée et semble être un problème, alors Certaines descriptions ont été supprimées.

Postscript ② 21/06/2020 (dim.)

④ a été ajouté. Je viens de m'en souvenir (sourire amer)

Postscript ③ 22/06/2020 (dim.)

J'ai reçu des informations de @sakuro. Il semble y avoir un format de fichier qui était à l'origine censé être inclus. ・ XPM --Wikipedia https://ja.wikipedia.org/wiki/XPM XPM lui-même semble être le corps du code source du langage C.

Recommended Posts

Une fois que tu le vois, c'est un putain de code
Jusqu'à ce que vous exécutiez l'exemple de code Apache Velocity
Site où vous pouvez voir la relation de version de spring (?)
Publier le code de coupon utilisé sur le point de terminaison spécifié
Résumez les mots que vous avez appris
Jusqu'à ce que le code soit exécuté
Lors de la lecture du code source
Java Convertit des codes de caractères disparates en un même code de caractère à la fois