Le développement de logiciels fait référence à un ensemble d’activités informatiques consacrées à la conception, à la création, au test, au soutien et au déploiement de logiciels. Les ingénieurs en logiciel créent des programmes, testent de nouveaux logiciels, reconnaissent les besoins des utilisateurs et améliorent les logiciels existants. La communauté du développement de logiciels connaît des changements rapides et constants qui rendent l’apprentissage continu essentiel pour la carrière d’un développeur.
Travailler dans le domaine du développement de logiciels peut être un véritable fardeau. En général, les développeurs se demandent s’ils doivent lire des livres pour devenir meilleurs dans le développement de logiciels. Mais la vraie question que vous devriez vous poser est la suivante : « Quel livre devriez-vous lire pour travailler dans le développement de logiciels ? Attention, lire des livres ne fera pas de vous un meilleur développeur. Il vous faudra des années d’expérience et de pratique. Mais en les lisant, vous aurez un aperçu des principes directeurs qui peuvent être appliqués et vous apprendrez à éviter les erreurs courantes au cours du processus de développement.
Voici quelques livres pour travailler dans le domaine du développement de logiciels. Cette liste est incomplète, car il existe toujours de nouveaux et meilleurs livres. Mais ceux-ci sont susceptibles d’avoir un impact plus important sur votre carrière dans le développement de logiciels.
- Le programmeur pragmatique : Du compagnon au maître
Livre de David Thomas, Andrew Hunt
Rédigé et publié par David Thomas et Andrew Hunt, Pragmatic Programmer vise à éviter les problèmes typiques de dynamique d’équipe et de gestion de projet, ainsi que les procédures fondamentales du développement de logiciels. Les auteurs abordent les problèmes courants qui égarent les équipes de développement. L’un des auteurs, Andrew Hunt, a déclaré que « la technologie a changé, les noms ont changé, mais les problèmes, les approches erronées et les facteurs qui entraînent des difficultés sont toujours visibles ».
Le livre est rempli de conseils professionnels et techniques pour les développeurs, comme l’écriture d’un code flexible ou la conduite d’une équipe dans le cadre d’un projet. Bien qu’il ait été écrit il y a deux décennies, ce livre est toujours justifié à bien des égards. Il vous enseigne une méthode pragmatique avec des conseils sur l’amélioration du processus de développement. Par exemple, les auteurs conseillent d’apprendre un éditeur de texte et d’en comprendre pleinement les concepts, et d’approuver l’utilisation d’un logiciel de suivi des versions, même pour les projets à petite échelle. Que vous soyez un nouveau développeur ou un développeur expérimenté, vous pouvez appliquer les leçons de ce livre et vous obtiendrez des améliorations en termes de productivité personnelle et de précision. Vous acquerrez des compétences et développerez des habitudes et des attitudes qui jetteront les bases de votre réussite professionnelle.
- Une philosophie de la conception de logiciels
Livre de John Ousterhout
Ce livre de 2018 est un nouveau venu dans le club des livres sur le développement logiciel, écrit par un ingénieur logiciel certifié, John Ousterhout. A Philosophy of Software Design aborde le problème élémentaire associé à la conception de logiciels, le contrôle de la complexité. Le livre met en lumière les questions philosophiques liées à l’approche du processus de conception de logiciels et met en évidence un ensemble de principes de conception à mettre en œuvre lors de la conception de logiciels. A Philosophy of Software Design se concentre sur la décomposition des systèmes logiciels composites en modules tels que les méthodes et les classes que vous pouvez appliquer indépendamment. L’auteur explique les principes de programmation qui permettent d’obtenir des programmes excellents et faciles à maintenir, comme l’observation du bon niveau d’abstraction de votre code. Le livre ne se concentre pas sur un langage de programmation particulier ; c’est pourquoi il est moins prescriptif et plus applicable. L’auteur note que les abstractions qui ont des interfaces simples (modules profonds) mais qui dissimulent des fonctionnalités composites contribuent à réduire la complexité des programmes. Les modules profonds y parviennent mieux que les modules peu profonds, car ces derniers ont des fonctionnalités simples mais des interfaces complexes.
- Clean Code : Un manuel de l’artisanat logiciel agile
Livre de Robert C. Martin
Vous ne reconnaîtrez jamais un bon code tant que vous n’aurez pas vu un mauvais code, et c’est ce que ce livre vous montre. Écrit en 2002 par Robert C. Martin, ce classique se concentre sur la manière d’écrire un code facile à lire et à maintenir. Non seulement pour l’application, mais aussi pour les collègues développeurs qui pourraient travailler sur le code à l’avenir. Le livre est divisé en trois sections : les principes, les modèles et les pratiques du code propre. Dans son livre, l’auteur présente un code laid, difficile à lire, à maintenir et à comprendre. Il présente ensuite les disciplines, les outils et les techniques de l’artisanat logiciel. Clean code, avec des illustrations claires, montre comment refondre un code médiocre en un morceau facile à maintenir. Le livre met en évidence les erreurs que les développeurs commettent régulièrement et explique le principe de la programmation orientée objet. Clean code est essentiel pour les développeurs Java amateurs, il traite d’exemples et d’études de cas réels en Java et s’applique également à d’autres langages de programmation orientés objet. L’auteur insiste sur l’idée qu’un mauvais code peut mettre une entreprise à genoux, car une fois que vous commencez avec un mauvais code, vous continuez à en empiler d’autres, ce qui rend le débogage plus difficile. Pour qu’un code soit considéré comme propre, il doit être facilement compris par les autres membres de l’équipe et les utilisateurs finaux.
- Design Patterns : Les éléments d’un logiciel orienté objet réutilisable
Par Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides
Un chef-d’œuvre de 1994, écrit et compilé par quatre auteurs, Erich Gamma, Richard Helm, Ralph Johnson et John Vlissides. Les auteurs sont connus sous le nom de « Gang des quatre » dans le monde du développement. Bien qu’il ait été écrit il y a deux décennies, Design Patterns est toujours applicable et essentiel pour les développeurs qui deviennent compétents dans la structuration de leurs programmes. Le livre donne un aperçu des trois catégories de modèles de conception. Il s’agit des patrons de conception créatifs, qui vous permettent de créer de nouveaux objets de différentes manières, des patrons de conception structurels, pour le prototypage, et des patrons de conception comportementaux, qui modélisent différentes actions. Le livre explique également comment vous pouvez créer des conceptions plus flexibles et réutilisables sans redécouvrir les solutions de conception. Les auteurs décrivent et évaluent les conceptions récurrentes dans les systèmes orientés objet. Le livre vous apprend également comment ces modèles significatifs peuvent s’intégrer dans votre processus de développement logiciel et comment les exploiter pour surmonter les problèmes de conception. Chaque modèle de conception explique les situations dans lesquelles il peut être appliqué et quand il peut l’être compte tenu d’autres contraintes de conception. Ce livre est une lecture incontournable pour les développeurs travaillant sur des projets et des systèmes complexes.
- Refactoring : Améliorer la conception du code existant
Livre de Martin Fowler
Dans son livre, Martin Fowler parle de l’amélioration de la conception d’un code existant. Le livre de Martin parle du processus de refactorisation et prend le temps d’expliquer comment exécuter les différentes refactorisations – le comportement de préservation des transformations. Le livre définit le remaniement comme la modification d’un système logiciel non pas pour changer le comportement extérieur du code, mais pour améliorer la structure interne. Cela signifie qu’il faut nettoyer votre code existant mais fonctionnel. Il s’agit de renommer les méthodes et de décomposer les instructions switch en une forme polymorphe. L’auteur explique que vous pouvez supprimer un code erroné et le remanier pour en faire un meilleur code grâce au refactoring. Le livre décrit les soixante-dix refactorings, les raisons qui les motivent et la manière de les exécuter. L’une des stratégies fondamentales du remaniement consiste à assembler le code autour de groupes de code significatifs et à éviter le mélange des étapes de traitement. L’auteur explique ensuite les raisons pour lesquelles vous devriez remanier votre code, les moyens de reconnaître un code qui nécessite un remaniement et la manière de le mettre en œuvre efficacement, quel que soit le langage de programmation que vous utilisez.
Conclusion
Il s’agit de quelques-uns des livres les plus approuvés et acceptés pour travailler dans le développement de logiciels. Si je devais recommander un livre à un collègue développeur, je choisirais The Pragmatic Programmer et Clean Code. Si vous souhaitez renforcer vos compétences et vos connaissances en matière de développement logiciel, lisez l’un de ces livres ou tous ces livres afin d’élargir votre esprit sur les différents aspects du monde du développement logiciel.