Ich mache Branchen-Apps, bei denen alle anderen Entwickler an grundlegende CRUD-Apps gewöhnt sind oder sich ausschließlich darauf konzentrieren, hübsche / funktionale Schnittstellen zu erstellen, und ich bekomme viel Folgendes.
"Mit der Art und Weise, wie wir es machen, hätte der Mitarbeiter alles, was man mit einem Mitarbeiter machen könnte." Und es war wahr. Diese eine "Klasse" hatte Tausende von Codezeilen und alles, was man mit einem Mitarbeiter machen konnte, war da. Oder, noch schlimmer, es gab eine Tabelle mit Mitarbeiterdaten, und jeder Entwickler fand heraus, wie er das tun sollte, was er im Event-Handler tun wollte.
All die schlechten Dinge an diesem Ansatz waren wahr, aber zumindest der Entwickler, der einen Mitarbeiter verwendet, konnte, ohne zu anderen Dokumenten zu gehen, herausfinden, wie er den Mitarbeiter in einen Gesundheitsplan einschreiben, eine Gehaltserhöhung vornehmen, entlassen, einstellen, transferieren usw. Gleiches gilt für Manager und alle anderen wichtigen Ideen. Oder wenn sie dem Mitarbeiter andere benötigte Datentabellen verwenden, können sie einfach tun, was sie wollen.
Ja, es gab viel doppelten Code. Ja, es war sehr spröder Code. Ja, es zu testen war viel schwieriger als nötig. Ja, das Ändern der Funktionalität hat Angst ausgelöst, und das Einfügen von Kopien war aufgrund des Ansatzes eine Selbstverständlichkeit.
Aber sie konnten zumindest herausfinden, was verfügbar war, indem sie eine Klasse erstellten, oder sie konnten das tun, was sie tun mussten, ohne den Unterschied zwischen Schnittstellen, abstrakten Klassen, konkreten Klassen usw. verstehen zu müssen. Und sie mussten nichts anderes suchen als die von Intellisense zurückgegebenen Methoden oder kennen die Tabellen, in denen sich die Daten befanden.
Ich habe gegoogelt / gebissen und sogar yahoo! D, aber ich habe keine Bestätigung für dieses Problem gefunden.
Vielleicht gibt es kein Problem und mir fehlt nur etwas. Ich habe mir den Kopf zerbrochen, um eine Lösung zu finden, bei der Entwickler, die nicht mit dem tatsächlichen Verhalten / Design arbeiten, leicht herausfinden können, wie etwas zu tun ist, ohne auf externe Dokumente verweisen oder die Klassennamen in den verschiedenen Komponenten scannen zu müssen. Projekte, um das zu finden, das so klingt, als würde es funktionieren.
Das einzige, was ich mir einfallen lassen konnte, ist, dass diese mangels eines besseren Namens "Table of Content Class" nichts mehr tun, was die tatsächlichen Klassen zurückgibt (und die meisten von ihnen sind Schnittstellen, aber sie tun es nicht den Unterschied kennen oder sogar darauf achten, dass andere Entwickler die tatsächlich gewünschten Aufgaben ausführen können. Am Ende gibt es immer noch sehr große Klassen, aber es gibt fast kein Verhalten in ihnen.
Gibt es einen besseren Weg, der keine genauen Kenntnisse der mittleren Ebene erfordert, in der die eigentliche Implementierung von SOLID stattfindet?
Grundsätzlich frage ich, ob es eine Möglichkeit gibt, CRUD-Entwickler weiterhin CRUD-Entwickler in einem sehr komplexen System zu sein