Publish my résumé of A philosophy of software design

This commit is contained in:
Fred Pauchet 2024-02-22 21:39:21 +01:00
parent e6c6a8498b
commit cca1118132
2 changed files with 19 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

View File

@ -0,0 +1,19 @@
---
title: A Philosophy of Software Design
---
Ca papote de beaucoup de sujets intéressants, il y a un enooooorme chapitre sur les commentaires dans le code qui se solde par « lobjectif des commentaires est de sassurer que la structure et le comportement dun système sont limpides pour le lecteur (ce qui ne me convient pas vraiment - je serais plutôt d'avis à limiter au maximum les commentaires, pour éviter les redondances et limiter les incohérences entre commentaires et code).
Il y a cependant beaucoup de redites malgré quelques exemples assez sympas à lire.
Dans lensemble, je mattendais à un peu mieux : je suis assez daccord avec les quelques critiques des livres de Robert C. Martin, mais il disait lui-même avoir rédigé ses quelques conseils en sachant pertinemment quils ne sagissait bien que de conseils : entre "tout documenter" et "ne rien documenter", il y a un compromis auquel il faut réfléchir.
Dans sa globalité, je verrais plutôt ce livre comme la base dune relecture du « [Petit guide à lusage du développeur agile](https://www.dunod.com/sciences-techniques/python-petit-guide-usage-du-developpeur-agile) » de Tarek Ziadé.
Finalement, le vrai objectif dun développement applicatif, cest de simplifier la complexité globale du système, pour en faciliter la compréhension et la maintenance.
Je trouve également que plusieurs autres sections ne vont pas assez loin dans les détails qu'elles auraient pu aborder : la programmation orientée objet apporterait principalement (page 153) la notion dhéritage.
Sauf que ce nest pas tout à fait vrai ; elle apporte (évidemment)) cette notion, mais également le polymorphisme et les possibilités d'extensibilité - en toute sécurité !.
Il y a quelques bons conseils, notamment lidée de construire un système deux fois en partant de zéro afin de sassurer de sa pérennité ou stabilité (en tout cas, pour sassurer que la première idée nétait pas si pourrie que ça).
Au final, je trouve que des frameworks comme Django (encore lui) permettent de se concentrer sur le design tout en accélérant la mise à disposition de nouvelles fonctionnalités.
Et rien que pour ça, en connaissant ses faiblesses, cela vaut la peine de s'y pencher.