Tôi đã tìm thấy các nguyên tắc RẮN khá hữu ích khi nghĩ về thiết kế hướng đối tượng.
Có một bộ nguyên tắc bất khả tri ngôn ngữ tương tự / tương đương được thiết kế cho lập trình chức năng không?
Tôi đã tìm thấy các nguyên tắc RẮN khá hữu ích khi nghĩ về thiết kế hướng đối tượng.
Có một bộ nguyên tắc bất khả tri ngôn ngữ tương tự / tương đương được thiết kế cho lập trình chức năng không?
Câu trả lời:
Có một chút khó khăn để tìm tương đương nhưng tôi có thể thử:
RẮN hóa ra cũng là một ý tưởng tốt cho các lĩnh vực chức năng / mệnh lệnh.
SRP - "Chỉ làm một việc" được lấy từ lập trình bắt buộc ngay từ đầu. Có chức năng nhỏ, tập trung là tốt.
OCP - Cho phép bạn thay đổi hành vi mà không sửa đổi mã là tốt. Lập trình hàm sử dụng các hàm bậc cao hơn nhiều so với thừa kế, nhưng nguyên tắc giữ.
LSP - Việc tuân thủ một số hợp đồng giao diện cũng tốt trong lập trình chức năng như trong hướng đối tượng. Nếu một hàm sắp xếp có một bộ so sánh, thì bạn sẽ mong đợi '0 bằng, ít hơn cung cấp kết quả âm, lớn hơn hành vi của kết quả dương.
ISP - Hầu hết các ngôn ngữ chức năng vẫn có cấu trúc. Việc chỉ định tập dữ liệu nhỏ nhất được yêu cầu bởi một chức năng vẫn là thông lệ tốt. Yêu cầu giao diện cụ thể nhất đối với dữ liệu (tại sao sử dụng Danh sách số nguyên khi liệt kê T cũng hoạt động tốt?) Vẫn còn tốt.
DIP - Chỉ định tham số cho hàm (hoặc hàm bậc cao hơn để truy xuất chúng) thay vì mã hóa cứng để hàm nhận được một số giá trị cũng tốt trong lập trình hàm như trong hướng đối tượng.
Và ngay cả khi thực hiện lập trình hướng đối tượng, nhiều nguyên tắc trong số này cũng áp dụng cho việc thiết kế các phương thức trong các đối tượng.