Reflexion sur le développement en entreprise

J’aime le Java, inutile de passer par quatre chemins, j’aime cette technologie, la syntaxe est agréable, il existe beaucoup de développeurs, de librairies, d’outil sympa. On peut faire des trucs vachement cool comme charger des classes en ‘live’, utiliser l’introspection pour voire ce que contient les objets. Je passe sur d’autres trucs comme le fait que les programmes sont multi-plateformes et qu’on peut lancer ça via le web grâce à webstart.

En fait j’aimerai surtout parler de la manière de développer en Java, car bien développer n’est vraiment pas facile, il faut organiser son code, bien utiliser la ‘conception objet’. On a toujours des trucs à apprendre, j’avais déjà pris l’habitude de bien organiser mon code : faire des petites méthodes qui ne font pas grand choses mais qui le fond bien ; dans ces petites méthodes, les découper en quelques blocs de 4, 5 instuctions maximum séparées par un commentaire simple et compréhensible de quelques mots et une ligne vide.
Les commentaires sont vraiment importants, il faut que ça soit claire mais pas trop long pour avoir un aperçu très rapide des différentes actions de la méthode ; pour les explications plus verbeuses, c’est à dire une explication détaillée et complête, la javadoc (ou équivalent dans d’autres langages) est faite pour ça, ca n’a pas sa place dans le code lui-même.

Faire des méthodes légères bien documentées ne suffit pas, il faut aussi apprendre à les mettre dans les bonnes classes, lors de ma dernière formation, j’était fier de montrer à mon formateur une superbe interface graphique en swing pour un mini projet sur l’achat de livres. Il y avait un défaut de cette interface graphique, tout était dans la même classe, j’ai donc appris à séparer les différentes parties de l’interface graphique afin de faire différents objets réutilisables. Mon formateur était un boss, j’ai bien utilisé les interfaces pour bien séparer la partie métier de l’interface graphique.

J’aime bien lire et étudier des codes de programme bien écrit et bien conçu, et pas seulement en Java. Je trouve que c’est tout un art, Je trouve génial le fait d’apprendre de nouveau truc et de dire “Tiens ca serait génial d’utiliser tel outil/code/pattern pour mon projet”.

Seulement voilà, j’ai été ‘staffé’ (c’est un terme de mon entreprise) sur un projet en Visual Basic for application, après 2 semaines de formations Java, ca m’a fait un peu mal mais je suis resté confiant. Malgré quelques trucs pas top comme le non respect de la casse, on peut quand même faire des Modules de classe pour faire quelque chose qui se rapproche à de l’objet. On peut aussi respecter les rêgles de faire un code lisible et bien organisé.

En fait ce n’est pas trop Visual Basic le problème mais plutot les développeurs. La plupart des développeurs Java savent ce qu’ils font car Java est beaucoup moins facile d’accès que VB, il faut s’investir un minimum. en VB on trouve surtout des amateurs.
Et lorsque j’entreprend d’améliorer un code mal écrit qui ne respecte aucunes normes de nommage pour les variables et les fonctions, et que l’on me répond que faire pleins de fonctions s’est sympa mais que s’était plus lisible quand tout était dans la fonction main car on avait tout sur la main. Que simplifier les commentaires c’est pas top, c’est bien mieux quand 2 lignes sur 3 sont vertes pour bien expliquer au débutants que la boucle for sert à parcourir tout un tableau ; qu’il ne faut pas toucher au fonction d’un module de classe qui ne contient aucune propriété de classe ; que c’est mieux de passer à chaque appel d’une méthode de classe les même variables plutôt que de les sauvegarder dans une propriété ; et que de toute façon, ce fichier est comme il est et que il faut pas le toucher, j’ai la HAINE.

Je hais le Visual Basic, je hais les développeurs Visual Basic, je hais mon projet de merde, vivement que je me casse pour me donner à fond sur un projet dans un langage évolué, j’aimerai bien tomber sur un chef vachement pointilleux sur les commentaires, sur l’organisations du codes, sur le respect des rêgles de nommages et sur la documentation. Plus que 3 mois et je ne touche plus jamais à ce langage de ma vie (j’ai commencé hier).

PS: attention, ne pas prendre en compte les critiques sur VB pour VB.NET qui n’a rien à voir.

