Cet article est un article qui résume ce que j'ai appris en lisant «Principes de conception de systèmes utiles sur le terrain» et ce qui semble être utile au travail. C'est juste un résumé, et j'ai omis les parties que je ne peux pas expliquer, donc si vous voulez bien le comprendre, veuillez lire le livre!
[Principes de conception de système utiles sur le terrain](https://www.amazon.co.jp/%E7%8F%BE%E5%A0%B4%E3%81%A7%E5%BD%B9%E7%AB % 8B% E3% 81% A4% E3% 82% B7% E3% 82% B9% E3% 83% 86% E3% 83% A0% E8% A8% AD% E8% A8% 88% E3% 81% AE % E5% 8E% 9F% E5% 89% 87-% E5% A4% 89% E6% 9B% B4% E3% 82% 92% E6% A5% BD% E3% 81% A7% E5% AE% 89% E5% 85% A8% E3% 81% AB% E3% 81% 99% E3% 82% 8B% E3% 82% AA% E3% 83% 96% E3% 82% B8% E3% 82% A7% E3% 82% AF% E3% 83% 88% E6% 8C% 87% E5% 90% 91% E3% 81% AE% E5% AE% 9F% E8% B7% B5% E6% 8A% 80% E6% B3% 95-% E5% A2% 97% E7% 94% B0-% E4% BA% A8 / dp / 477419087X)
L'auteur est Toru Masuda, qui est également impliqué dans la conception et le développement d'applications utilisant la conception axée sur le domaine. Il y avait de nombreuses diapositives liées à la conception axée sur le domaine dans le partage de diapositives.
Partage de diapositives de Masuda-san
―― La raison pour laquelle des effets secondaires et des problèmes inattendus se produisent en raison de modifications et de changements logiciels est qu'il y a un problème avec la conception (= code source). --Un programme difficile à changer a trois caractéristiques
--Utilisez un nom descriptif
// Bad
int a;
int qty;
return qty * up;
// Good
int quantity;
return quantity * unitPrice;
--Insérez une ligne vide pour chaque unité de code (unité de traitement) --Préparer des variables (= variables pour l'explication) pour chaque objectif (éviter l'affectation destructive ((l'affectation destructive est une façon d'écrire en utilisant une variable et en répétant l'affectation)))
// Bad
int price = quantity * unitPrice; //Quantité x prix unitaire
if (price < 3000)
price += 500; //livraison
price = price * taxRate(); //Montant TTC
// Good
int basePrice = quantity * unitPrice; //Quantité x prix unitaire
int shippingCost = 0; //livraison
if (basePrice < 3000)
shippingCost = 500;
int ItemPrice = ... //Montant TTC
int basePrice = quantity * unitPrice; //Quantité x prix unitaire
int shippingCost = shippingConst(basePrice) //Découpez le calcul d'expédition vers une autre méthode
int shippingCost(int basePrice) {
...
}
// Bad
int amount(int unitPrice , int quantity) {
... //Une erreur de compilation ne se produit pas même si le prix unitPrice et la quantité sont passés dans le mauvais ordre.
}
// Good
Money amount(Money unitPrice, Quantity quantity) {
... //Un mauvais ordre de passage de unitPrix et de quantité entraînera une erreur de compilation
}
Recommended Posts