Tôi hiểu những gì RẮN phải hoàn thành và sử dụng nó thường xuyên trong các tình huống mà tính mô đun là quan trọng và các mục tiêu của nó rõ ràng hữu ích. Tuy nhiên, có hai điều ngăn tôi áp dụng nó một cách nhất quán trên cơ sở mã của mình:
Tôi muốn tránh trừu tượng sớm. Theo kinh nghiệm của tôi, vẽ các đường trừu tượng mà không có trường hợp sử dụng cụ thể (loại tồn tại bây giờ hoặc trong tương lai gần ) dẫn đến chúng bị vẽ sai chỗ. Khi tôi cố gắng sửa đổi mã như vậy, các dòng trừu tượng sẽ gây cản trở hơn là giúp đỡ. Do đó, tôi có xu hướng sai lầm khi không vẽ bất kỳ đường trừu tượng nào cho đến khi tôi có một ý tưởng tốt về nơi chúng sẽ hữu ích.
Tôi thấy thật khó để biện minh cho việc tăng tính mô đun cho mục đích riêng của mình nếu nó làm cho mã của tôi dài dòng hơn, khó hiểu hơn, v.v. và không loại bỏ bất kỳ sự trùng lặp nào. Tôi thấy mã thủ tục đơn giản, được kết hợp chặt chẽ hoặc mã đối tượng đôi khi dễ hiểu hơn mã ravioli rất được chứng thực bởi vì dòng chảy đơn giản và tuyến tính. Nó cũng dễ viết hơn nhiều.
Mặt khác, suy nghĩ này thường dẫn đến các đối tượng của Thiên Chúa. Tôi thường tái cấu trúc những thứ này một cách bảo thủ, chỉ thêm các dòng trừu tượng rõ ràng khi tôi thấy các mẫu rõ ràng đang nổi lên. Điều gì, nếu có bất cứ điều gì sai với các đối tượng của Chúa và mã được ghép chặt chẽ nếu bạn rõ ràng không cần nhiều mô đun hơn, không có sự trùng lặp đáng kể và mã có thể đọc được?
EDIT: Theo như các nguyên tắc RẮN cá nhân, tôi muốn nhấn mạnh rằng Thay thế Liskov là IMHO một sự chính thức hóa của lẽ thường và nên được áp dụng ở mọi nơi, vì sự trừu tượng không có ý nghĩa nếu nó không có ý nghĩa. Ngoài ra, mỗi lớp nên có một trách nhiệm duy nhất ở một mức độ trừu tượng nào đó, mặc dù nó có thể là một mức rất cao với tất cả các chi tiết triển khai được nhồi nhét vào một lớp 2.000 dòng lớn. Về cơ bản, sự trừu tượng của bạn sẽ có ý nghĩa nơi bạn chọn để trừu tượng. Các nguyên tắc tôi đặt câu hỏi trong trường hợp mô đun hóa không hữu ích rõ ràng là đóng mở, phân biệt giao diện và đặc biệt là đảo ngược phụ thuộc, vì đây là về mô đun hóa, không chỉ có ý nghĩa trừu tượng.