Comme tu dis c’est surtout un probleme de personnes qui ont une notion pas tres normale des « priorites » dans le developpement (tous langages confondus), mais aussi une difference de style de de culture de programmation (ou la c’est pas forcement un ‹ mal › a proprement parle, c’est juste plus adapte a ce qui se fait traditionellement en VB: du rad qui necessite pas d’etre super architecture). Si tu fais un peu l’effort y a quand meme des trucs a apprendre (et pourquoi pas sur ‹ l’over engineering › qui est un fleau). J’ai fait pas mal de VB plus jeune et tout n’est pas a jeter non plus :stuck_out_tongue: Cela dit ca me ferait chier aussi de re-faire 3 mois de VB donc je partage ta douleur aussi quand meme :stuck_out_tongue:

Bah, effectivement, le VB pour un codeur c’est pas idéal. Mais c’est quand même vachement pratique pour coder des petits truc ou des algos rapides sous excel…
Ce que je ne supporte pas, c’est les gens qui ne sont pas en mode explicite (cad que les variables ne doivent pas obligatoirement être déclarées). C’est illisible.

D’expérience, je dirais que si tu bosses toujours dans la même équipe mais sur un autre projet, il y a des chances pour que ce soit pas franchement mieux conçu que le programme en VBA même si le fait que ce soit du Java permet un peu de limiter la casse, et encore. En effet les gens qui codent mal en VB ont pas de raison de mieux coder en Java ou en C, quand on n’est pas soigneux, ça se ressent dans tous les langages qu’on utilise.

Sinon, un autre truc à savoir, c’est que souvent dans des boîtes qui sont pas éditirices de logiciels, on fait des petits projets “poubelles” et là, pas la peine de se prendre la tête à vouloir caser tous les designs patterns du GoF dans le code, ici ce qu’on cherche c’est juste à répondre à un petit besoin même si il arrive souvent que le bout de code soit utilisé en fait looongtemps et qu’il faille le maintenir, même si c’est chiant, je crois que ce genre de pratique est pas prête de disparaître.

L’idéal est d’être dans un pôle qui nous convient en l’occurence pour toi java (c’est ce qu’il y a dans ma ssii mais ça va sûrement voler en éclat suite à un changement de proprio on va dire).

Mais clairement, comme le dit cronofab, dans ton cas le langage n’est pas en cause. ça serait la même merde dans tout les projets avec ton staff. La seule diffèrence avec le VB c’est que c’est plus accessible donc les débutants, stagaires, moitié-informaticien moitié fonctionnels se font les dents dessus, sans parler des turn-overs avec 10 personnes dans la même année sur le même projet.

Quand je vois le plaisir et les efforts constants que tu veux faire pour bien programmer et progresser je pense qu’il ne faut pas te décourager mais au contraire te battre en permanence pour prouver que ta méthode est la meilleure et pourquoi. J’avais un chef de projet qui disait qu’il fallait savoir “perdre son temps” à bien faire pour en gagner plus tard.

C’est vraiment un combat de tout les jours mais attention dans les ssii on a tendance à plus regarder ton relationnel et les fonctionnalités de ton prog que le moyen et long terme (propreté du code, analyse, maintenabilité etc…) Entre un mec consciencieux et exigeant (râleur pour certains) et un mec sourire colgate qui programme comme un porc, béni oui oui aux clients c’est toujours le 2é qui aura le beau rôle.

PS: N’empêche que je fuis les projets VB,VBA,Access comme la peste. Je n’en ai fait qu’à mes débuts. Pas seulement à cause de la syntaxe mais surtout que ce sont des projets foireux (cf plus haut: le plus souvent VB=stagiaire, débutant, etc… non encadrés)

Le VB c’est bien quand tu veux tester des algorithmes, ou coder un truc rapide je trouve. J’ai un pote qui s’en est servi pour simuler des réseaux neuronaux par exemple, avec rendu graphique du résultat (objet “line”). Je m’en suis moi même servi quand j’étais plus jeune, pour créer des applications graphiques simpas pour mon collège, en peu de temps.

Cependant je n’aime pas la manière de coder en VB. Je préfère largement les langages comme le C par exemple.

Si ça t’intéresse, je connais un forum développeur VB (d’ailleurs beaucoup de monde doit connaitre):
http://www.vbfrance.com/
(je ne sais pas trop ce que ça vaut ça fait un bail que j’y suis plus allé, tu peux y trouver des forums, des exemples de codes sources en quantité industrielle).

Il existe aussi :
http://www.cppfrance.com/
etc… liens vers les autres langages sur le site.

Voilà !

Dans tous les cas le VB(.Net) n’est pas en cause. Sinon tu pourrais mettre le CSharp dans la même boite parce que a part la syntaxe pratiquement rien ne change (enfin si ya pas mal de trucs qui sont différent dans les fonctionnalités avancées, mais qui servent une fois tous les 15000 ans).

Tout est la faute du développeur. J’ai vu par exemple du code PHP super propre, et du code PHP (une horreur). J’aurais développé un peut plus mais je dois y aller là.

