Le responsable qualité de mon équipe va trop aimer ça. Si le code vivra éternellement c'est parce que ça va tuer le responsable qualité pour pouvoir survivre.
Le responsable qualité de mon équipe va trop aimer ça. Si le code vivra éternellement c'est parce que ça va tuer le responsable qualité pour pouvoir survivre.
T'en fais pas il doit probablement avoir une liste semblable pour s'assurer que "sa" qualité ait une durée de vie au moins aussi longue que ton code :-)
Bonjour,
Ne trouvez-vous pas étonnant que les logiciels propriétaires contiennent 80 % de sources libres ?
Pourtant ce sont les sociétés privées qui sont les plus nombreuses, largement.
Si vous voulez que vos sources durent longtemps, partagez les si vous le pouvez.
La question est aussi de savoir si votre entreprise possède réellement les sources qu'elle utilise.
Aussi le DRA ou RAD permet de migrer. Donc les composants qui viennent de DELPHI 2 peuvent toujours migrer vers LAZARUS ou DELPHI XE8, s'ils sont utiles.
Aussi les vieilles sources PHP 1 ou PHP 3 sont plus intéressantes pour la rapidité que les sources PHP objet.
Les vieux artistes de l'informatique savent que leurs logiciels valent le coût.
Bon courage !
J'aurais dû lire un tel post plus tôt. Ainsi, je serais passé pour un génie en classe.
Ça me fait penser à ça :
http://www.commitstrip.com/fr/2015/08/04/the-blob-ject/
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!
C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)
Je suis déjà dehors.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 #include <stdio.h> char *T="IeJKLMaYQCE]jbZRskc[SldU^V\\X\\|/_<[<:90!\"$434-./2>]s",K[3][1000],*F,x,A,*M[2],*J,r[4],*g,N,Y,*Q,W,*k,q,D; X(){ r[r[r[3]=M[1-(x&1)][*r=W,1],2]=*Q+2,1]=x+1+Y,*g++=((((x&7)-1)>>1)-1)?*r:r[x>>3],(++x<*r)&&X(); } E(){ A||X(x=0,g=J),x=7&(*T>>A*3),J[(x[F]-W-x)^A*7]=Q[x&3]^A*(*M)[2+(x&1)],g=J+((x[k]-W)^A*7)-A,g[1]=(*M)[*g=M[T+=A,1][x&1],x&1],(A^=1)&&(E(),J+=W); } l(){ E(--q&&l()); } B(){ *J&&B((D=*J,Q[2]<D&&D<k[1]&&(*g++=1),!(D-W&&D-9&&D-10&&D-13)&&(!*r&&(*g++=0),*r=1)||64<D&&D<91&&(*r=0,*g++=D-63)||D>=97&&D<123&&(*r=0,*g++=D-95)||!(D-k[3])&&(*r=0,*g++=12)||D>k[3]&&D<=k[1]-1&&(*r=0,*g++=D-47),J++)); } j(){ putchar(A); } b(){ (j(A=(*K)[D*W+r[2]*Y+x]),++x<Y)&&b(); } t(){ (j((b(D=q[g],x=0),A=W)),++q<(*(r+1)<Y?*(r+1):Y))&&t(); } R(){ (A=(t(q=0),'\n'),j(),++r[2]<N)&&R(); } O(){ (j((r[2]=0,R())),r[1]-=q)&&O(g-=-q); } C(){ (J=gets(K[1]))&&C((B(g=K[2]),*r=!(!*r&&(*g++=0)),(*r)[r]=g-K[2],g=K[2],r[1]&&O())); ; } main(){ C((l((J=(A=0)[K],A[M]=(F=(k=(M[!A]=(Q=T+(q=(Y=(W=32)-(N=4))))+N)+2)+7)+7)),Y=N<<(*r=!-A))); ; }
Je vais encore me prendre des downvotes de fanboys, mais niveau code atroce qui vit éternellement il y a tout le cœur de Wordpress.
Gérant la compatibilité ascendante depuis ses débuts, tout son code a 10 ans de retard sur les bonnes pratiques actuelles. Quasiment pas de construction objet, des fonctions de centaines de lignes, une hiérarchie de fichiers chaotique ...
Il paraît qu'un type voulant développer un connecteur PDO pour les interactions avec la base de données a finalement laissé tomber devant l'ampleur de la tâche.
Là où je suis en ce moment, ils ont fait mieux : ils ont REFAIT un ordonnanceur...
Qui a besoin de Talend qui tourne en permance, d'une base Oracle et de tout plein de requêtes chelou pour savoir si quelque chose doit se déclencher...
Tout ça pour au final lancer de simples commandes Shell bien entendu...
Du coup, à la question initiale posée dans ce thread, j'ai la réponse absolue
Recréer quelque chose qui existe déjà en surcompliquant le problème et si possible en le liant au plus d'éléments possibles. Même si c'est "bien" fait, ça sera de toute façon la merde à utiliser/faire évoluer/corriger.
Ne jamais chercher des solutions simples et existantes, toujours "innover".
Je ne suis pas mort, j'ai du travail !
J'adore ce genre de discussion. Je sais que c'est pas bien mais je pense qu'il faut encourager les mauvaises pratiques:
-on aurait pas de boulot
-rien à raconter à ses collègues sur les trucs immondes qu'on a vu
-personne dont on pourrait dire du mal (stagiaire, manager, collègue ou autre victime)
-pas de discussions sur l'art du développement
-pas d'auto-satisfaction quand on dit "quel abruti a pondu ce code?" et qu'on se rend compte que c'est nous(on ne met pas de commentaires,les commentaires c'est mal)
-plus d'aura mystérieuse du mec qui comprend mais pas nous
-plus de prises de têtes donc plus de réflexion donc baisse de niveau donc on devient bête et paresseux
Entendu dans plein d'entreprises : "Tant que ça marche..."
Je ne suis pas mort, j'ai du travail !
Je crois que j'applique déjà tout ça, plus ou moins inconsciemment
Ben... toutes les merdes ont été faites à un moment ou à un autre, tu sais...
Le truc, c'est que souvent, "tant que ça marche", ça veut dire qu'on a une bouse immonde comme existant, et qu'il est hors de question de recommencer from scratch quelque chose de mieux fait. Il faut absolument maintenir et faire évoluer la grosse bouse. Et bien merci du cadeau !
Je sais, et c'est bien pour ça que je dis que parfois on est content quand le vieux truc tout pourri dont on a hérité fonctionne !
Il ne faut pas oublier que quand tu récupères un truc tout naze, ça veut souvent dire que les utilisateurs ont subit pas mal d'anomalie, merdes en tout genres ou autres plantages sévères qui leur ont potentiellement déjà fait perdre pas mal de temps et d'argent.
Chat échaudé craint l'eau froide, tu peux être sûr que ceux qui ont subit ne veulent SURTOUT PLUS y toucher maintenant que ça marche. Trop peur de retomber dans la spirale infernale des défauts qui une fois corrigés font apparaître d'autres merdes... Ou du redéveloppement from scratch qui ne reproduit pas les défaut de la version d'avant mais en apporte de nouveaux
Oui, je parle de mon expérience avec une V1 toute pourrie mais qui tombait en marche et une V2 qui n'arrivait pas à tourner sans tout casser... J'ai du négocier longtemps avant d'avoir le droit de remettre les trucs droit au fur et à mesure.
Donc c'est pour ça, parfois, le fait que ça marche, c'est déjà bien !
Je ne suis pas mort, j'ai du travail !
Si c'est pour rester iso périmètre, où est l'intérêt ?
Il faut penser pragmatique.
C'est peut être une merde, mais ça fait le job et surtout, depuis le temps que ça tourne, c'est rentabiliser depuis longtemps.
Ta nouvelle appli toute belle, elle a un coup à amortir et période de stabilisation qui peut être relativement longue celons la complexité.
Prend exemple sur une bonne vielle bagnole.
Elle est moche et le moteur fatigue.
Elle tombe en panne de temps en temps mais comme elle est simplissime de mécanique, elle se répare facilement et pour pas chère.
Mieux encore, tu fais l'entretient toi-même.
Changer de voiture est-ce vraiment nécessaire ?
Non seulement la voiture neuve coûte cher mais en plus, y a tellement d’électronique dedans que tu ne peux plus faire l'entretient toi-même et en plus, cette même électronique est source de panne qui coûte ultra cher à réparer (avec une durée de garantie ultra courte).
La décote est rapide.
Le moteur qui consomme très peu est super fragile et nécessite plein de filtres qu'il faut changer régulièrement et bien évidemment, coûtent un bras à chaque fois.
Bref, quand tu poses le tout sur une feuille de compta, tu remarques que ta lubie de nouvelle voiture sera amortie dans 10 ans par rapport à ta vieille bouse qui roule tjrs.
Légitiment, tu te poses la question de savoir si cet argent ne serait pas mieux investit dans un nouvel outil qui va booster ta productivité asap au lieu de remplacer l'existant.
True Story !
http://www.liberation.fr/economie/20...gueule_1387207Volkswagen, premier constructeur automobile mondial, est accusé d’avoir mis en place un système de fraude des contrôles de la pollution. La firme aurait équipé ses véhicules américains d’un logiciel permettant de fausser les mesures.
Il y a quelques temps j'ai dû reprendre une application extérieure, libre, et l'adapter pour nos règles internes. Genre "bouse immonde", je n'ai jamais vu pire. Refaire une appli neuve aurait été un gain de temps, mais il fallait "que ça marche" comme la démo. Sauf que côté Big Ball of Mud, c'était gratiné : génération de requêtes SQL à la volée, le tout dans des fonctions très longues mélangeant allègrement la page Web, le traitement métier et les accès à la base (Ah, les joies de PHP/MySQL qui ont permis d'utiliser des fonctions ultraspéciques et totalement importables...). Rien que séparer ces requêtes pour les coller dans du simple PDO était une quête dantesque. Et je n'oublie pas les dizaines de requêtes là où 2-3 suffisaient. Tout pour planter le serveur (en pleine démo, bien sûr) avant refonte de la cave au grenier.
Moralité : certains langages permettent de coder vraiment salement... Avis aux amateurs.
Variante : "Celui qui a perdu sa femme viendra pas la chercher ici"
Le bordel auto-entretenu est parfois perçu comme une méthode pour se rendre indispensable. J'ai vu des spécialistes de la chose (la bonne nouvelle c'est qu'ils ont fini par prendre la lourde quand quelqu'un a estimé que remettre leur boxon en ordre serait moins cher que de continuer à le subir)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager