[JAVA] Ich habe viel über "Prinzipien des Systemdesigns, die auf diesem Gebiet nützlich sind" gelernt und sie daher zusammengefasst ~ Kapitel 1 ~

Kennen Sie die Prinzipien des Systemdesigns?

Dieser Artikel ist ein Artikel, der zusammenfasst, was ich aus dem Lesen von "Prinzipien des Systemdesigns, das vor Ort nützlich ist" gelernt habe und was bei der Arbeit nützlich zu sein scheint. Es ist nur eine Zusammenfassung, und ich habe die Teile weggelassen, die ich nicht erklären kann. Wenn Sie es also richtig verstehen wollen, lesen Sie bitte das Buch!

[Grundsätze des Systemdesigns, die vor Ort nützlich sind](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)

Die Person, die dieses Buch geschrieben hat

Der Autor ist Toru Masuda, der auch am Anwendungsdesign und der Entwicklung mit domänengesteuertem Design beteiligt ist. Es gab viele Folien im Zusammenhang mit domänengesteuertem Design in der Folienfreigabe.

Masuda-sans Dia-Freigabe

Kapitel 1 "Klein und leicht zu verstehen"

Warum Softwareänderungen so schwierig sind

――Der Grund, warum Nebenwirkungen und unerwartete Probleme aufgrund von Softwaremodifikationen und -änderungen auftreten, liegt darin, dass ein Problem mit dem Design (= Quellcode) vorliegt.

Wie schreibe ich, um das Ändern des Programms zu erleichtern

--Verwenden Sie einen beschreibenden Namen

// Bad
int a; 
int qty;
return qty * up;
// Good
int quantity;
return quantity * unitPrice;
// Bad
int price = quantity * unitPrice; //Menge x Stückpreis

if (price < 3000)
  price += 500;  //Versand

price = price * taxRate(); //Betrag inklusive Steuern
// Good
int basePrice = quantity * unitPrice; //Menge x Stückpreis

int shippingCost = 0; //Versand
if (basePrice < 3000)
  shippingCost = 500;

int ItemPrice = ... //Betrag inklusive Steuern

int basePrice = quantity * unitPrice; //Menge x Stückpreis

int shippingCost = shippingConst(basePrice) //Schneiden Sie die Versandberechnung auf eine andere Methode aus

int shippingCost(int basePrice) {
...
}

Machen Sie es in einer kleinen Klasse leicht verständlich und sicher

// Bad
int amount(int unitPrice , int quantity) {
... //Ein Kompilierungsfehler tritt auch dann nicht auf, wenn die Reihenfolge der Übergabe von unitPrice und Menge falsch ist.
}

// Good
Money amount(Money unitPrice, Quantity quantity) {
... //Wenn Sie den Einheitspreis und die Menge in der falschen Reihenfolge übergeben, tritt ein Kompilierungsfehler auf.
}

Kapitel 1 Zusammenfassung

Recommended Posts

Ich habe viel über "Prinzipien des Systemdesigns, die auf diesem Gebiet nützlich sind" gelernt und sie daher zusammengefasst ~ Kapitel 1 ~
[Lesung Memo] Prinzipien des Systemdesigns nützlich im Bereich "Klein und leicht zu verstehen"
Ich hasse diese Art von Code! Eine Sammlung von Anti-Mustern, die tatsächlich auf dem Feld zu sehen sind
Als ich zu IntelliJ wechselte, gab es einen großen Unterschied in der Codierung der Eigenschaftendatei.
Ein Programm, das die Anzahl der Wörter in einer Liste zählt