Réinventer le chemin… pas la roue

Réinventer le chemin… pas la roue (le 20 mai 2013)

En matière d'intégration, j'entends souvent chez les débutants (et même les moins débutants) la réflexion suivante :

Pourquoi réinventer la roue ? Y a qu'à utiliser tel framework/tutoriel/utilitaire/etc.

La réflexion n'est pas idiote, loin de là : déjà dans un contexte de production, il est possible d'être amené à faire des choix qui favorisent la rapidité. Aussi, il peut être utile de disposer d'outils qui font le sale boulot, de s'inspirer d'autres choses, de s'appuyer sur une base, etc.

Moi-même, je ne fais pas exception : mon « nano-framework » CSS RÖCSSTI s'inspire et reprend des éléments d'autres projets (comme KNACSS), c'est même écrit dessus.

Néanmoins, un point me chagrine dans cette approche : éviter de réinventer la roue est une chose intelligente, néanmoins cela va vous dispenser du chemin parcouru (par la roue si j'ose dire). Plus gênant, cela peut vous priver des chemins de traverse pendant que vous parcourez ce chemin.

Quand j'ai commencé à intégrer – mode vieux con –, disons-le net, il fallait tout inventer : la documentation était quasi-inexistante, l'intégration était le parent pauvre du Web, etc. Du coup, je reconnais que j'ai parfois un peu tendance à aller trop loin dans la réinvention de la roue. Mais dans mon esprit, je me dis que l'effort fourni pour connecter mes petits neurones m'aura fait apprendre plus que d'utiliser bêtement quelque chose. Et ça me donne beaucoup d'idées.

Maintenant, je constate chez les p'tits stagiaires que je vois passer une approche presque aussi dangereuse si elle est trop extrême : le « je n'(ré)invente rien ». Savoir utiliser quelque chose est bien, mais c'est quand même selon moi plus intéressant de comprendre comme cela marche. Et pour cela, quoi de mieux que de partir from scratch ? Quand je vois des personnes qui se présentent comme futurs intégrateurs et qui sont terrifiés à l'idée de partir de zéro ou du minimum, j'avoue que ça me laisse pantois.

C'est pour cela que je maintiens : si quelqu'un a envie de réinventer la roue, dans la mesure du possible, laissez-le faire. Il a besoin de parcourir un chemin, et qui sait où ce chemin pourrait l'emmener ?

Permalien :

Flux RSS des commentaires de ce billet : https://www.nicolas-hoffmann.net/rss/commentaires.php?id_news=1555

6 commentaires

Posté par Alf le 20/05/2013 à 22:17:09
Je ne peux que "plussoyer" (comme dirait Kevin) ! C'est exactement ma philosophie, et j'ai parfois l'impression de passer pour un extraterrestre quand je veux commencer un projet "from scratch", pour reprendre tes mots.
Comme tu le dis, ça permet d'apprendre et parfois de découvrir des "routes" qui auraient "invisibles" en se contentant de réutiliser des frameworks, etc.
Cela dit, certains codes qui ont fait leurs preuves permettent des trucs sympa, comme jQuery. Mais quand je vois des usines à gaz comme Symphony ou autres, je préfère un code "fait maison". Au moins, quand ça plante, je sais où chercher et je suis sûr que ce n'est pas une erreur d'utilisation du framework !
Posté par Luc le 21/05/2013 à 9:52:51
Je plussoie ! J'aime bien aussi construire à partir de rien.
Même si ça demande plus de temps, c'est du temps utile pour comprendre les choses. C'est aussi comme ça qu'on apprend car c'est la façon la plus simple de faire des erreurs, de se casser les dents sur des problèmes, pour derrière trouver les solutions qui nous seront toujours utiles ultérieurement.
Surtout qu'en plus, ce n'est pas incompatible avec l'utilisation d'outils facilitateurs non plus. (sourire)
Posté par Hervé.M le 21/05/2013 à 9:59:43
Je "plussoie" également. Je suis dans la même situation que Alf.
C'est à dire, lorsque j'annonce faire mes propres fonctions, car je n'utiliserais pas plus de deux pour cent de tel ou tel Framework on me regarde de travers.
Du coup, un tiers de mes collègues viennent me voir lorsqu'ils n'arrivent pas à faire de même, ce qui me flatte, mais du coup ils n'en tirent aucune expérience (ou très peu) car ils ne cherchent pas par eux-même la solution.
Ce qui engendre, au final, l'utilisation de framework "pour simplifier" le travail.
Posté par Nico le 21/05/2013 à 13:55:17
@Luc : SURTOUT que les outils facilitateurs n'empêchent pas cet apprentissage (sourire)
Posté par Tanguy le 23/05/2013 à 8:57:33
Alors moi aussi je fais donc partie des "vieux cons". j'exècre appliquer bêtement quelque chose ou l'utiliser sans comprendre comment ça fonctionne. Ainsi, chaque fois que j'ai attaqué un framework je me suis toujours trouvé devant cette frustration de ne pas savoir par quel bout le prendre pour le décortiqué. Du coup, je fais du cousu-main. Mais il y a une autre motivation, c'est en quelque sorte la notion de dev responsable. Stocker des millions de copie de jquery, même compressé sur des serveurs et les faire télécharger est incroyablement consommateur d'énergie et participe peu ou proue au réchauffement climatique. D'autant qu'il s'agit de prendre une pelleteuse pour écraser une mouche. Ou si vous préférez d'un confetti plié en quatre pour toiletter un élphant. On ne se sert généralement que d'à peine 10% du framework. Et encore... je dois être généreux...
Posté par Thomas le 04/06/2013 à 10:49:03
Pour ma part, je déteste utiliser un framework, plugin ou autre dans la précipitation sans en connaître un minimum le fonctionnement. D'autant plus que, comme cité précédemment, on utilise seulement une infime partie d'un framework pour parvenir à nos fins, en provoquant un vrai désastre en matière de performance.

Par exemple, pour un simple slider sur un site, on a le choix entre charger jQuery + un plugin bien lourd ou le coder tranquillement à la main l'espace d'une petite heure en JS. Pour moi le choix est vite fait, à la main le code n'a pas de limite, et on peut débugger beaucoup plus facilement (et s'il est commenté, la maintenabilité tient la route).