[edit]

Tiens je me relis et euh je trouve que j’ai un style d’écriture bizarre. Bon bref. Revenons à mon code PHP. Actuellement, je fais exactement la même chose que ZGoblin: je maintiens du code pas à moi. Et je peut vous garantir que c’est une horreur (il a été développé par une personne qui ne connaissait pas le PHP); le code est entièrement linéaire. Aucune fonction, aucune identation. 75% du code ne sert a rien. Il ya des concepts dans le code que j’ai toujorus du mal a saisir:

$i = 1; if($i==1) { blablabla blablabla &nbsp; &nbsp; bla; echo '<HTML>...\" + $i + \"'; }
(syntaxe et tabulations respectées)

Pourtant rien n’empêche de coder proprement en PHP. Avec des classes, des spécialisations, etc.

Le mauvais code vient du développeur, jamais du langage. J’ai déjà eu l’occasion de voir du VB très propre. Oui c’était du code pondu par des vrais développeurs pas des wannabe devs.

Ps: à ma décharge j’ai aussi commencé à mal programmer en VB. Ce n’est que plus tard, quand j’ai fait l’IUT que j’ai appris à faire du code relativement propre. Le code propre ca vient avec l’expérience :P.

D’une manière générale, le fait que les SSII et leurs clients préfèrent un gars qui a un bon “relationnel” à un bon programmeur montre bien la tendance de l’époque, et reflète surtout le vide derrière la surface d’une bonne partie des projets informatiques…

(cette obsession de la propreté est extrêmement intéressante.)

Range ta chambre.

(j’avais fait un gros post plein d’opinions, mais un peu comme gloppy je traverse une phase de ras la cahouète)

Cette obsession de l’informaticien de tout changer à chaque fois qu’il arrive sur un nouveau projet est aussi bien chiante.
On est toujours le con d’un autre.

Les enfants (kaneloon, good_boy) vous vous égarez :stuck_out_tongue: Lorsqu’on lit le message initial de ZGoblin et les autres qui suivent il n’est nullement question de propreté à 200% ni de réécrire tout pour la beauté du geste.

Il est question, si je ne m’abuse, d’un projet fait en dépit du bon sens qui n’est pas qu’un peu mal écrit mais qui comporte, semble-t-il, tout ce qu’il ne faut pas faire dans un projet.

Entre un projet moyen récupérable, et donc maintenable, et un projet fait en dépit du bon sens il y a un gouffre. J’ai vu perso 2 projets (l’un en VB l’autre en Delphi) où le code était tellement imbitable que chaque intervenant précédent n’avait pas trouvé de mieux que de faire une sur-fonction qui masquait le reste plutôt que d’assainir le code.

Si je comprends bien ZGoblin il ne s’agit pas de retomber dans un thread récent qui versait dans le troll pour savoir s’il fallait faire ou non du code 200% clean par fanatisme.

En tout cas quelle que soit la vision que chacun a là dessus, si on estime que l’on a une meilleure méthode c’est à nous de se battre pour l’argumenter et la mettre en oeuvre. Et VB dans l’absolu n’est pas responsable des mauvaises méthodes, c’est le management qui l’est.

Le truc que me fait peur dans ce que raconte ZGoblin c’est le fait d’être embauché pour faire du Java et d’être balancé sur du VB.

Je ne connaît pas le contexte donc je vais peut-être dire des conneries mais à ta place ZG je ferais très attention à ce qui va se passer à la fin de ces trois mois. J’ai déjà vu des collègues se faire avoir comme ça: “c’est juste pour 3 mois”, résultat, un an et demi plus tard tu es encore à te faire chier sur des tâches qui n’ont rien à voir avec le développement java dont tu rêvais à l’origine.

Je ne te conseillerai pas de te barrer maintenant tout de suite, mais le danger quand on commence à faire des tâches pourries c’est qu’on se forme sur le sujet et donc que l’on sera plus qualifié qu’un autre lorsque la prochaine tâche pourrie arrivera: “tiens on va faire faire ce module à Machin, il a déjà bossé sur un truc similaire en VB”.

Ben les gars… Bienvenue dans les SSII.

De tous les projets auxquels j’ai participé, il n’y en a eu qu’un qui s’est bien “codé”. Parce que j’y étais tout seul et que j’avais pas vraiment de deadline.

Sinon le problème c’est souvent pour 2 raisons :

  • Le codeur n’est pas un codeur (je peux vous montrer une base de données développée avec nom composé (espace, accents), sans relations. Crise de rire assurée).

  • Le codeur est sous tension à cause de délais utopiques. De cahier des charges qui apparaissent soudainement vers la mise en recette avec des chapitres nouveaux, sans compter les cahiers des charges qui n’existent pas…

