Würden Sie versuchen, Ihren Kunden davon zu überzeugen, dass die Verwendung objektorientierter Programmierung viel sauberer ist?
Ich denke, Sie müssen sich mehr über Programmierparadigmen informieren. Objektorientierter programmierter Code ist nicht unbedingt sauberer und in der Tat nicht universell anwendbar. Ein guter objektorientierter Codierer weiß auch, wie man mit einem prozeduralen / modularen Verfahren gute Arbeit leistet (mit funktionalen und deklarativen Paradigmen ist es ein bisschen schwieriger, aber es sollte für einen guten Programmierer nicht allzu schwierig sein, zu gelangen - durch Lesen und Ableiten - zu einer akzeptablen FP / deklarativen Lösung.)
Ich wiederhole, Sie können so gut wie nie, Sie können so gut wie nicht verstehen, wann und wie Sie die Objektorientierung verwenden, ohne ein gutes Verständnis für die prozedurale und modulare Programmierung zu haben. OO ist viel mehr als nur das Deklarieren von Klassen und Vererbungshierarchien.
Oder würden Sie versuchen, dem zu folgen, was er wollte, und ihm einen beschissenen Code geben?
Wenn Sie keinen guten Code prozedural schreiben können, bezweifle ich, dass Sie guten Code objektorientiert schreiben können. Zeitraum. Ich versuche hier nicht zu urteilen, aber das muss behauptet werden.
Objektorientierung ist eine Erweiterung der prozeduralen und modularen Programmierung. Durch die Objektorientierung erhalten Sie lediglich Tools, mit deren Hilfe Sie bei angemessener Verwendung bessere Mechanismen zur Behandlung von Problemen mit der Kapselung, Kopplung, Kohäsion und Wiederverwendung / Erweiterbarkeit von Code erhalten.
Aber all diese Probleme sind nicht inhärent und einzigartig für OO. Sie existieren im prozeduralen / modularen Code (und in anderen Paradigmen in dieser Hinsicht). Dies ist die Art von Komplexitätsproblemen, die im Kern paradigmenunabhängig sind. Wenn Sie sie nicht ohne OO-Kleber handhaben können, ist es unwahrscheinlich, dass Sie sie damit handhaben können.
=========
Zurück zu Ihrer ursprünglichen Frage, ob Sie versuchen sollen, Ihren Kunden zu überzeugen. Es hängt davon ab, ob. Als Poster sagte Sean McMillan, wenn der Kunde einfach versucht, den Entwicklungsaufwand für eine Agenda (Lesen, Büropolitik) zu minimieren, dann gehe weg. Leute, die diese Sabotageprojekte durchführen, um jemand anderem die Schuld zu geben oder eine bestimmte Agenda voranzutreiben. Daran möchten Sie nicht beteiligt sein.
OTH, es könnte andere Gründe für eine solche Anforderung geben. Viele eingebettete Shops, egal ob richtig oder falsch, legen großen Wert darauf, was Sie mit C ++ tun können (keine virtuellen Methoden, keine Ausnahmen zum Beispiel). Manchmal gibt es dafür gültige technische Gründe.
Sie müssen also verstehen, warum der Client OO-Code vermeiden möchte. Und wenn Sie vermuten können, dass es keine politische Agenda gibt (keine roten Fahnen), dann sollten Sie das Professionelle tun, dh einfach den Code prozedural / modular ausführen und einen guten Job machen.
Es gibt wirklich keine Entschuldigung dafür, beschissenen Code zu liefern, unabhängig vom Programmierparadigma. Wenn Sie mit einem Paradigma keinen akzeptablen Code erstellen können, können Sie mit Sicherheit keinen akzeptablen Code generell erstellen.