🌿 Là gì?

  • Là một phương pháp lập trình tập trung vào việc mô phỏng code thông qua các Objects.
  • Ưu điểm:
    • Dễ đọc, gần gũi với thế giới thực.
    • Dễ mở rộng, bảo trì, giảm chi phí thay đổi, tăng sự linh hoạt của mã.
    • Phù hợp với framework phát triển phần mềm Agile.

❓Tại sao cần thiết kế?

  • Với các dự án thực tế, phần lớn thời gian sẽ được dành cho công việc sửa đổi, maintain và mở rộng các tính năng. Việc thiết kế tốt sẽ giúp chi phí xử lý các công việc trên giảm bớt đi đáng kể.
  • Khi có một thiết kế rõ ràng, code sẽ dễ chuyển giao cho nhiều bên phát triển.
  • Xu hướng phát triển phần mềm hiện nay là Agile, việc phần mềm có tính linh hoạt, dễ sửa đổi và mở rộng là yếu tố quan trọng bậc nhất.

🧰 Công cụ thiết kế

📝 OOP - Object-Oriented Programming

  • 4 nguyên tắc trong lập trình hướng đối tượng:
    • Đóng gói.
    • Kế thừa.
    • Trừu tượng.
    • Đa hình.

💪 SOLID

🚧 Design Patterns

🔁 DRY - Don’t repeat yourself

📋 Đánh giá thiết kế

  • Dùng một số gem để đánh giá source code cho Ruby như Rubocop, Reek, Flog, MetricFu, …

🌿 Refer

Chap 1 - Practical Object-Oriented Design in Ruby