Je suis en train de reprendre le code de quelqu’un en ce moment. Ben c’est le foutoir. Un peu comme l’exemple de Cil. Mais je lui en veut pas du tout. J’ai appris comment c’était fait le projet et je comprend pourquoi y a des bout de code sans queue ni tête. Le mec était parti pour coder une autoroute. On lui a demandé de mettre des feux un peu partout.

Maintenant, c’est vrai que le VB n’a pas une bonne image auprès des développeurs. De là à dire que c’est un outil du diable en personne, c’est un pas que j’aimerais bien franchir par contre…

Vous avez fini de vous plaindre !

Ca fait huit ans que je bosse en COBOL/CICS/DB2 …

Tiens! au sujet des ssii: on vient de m’apprendre que je devrais faire une mission à l’autre bout de la France en 3 mois renouvellable. :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue:

Je caches ma joie. :stuck_out_tongue:

[quote name=‹ M_le_maudit › date=’ 21 Sep 2005, 14:08’]Vous avez fini de vous plaindre !

Ca fait huit ans que je bosse en COBOL/CICS/DB2 …
[right][post=« 399846 »]<{POST_SNAPBACK}>[/post][/right][/quote]
d’où ton nick :stuck_out_tongue:

Ce poste me rappelle moi il y a 2 ans :stuck_out_tongue: Bon comme le disait Xas, il y a aussi le cas ou le codeur a des conditions de merde, comme par exemple, dans ma boîte :stuck_out_tongue: Quand je suis arrivé, j’ai été plus que choqué de voir la gueule du code ou de la base, mais après presque 2 ans dans la boîte, je fais comme tout le monde: du crade. Des délais improbables associés avec des cahiers des charges quasi inexistants et en permanente évolution sont deux conditions qui font que l’on code salement. Et c’est comme ça parce que ceux ne sont jamais les programmeurs qui ont leur mot à dire, mais des gens qui n’y connaissent rien et qui se croient trop forts pour avoir besoin d’écouter nos conseils et nos avis.

Donc maintenant, je ne me permet vraiment plus de critiquer le boulot des autres

C’est pour cela que le top c’est d’être dans des projets de A à Z où tu n’a pas de maintenance.
Et je dois dire que malgré des conditions agitées quelques fois, je me suis très souvent arrangé pour être en forfait et/ou en projet.

edit: c’est clair que de dire “basta dans 3 mois plus de VB” c’est un leurre. Tu peux être renouvellé indéfiniment et en plus après ça te colle une étiquette dont tu ne peux plus te défaire. Donc il faut leur rappeler régulièrement que tu veux faire des projets au forfait en java (par exemple).

[quote name=‹ bluelambda › date=’ 20 Sep 2005, 12:35’]Cependant je n’aime pas la manière de coder en VB. Je préfère largement les langages comme le C par exemple.
[right][post=« 399626 »]<{POST_SNAPBACK}>[/post][/right][/quote]
Heu, y a peu etre autre chose entre le C et le VB quand meme :stuck_out_tongue:

J’aimerai rectifier quelques détails, je ne critique pas vraiment le faite que le code soit pas très propre, ca je comprend parfaitement, je critique surtout la réaction que le mec à eu lorsque je lui ai montré ma version nettoyée en disant que mon code était moins lisible.
Maintenant, je peux me tromper, peut-être que finalement, ce mec à raison et mon style d’écriture ne correspond pas à tout le monde.

Pour Twin, j’ai déjà pensé à ce que tu me dis et franchement, je vais vraiment faire en sorte que ce TAF ne traine pas sur la longeur, et une fois terminé, je vais bien préciser à l’équipe de staffing que JE NE VEUX PLUS DE VB.

Y’a un autre sujet que j’aimerai abordé : les horraires, j’ai été embauché sur une base de 36,8h par semaines soit 7h30 par jour et un peut moins le vendredi. J’allucine comment certains ne respecte pas ces horraires, ils n’ont pas la même base que moi mais lorsque je l’ai entend dire qu’ils arrivent vers 9h00 le matin pour repartir à 19h00 tout les soirs, le calculs est vite fait pour savoir qu’ils font bien plus d’heures que ne l’autorise la loi.
Moi, il est hors de question que je fasse ces même horraires de fou. Les remarques ne me font pas peur, j’en ai rien à foutre, par contre, c’est vrai que le fait d’être pénaliser dans mes promotions me fait peur. J’espère que ces promotions seront jugés sur mon travail et non pas sur le temps que je passe au boulot.