Divers

RÉINVENTER LA ROUE OU PAS ?

D

Mercredi 7 juin 2017

Mis à jour le mardi 3 octobre 2017

Réinventer la roue ou pas ?

Plus jeune développeur et méfiant de n'importe quels scripts étrangers, il m'était hors de question de reprendre un script déjà existant pour l'incorporer dans mes applications.
Puis avec le temps et la sagesse qui vient avec, j'ai de plus en plus accepté le fait d'avoir des scripts étrangers dont je ne regarde pas le code dans mes applications.
Ensuite, à chacun de mes développements, je ne pouvais m'empêcher de regarder ce qui existait déjà comme librairies, modules, bundles ou autres. Voulant bien faire et suivant les conseils qu'on trouve sur internet, je m'efforcais à ne pas réinventer la roue et à utiliser des scripts, librairies, modules et bundles existants.
Des fois, je passais plus de temps à configurer et à comprendre le script que si je l'aurais recoder moi même. C'était le cas pour le FOSUserBundle de Symfony avec lequel je voulais faire des choses qui sortent à peine de l'ordinaire. C'est à ce moment que je me suis posé ces questions :
Finalement, ne vaut-il mieux pas recoder des scripts soit même pour en avoir le total contrôle et la totale compréhension ?
Réécrire un script existant à sa sauce, est-ce vraiment réinventer la roue et une mauvaise pratique ?

Je n'ai pas pu m'empêcher de passer des heures à chercher des avis de développeurs compétents sur le sujet en arrêtant totalement tout ce que je faisais à côté pendant une bonne dizaine de jours.
Je vais tenter d'expliquer mon point de vue et rassembler tous les éléments pertinents que j'ai trouvé sur internet.


Mon point de vue final

Finalement, mon point de vue façonné par les expériences que j'ai eu et quelques articles pertinents que j'ai lu est le suivant :
Pour de petits modules aux fonctions bien précices et bien cernées, il vaut mieux reprendre l'existant :
Par exemple, si on veut faire une coloration syntaxique de code en HTML, cela ne sert à rien d'essayer de créer son propre script. On perdra beaucoup de temps sans obtenir de résultat comparable à ce qui existe déjà. Il est des scripts comme Highlight.js, Prism ou Mark.js qui le font bien et qui ne font rien d'autres. Ces scripts cernent bien le besoin et ne divaguent pas plus loin.

Pour des modules un peu plus conséquents, ou dans un contexte professionnel :
Il vaut mieux réécrire ses propres scripts, d'une part, car on en aura le total contrôle et la totale compréhension, et d'autres part, car ça fait plus professionnel d'avoir ses propres bibliothèques.
Exemple : Pour un espace membre sous Symfony, on conseillera souvent le fameux FOSUserBundle, sauf qu'il fait beaucoup de chose dont on aura pas besoin, et il y a beaucoup de chose qu'il ne fait pas dont on a besoin. On le cerne pas vraiment, il gère les droits, les formulaires de connexion d'inscription, mais on ne peut pas crée plusieurs formulaires, on peut étendre ces classes mais il faut faire un copier/coller de ses classes déjà existantes au préalable. Bref, pour faire des choses qui sortent à peine de l'ordinaire, ça devient vite compliqué.

Je reste à l'écoute d'autres avis, mais après de nombreuses recherches et de nombreux questionnement, je garde pour l'instant fermement cet avis.



Une erreur ? une question ? une critique ? une faute ? un conseil ? ou tout simplement un merci ?

Lâche ton commentaire