Après, suivant le budget alloué, on ne peut pas toujours se permettre de partir "from scratch" et de perdre du temps sur un projet...

Ajouter un commentaire









L'option « Se souvenir de mes informations » utilise un cookie, elle ne sera pas effective si vous les avez désactivés.

Les balises HTML ne seront pas interprétées, il est donc inutile d'en mettre. Par contre, les sauts de lignes de votre commentaire seront pris en compte, ne mettez donc pas de <br />, le site s'en chargera. Bien sûr, un commentaire vide ne sera pas ajouté !

L'auteur (autrement dit moi) n'est pas responsable des éventuelles fautes d'orthographe dans les commentaires.
Tout propos raciste et/ou insultant sera supprimé sans préavis. Les commentaires hors de propos destinés à faire de la pub pour des sites seront également supprimés sans ménagement.

Je vous prie de me pardonner, j'ai énormément de mal à lire le "langage" SMS, il n'est donc pas du tout interdit de s'abstenir de l'utiliser. Qui plus est, vous avez sûrement un clavier digne de ce nom et pas celui d'un téléphone portable. Ne vous gênez pas pour utiliser l'option "Prévisualiser" si vous voulez vous relire avant de poster, je vous en remercie d'avance !

Cet article a été écrit par Nicolas Hoffmann.

Ce site est la propriété de Nicolas Hoffmann.
Tous droits réservés, les textes du blog sont publiés sous licence CC BY-NC-SA.