Elliotte est un écrivain informatique bien connu qui a écrit plus de 20 livres sur la programmation, dont beaucoup ont été publiés en Chine, tels que "Refactoring HTML: Improving the Design of Web Applications", et travaille actuellement sur le processeur XML XOM. moteur jaxenXPath et lecteur multimédia amateur. "HTTP://www.php100.com/
Elliotte est un écrivain informatique bien connu qui a écrit plus de 20 livres sur la programmation, dont beaucoup ont été publiés en Chine, tels que Reconstructing HTML: Improving the Design of Web Applications. Moteur XPath et lecteur multimédia amateur.
Ce qui suit est le corps:
La semaine dernière, j'ai été inspiré par l'idée d'un collègue qu'il était si évident que quand il l'a dit, j'ai été étonné de savoir pourquoi je ne l'ai pas réalisé avant:Si vous concevez pour la réutilisation, vous le faites mal.
Le seul but du code que vous écrivez maintenant est de servir les tâches sur laquelle vous travaillez actuellement. Ne concevez pas pour la réutilisation. Ne pense pas à la réutilisation. Ne perdez pas une seconde à réutiliser votre code.
En fait, tout code que vous devez réutiliser existe déjà. Vous souhaitez vous connecter à un serveur HTTP et prendre pleinement en charge l'authentification de sécurité et les cookies ? Cette chose sonne comme beaucoup de projets peuvent être utilisés, donc vous voulez envelopper cette chose dans une classe HTTP facile à utiliser ou un paquet partagé, n'est-ce pas une bonne idée? erreur. Vous devriez utiliser Apache httpClient.
Besoin d'aborder la valeur initiale de votre méthode de parabole? Ne regardez pas à travers votre "manuel de sanaanalyse" et tout ce que vous devez faire est de télécharger La bibliothèque Java Science Computing de Flanagan ou d'acheter une licence NAG. Vous voulez faire un volet de sélection de calendrier pour vos collègues? Dites-leur directement d'utiliser JCalendar. Bien qu'il ne regarde pas et utiliser exactement ce que vous pensez, il est parfaitement adéquat. Si vous voulez fabriquer vos propres composants ou trouver une modification existante, vous constaterez que les différentes performances que vous avez développées ne conviennent pas aux applications d'autres personnes, alors ne perdez pas de temps à développer votre propre code réutilisable.
Ces exemples sont tous pour Java, mais pour d'autres langues grand public, telles que Perl, Python, Ruby, C, C, Scala, et ainsi de suite. En fait, si une langue ne fournit pas de code réutilisable pour résoudre votre problème, vous n'êtes pas la bonne langue pour résoudre votre problème.
Y a-t-il des exceptions? Je ne peux penser à deux (jusqu'à présent, je ne me sens pas comme un troisième cas).
La première exception est que vous développez quelque chose de nouveau,La bibliothèque de classe dont vous avez besoin n'existe pas, vous êtes le premier à entrer dans ce domaine., vous devez écrire du code réutilisable. Par exemple, lorsque j'ai été le pionnier du développement de la bibliothèque de classe XInclude, les spécifications de XInclude étaient encore en développement, et vous n'avez pas pu trouver une deuxième bibliothèque de classe disponible en Java. La bibliothèque que j'ai écrite est devenue une preuve de l'atteignable de la spécification, conduisant la norme vers un état plus complet. Il était sage de développer ma propre bibliothèque XInclude il ya dix ans, et je ne le referais jamais aujourd'hui.
La deuxième exception estPour les expertsJe ne sais même pas si c'est l'exception. Si vous êtes un vrai expert dans un domaine, il ya du code réutilisable qui résout les problèmes de votre domaine, et vous avez soigneusement étudié les solutions existantes, vous pensez qu'ils sont imparfaits, vous êtes à la recherche d'une meilleure solution, et c'est la seule fois que vous pouvez envisager d'écrire votre propre code réutilisable. C'est pourquoi j'ai développé XOM. Ce n'est qu'après avoir écrit des centaines de pages de manuscrits, et avait recueilli les différentes API qui traitent actuellement XML en Java, et connaissait leurs avantages et inconvénients, que j'ai senti que je devrais m'asseoir et concevoir une API pour les changer. Bien que je pense que l'API que j'ai conçu est la meilleure API, je ne suis toujours pas sûr qu'il vaut la peine de passer du temps sur elle. XOM, à mon avis, est mieux que n'importe quelle API précédente, mais il n'est pas assez bon pour remplacer d'autres bibliothèques de classe dans beaucoup d'autres projets. Le besoin de cette nouvelle API n'est pas vraiment grand.
Y a-t-il d'autres exceptions? Y at-il une autre situation où vous devez écrire du code réutilisable? Je n'y vois pas. Il ya tellement de programmeurs qui passent tellement de temps à explorer les problèmes dans nos vies et de partager leurs résultats gratuitement sur des sites comme Sourceforge et Github. Bien sûr, de nouveaux problèmes vont continuer à venir, mais pour certains vieux problèmes, si vous les étudiez à nouveau, vous n'obtiendrez pas grand-chose hors de lui. La prochaine fois, si vous vous trouvez à concevoir pour la réutilisation, arrêtez-vous et demandez si vous pouvez réutiliser le code de quelqu'un d'autre.
(Ne concevez pas pour la réutilisation)