Bạn có muốn thuyết phục khách hàng của mình rằng sử dụng lập trình hướng đối tượng sẽ sạch hơn nhiều không?
Tôi nghĩ bạn cần giáo dục bản thân nhiều hơn về các mô hình lập trình. Mã được lập trình hướng đối tượng không nhất thiết phải sạch hơn và trên thực tế, nó không được áp dụng phổ biến. Ngoài ra, một lập trình viên hướng đối tượng tốt biết cách làm việc tốt bằng cách sử dụng một mô-đun thủ tục / mô-đun (Với các mô hình chức năng và khai báo, khó hơn một chút, nhưng không quá khó để một lập trình viên giỏi đến - thông qua việc đọc và suy luận - đến một giải pháp FP / Tuyên bố chấp nhận được.)
Bạn gần như không bao giờ không thể, tôi nhắc lại, bạn gần như không thể hiểu rõ về thời điểm và cách sử dụng Định hướng đối tượng mà không hiểu rõ về lập trình thủ tục và mô đun. OO không chỉ đơn thuần là khai báo các lớp và hệ thống phân cấp thừa kế.
Hoặc bạn sẽ cố gắng làm theo những gì anh ta yêu cầu và cung cấp cho anh ta mã ngu ngốc?
Nếu bạn không thể viết mã tốt theo thủ tục, tôi nghi ngờ bạn có thể viết mã tốt theo cách hướng đối tượng. Giai đoạn. Tôi không cố gắng phán xét ở đây, nhưng điều này phải được khẳng định.
Định hướng đối tượng là một phần mở rộng của lập trình thủ tục và mô đun. Định hướng đối tượng chỉ đơn giản cung cấp cho bạn các công cụ, khi được sử dụng một cách thích hợp, cung cấp cho bạn các cơ chế tốt hơn để xử lý các vấn đề đóng gói, khớp nối, gắn kết và tái sử dụng / mở rộng mã.
Nhưng tất cả những vấn đề đó không phải là cố hữu và duy nhất đối với OO. Chúng tồn tại trong mã thủ tục / mô-đun (và trong các mô hình khác cho vấn đề đó.) Đây là loại vấn đề phức tạp, ở chính cốt lõi của nó, không phụ thuộc vào mô hình. Nếu bạn không thể xử lý chúng mà không có keo OO, thì bạn không thể xử lý chúng bằng nó.
=========
Quay trở lại câu hỏi ban đầu của bạn, về việc có nên cố gắng thuyết phục khách hàng của bạn. Nó phụ thuộc. Như poster Sean McMillan đã nói, nếu khách hàng chỉ đơn giản là cố gắng quản lý vi mô nỗ lực phát triển cho một số chương trình nghị sự (đọc, chính trị văn phòng), hãy bỏ đi. Những người thực hiện các dự án phá hoại đó để đổ lỗi cho người khác, hoặc thúc đẩy một chương trình nghị sự cụ thể. Bạn không muốn tham gia vào đó.
OTH, có thể có những lý do khác cho yêu cầu như vậy. Nhiều cửa hàng nhúng, dù đúng hay sai, chọn đặt nhiều ràng buộc cho những gì bạn có thể làm với C ++ (chẳng hạn, không có phương pháp ảo, không có ngoại lệ.) Đôi khi, nó được thực hiện theo kiểu giật đầu gối. Một số lần khác, có những lý do kỹ thuật hợp lệ để làm như vậy.
Vì vậy, bạn cần hiểu lý do tại sao khách hàng muốn tránh mã OO. Và nếu bạn có thể phỏng đoán rằng không có chương trình nghị sự chính trị (không có cờ đỏ), thì bạn nên làm điều chuyên nghiệp để làm, đơn giản là làm mã theo thủ tục / mô-đun, và làm tốt công việc đó.
Thực sự không có lý do gì để cung cấp mã crappy, độc lập với mô hình lập trình. Nếu bạn không thể tạo mã chấp nhận được với một mô hình, bạn chắc chắn không thể tạo mã được chấp nhận nói chung.