Czy próbowałbyś przekonać swojego klienta, że programowanie obiektowe jest o wiele czystsze?
Myślę, że musisz się lepiej uczyć paradygmatów programowania. Obiektowy kod programowany niekoniecznie jest czystszy, aw rzeczywistości nie ma uniwersalnego zastosowania. Ponadto dobry obiektowy programista wie, jak wykonać dobrą pracę za pomocą proceduralnych / modułowych (w paradygmacie funkcjonalnym i deklaratywnym jest to nieco trudniejsze, ale dobry programista nie powinien być zbyt trudny do przybycia - poprzez czytanie i dedukcję - do akceptowalnego rozwiązania FP / deklaratywnego).
Prawie nigdy nie możesz, powtarzam, prawie nie możesz dobrze zrozumieć, kiedy i jak korzystać z Object Orientation, bez dobrego zrozumienia programowania proceduralnego i modułowego. OO to znacznie więcej niż tylko deklarowanie klas i hierarchii dziedziczenia.
A może postarasz się postępować zgodnie z tym, czego on potrzebuje i dać mu gówniany kod?
Jeśli nie możesz napisać dobrego kodu proceduralnie, wątpię, czy możesz napisać dobry kod w sposób obiektowy. Kropka. Nie próbuję tutaj osądzać, ale należy to potwierdzić.
Orientacja obiektowa jest rozszerzeniem programowania proceduralnego i modułowego. Orientacja obiektowa zapewnia po prostu narzędzia, które przy odpowiednim zastosowaniu dają lepsze mechanizmy radzenia sobie z problemami enkapsulacji, łączenia, spójności i ponownego użycia / rozszerzalności kodu.
Ale wszystkie te problemy nie są nieodłączne i specyficzne dla OO. Istnieją w kodzie proceduralnym / modułowym (i w innych paradygmatach w tej sprawie). Jest to rodzaj problemów ze złożonością, które w swej istocie są niezależne od paradygmatów. Jeśli nie poradzisz sobie z nimi bez kleju OO, to jest mało prawdopodobne, że poradzisz sobie z nimi.
=========
Wracając do pierwotnego pytania, czy spróbować przekonać klienta. To zależy. Jak powiedział Sean McMillan, jeśli klient po prostu próbuje mikro-zarządzać pracami rozwojowymi nad jakimś programem (czytanie, polityka biurowa), odejdź. Ludzie, którzy dokonują tego sabotażu, projektują, aby obwiniać kogoś innego lub realizować konkretny program. Nie chcesz się w to angażować.
OTH, mogą istnieć inne powody takiego wymogu. Wiele sklepów osadzonych, zarówno dobrych, jak i złych, decyduje się na wiele ograniczeń dotyczących tego, co można zrobić w C ++ (na przykład bez metod wirtualnych, bez wyjątków). Czasami robi się to w sposób szarpiący kolana. W innych przypadkach istnieją uzasadnione przyczyny techniczne.
Musisz więc zrozumieć, dlaczego klient chce unikać kodu OO. A jeśli możesz przypuszczać, że nie ma programu politycznego (bez czerwonych flag), powinieneś zrobić coś profesjonalnego, czyli po prostu zrobić kod proceduralny / modułowy i zrobić dobrą robotę.
Naprawdę nie ma usprawiedliwienia dla dostarczania kiepskiego kodu, niezależnie od paradygmatu programowania. Jeśli nie możesz stworzyć akceptowalnego kodu za pomocą jednego paradygmatu, z całą pewnością nie możesz stworzyć akceptowalnego kodu w ogóle.