Software design principles

Trước khi ta bắt đầu bước vào tìm hiểu từng pattern một, có lẽ ta nên điểm lại các điểm cần lưu ý trong thiết kế cấu trúc phần mềm: thứ ta cần đạt được và thứ ta cần tránh.

Code reuse

Chi phí và thời gian là 2 đại lượng có giá trị nhất để đo lường quá trình phát triển phần mềm.

Phần mềm càng được release sớm đồng nghĩa với việc ta càng gia nhập thị trường sớm hơn so với các đối thủ cạnh tranh.

Phần mềm càng tốn ít chi phí đồng nghĩa với việc ta càng có thể dành nhiều tiền hơn cho marketing và các kênh kết nối tới khách hàng tiềm năng.

Code reuse (tái sử dụng code) là 1 trong những cách phổ biến nhất để giảm chi phí phát triển phần mềm.

Ý tưởng thì tốt, nhưng để có thể áp dụng hiệu quả trong thực tiễn đòi hỏi cả 1 hành trình gian nan.

Extensibility

Change (thay đổi) là 1 thứ bất biến suốt cuộc đời lập trình viên.

...

Bất cứ nhà phát triển phần mềm nào cũng sẽ gặp phải những câu chuyện tương tự như trên. Ta có thể hiểu vì sao nó lại diễn ra qua vài lý do sau: