Während ich die schlimmsten Anti-Muster las , auf die Sie gestoßen sind , klickte ich auf den Link in diesem Beitrag, um auf der Website über Anti-Muster zu landen.
Und die Seite http://sourcemaking.com/antipatterns/functional-decomposition hat mich gefragt.
Wie schlimm ist dieses Anti-Muster und ist es überhaupt ein Anti-Muster? Denn obwohl ich heutzutage hauptsächlich OOP-Programmierung mache, bin ich immer noch zurückhaltend gegenüber reinen OOP-Alles-Sprachen wie Java und den damit verbundenen Design-Praktiken. Und ich denke, ich habe noch einige Merkmale der funktionalen Programmierung, während ich den Code schreibe.
Und dies warf die Frage auf, ob ich etwas falsch mache, indem ich mich an den OOP + -Funktionsstil halte, oder ob es in der Industrie üblich ist und eigentlich gar nicht so schlecht.
Was ich aus Erfahrung weiß, ist, dass der OOP + -Funktionsstil nicht vollständig mit reinen OOP-Entwicklern kompatibel ist. Während OOP-Entwickler Probleme mit der Entwicklung von OOP + -Funktionen haben, ist das Gegenargument, dass OOP-Lösungen häufig überentwickelt und zu schwer zu verwenden sind und meiner Erfahrung nach nicht einmal ein bisschen einfacher und tatsächlich waren führte einige blinde Flecken ein, damit sich SEHR schwerwiegende Fehler verstecken konnten.
Obwohl ich mit meinem Kollegen über diese Themen diskutiert hatte, kam ich zu dem Schluss, dass keiner der Wege tatsächlich perfekt ist. Und ich habe immer noch die Frage unbeantwortet.
Das OOP-Problem wurde auch durch einen Link von einem anderen Beitrag im selben Thread verstärkt. Der Link zeigt die OOP im Java-Stil http://chaosinmotion.com/blog/?p=622
Wie ist die allgemeine Einstellung zum Mischen von funktionaler Programmierung mit OOP? Und wie hoch sollte das Gleichgewicht sein, das ein Entwickler anstreben sollte?
Antworten:
Zunächst einmal ist funktionale Programmierung derzeit das, was alle coolen Kids tun. Das Anti-Pattern sprach wirklich von prozeduraler Programmierung (es wäre klarer, wenn die Technik "prozedurale Zerlegung" genannt würde, aber es ist nicht so), und ich denke, Sie waren es auch.
Das Anti-Pattern sprach über schlechte Methoden zum Schreiben von prozeduralem Code in einer objektorientierten Sprache, die andere Seite über schlechtes Schreiben von Java - in Wahrheit gibt es keine Sprache, die so fantastisch ist, dass Sie alles tun können, was Sie wollen, aber nicht können Schreibe schlechten Code.
In der Praxis habe ich im objektorientierten Code etwas mehr Engineering als im prozeduralen Code gesehen - etwas weniger im Engineering und etwas mehr im Engineering.
In Ihrem Fall würde es von den Einzelheiten abhängen, und ich bin mir nicht sicher, was Sie tatsächlich in einem prozeduralen Stil tun. Ist es korrekt, klar, überprüfbar, leicht zu ändern usw.? Die Kriterien zur Beurteilung des Kodex sollten auf solchen praktischen Bedenken beruhen und nicht auf der Reinheit eines bestimmten Stils. Es klingt so, als ob in Ihrem Fall vernünftige und sachkundige Personen über diese Bedenken nicht einig sind (und dies auch tun können!), Und wenn ja, gibt es wahrscheinlich keinen objektiven Weg, um die Wahrheit der Sache festzustellen.
quelle