Ich bin ein erfahrener .NET-Entwickler (6 Jahre) und ich bin wirklich in (nicht anämischen) Domain-Modellierung: Aggregat-Wurzeln, setzen Invarianten in Konstruktor-Parameter, mehr Methoden, weniger öffentliche Klassen und Mitglieder.Was sind die Hauptunterschiede in der Domänenmodellierung in .NET/Java im Vergleich zu Ruby?
Ich zeigte meinem Rubyist-Mitarbeiter (ein Entwickler, den ich wirklich respektiere), woran ich gearbeitet habe und er deutete an, dass ein Großteil des Textes auf dem Bildschirm in Ruby notwendig sein würde, aber ich verstand nicht genau, was er tat gemeint. Meine Frage ist also:
Für eine App, die ausreichend komplex ist, dass ein Domänenmodell wirklich aufgerufen wird, sind die wichtigsten Unterschiede zwischen dem Domänenmodell in einer stark typisierten, Enterprise-y-Plattform wie .NET/J2EE versus das gleiche Modell in Ruby implementiert (in The Ruby Way)? Ist Ruby ein geeignetes Werkzeug für diese Art von Problem?
Seit C# hat auto-Eigenschaften, die eine Eigenschaft mit getters/setters deklarieren, ist nicht viel länger als ein Feld zu deklarieren. – CodesInChaos
"Stark typisierte vs nicht, macht meiner Meinung nach keinen großen Unterschied auf die Menge an Code." Ich stimme zu. Wir schreiben irgendwo Code, um das wieder gut zu machen. Der wirkliche Unterschied zu mir zwischen den verschiedenen Sprachen ist, wie einfach ich den Code schreiben kann, der die Unterschiede abdeckt, und fließt er oder muss ich ihn auswählen und aushebeln. –
Worauf ich hinaus wollte, war eher: "Machen Sie in Ruby die gleichen Dinge, die Sie in .NET tun würden, damit das Design die Clients dazu zwingt, den Code auf bestimmte Arten zu verwenden: Aggregatwurzeln, erzwungene Invarianten über Konstruktor-Parameter, Factory-Klassen usw. Das würde ich als gutes Domänen-Design bezeichnen (zumindest in einer statischen Sprache) und ich frage mich, ob diese Ideen auf Ruby übertragen werden. –