Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis !
Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
Dans un programme tournant sur tous les sites d'une grande administration nationale, j'ai trouvé le code suivant :

if (x < y) {
   (appel d'une fonction entièrement vide)
}
else {
   (appel d'une autre fonction)
}

Je commence à comprendre pourquoi ils paient très cher des prestataires pour des compétences informatiques qu'ils sont supposés avoir en interne. PEBKAC.
PEBKAC #6058 proposé par Jam le 06/11/2012 | 14 commentaires | 👍🏽 👎🏽 +107
Attention à ne pas juger trop vite: il peut y avoir des cas où la fonction vide peut être suchargée, ce qui peut s'avérer utile dans certains processus. ;-)
Commentaire #64715 écrit par Y-Phil le 06/11/2012 à 12h51 | 👍🏽 👎🏽
Ils peuvent avoir la compétence en interne, mais un chef a du dire que le prestataire était forcément plus compétent que les interne, parce que bien plus cher payé !
Commentaire #64717 écrit par djul le 06/11/2012 à 13h13 | 👍🏽 👎🏽
Peut-être que :
1) Initialement, la fonction n'était pas vide.
2) Suite à une évol, la fonction est devenue inutile. Par souci de simplicité les appels sont laissés (pour avoir le moins de sources impactés possible) et le contenu de la fonction est supprimé (ou mis en commentaire et supprimé plus tard lors d'un nettoyage de code).

C'est sûr que ce n'est pas propre au final, mais ce genre de raisonnement peut se défendre, surtout si les prestataires facturent au nombre de sources impactés.
Commentaire #64723 écrit par Shirluban le 06/11/2012 à 13h29 | 👍🏽 👎🏽
j'aimerai bien voir à quoi ressemble ton code jam, je suis sur qu'on peut faire des tas de PEBKAC.
Commentaire #64724 écrit par marcel le 06/11/2012 à 13h31 | 👍🏽 👎🏽
A mon avis en fouillant le code de n'importe quel dev' tu dois pouvoir faire des tas de PEBKAC :)

....

....

Sauf le mien bien entendu :p
Commentaire #64734 écrit par Shadam le 06/11/2012 à 15h00 | 👍🏽 👎🏽
J'ai également du mal à voir le PEBKAC ici .. Comme dit précédemment, la fonction a pu avoir une utilité qui ne se présente plus, ou le développeur a anticipé une future évolution (traitement de cette éventualité).
Sans compter que s'il s'agit de gros projets, il est fréquent que des fonctions soient modélisées même s'il elles n'ont pas d'utilité. Mais pour conserver la cohérence modèle-code, on laisse l'appel.
Commentaire #64735 écrit par iZo le 06/11/2012 à 15h17 | 👍🏽 👎🏽
C'est franchement pas aussi dégueulasse que les commentaires à coup de if(1 == 2) ou if(true == false) que j'ai pu voir :)
Commentaire #64737 écrit par iFrancois le 06/11/2012 à 15h23 | 👍🏽 👎🏽
Déjà Richelieu disait : "Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre."
Commentaire #64739 écrit par Tharkun le 06/11/2012 à 15h36 | 👍🏽 👎🏽
Perso, j'ai expliqué à un copain que:
if (x<y) {
goto suite;
} else {
foo();
bar();
blah();
}
suite:

était plus élégant ainsi:
if (x>=y) {
foo();
bar();
blah();
}

Le pire, est qu'il m'a fallu une bonne heure pour le convaincre.
Commentaire #64743 écrit par Eric le 06/11/2012 à 16h32 | 👍🏽 👎🏽
Dans une librairie utilisée par de nombreuses administrations dans de nombreux pays, en Java, il y a un cas d'erreur où la lib fait System.exit();
Quand la librairie est utilisée dans un application server JEE, le serveur JEE complet meurt en 3 secondes. Bravo.
Commentaire #64744 écrit par Eric le 06/11/2012 à 16h34 | 👍🏽 👎🏽
Hein ? Ton serveur JEE n'exécute pas tes applis sous le contrôle d'un SecurityManager ? PEBKAC*2 !

Pour ceux qui ne connaissent pas, le principe du SecurityManager et de lever une exception lorsqu'une opération interdite est tentée. Résultat : l'appel au System.exit() échoue (ainsi que toute la pile d'appel jusqu'au prochain catch), et le serveur ne s'arrête pas. Au pire tu perds ton appli, pas ton serveur.
Commentaire #64761 écrit par Acné le 06/11/2012 à 17h59 | 👍🏽 👎🏽
C'est quoi le rapport avec le PEBKAC ?
Commentaire #64763 écrit par BSK le 06/11/2012 à 18h05 | 👍🏽 👎🏽
Je suppose qu'il sous-entendait qu'il y a des PEBKAC partout, même dans Java, ce que pour ma part je ne trouve pas très étonnant </troll>
Commentaire #64803 écrit par neemzy le 07/11/2012 à 09h13 | 👍🏽 👎🏽
J'ai vu plus "élégant"... Un camarade a effectué un stage au sein d'une célèbre entreprise de télécommunications, stage durant lequel il a vu quelque chose qu'il s'est empressé de partager tellement c'était beau :

if(i == 0){
i = 1 ;
}else{
i++ ;
}

Ca c'est du code efficace, clair et bien factorisé...
Commentaire #64908 écrit par iPlusPlus le 07/11/2012 à 16h19 | 👍🏽 👎🏽