Ich habe zehn Jahre lang unter schrecklichen Architekturen in C # -Anwendungen gelitten - und jetzt habe ich gefunden, wie ich sie beheben kann.



Ich war das zweite Jahrzehnt an der Entwicklung von Geschäftsanwendungen in .NET beteiligt und sehe jedes Mal die gleichen Probleme - Mist und Unordnung. Ein Durcheinander von Diensten, UoW, DTOs, Hilfsklassen. An anderen Stellen direkter Zugriff auf die Datenbank von Hand, Logik in statischen Klassen, kilometerlange IoC-Konfigurationsfußbedeckungen.



Als ich ein junger und übermütiger Mittler war, habe ich auch so geschrieben. Dann schlug er mit der Faust gegen die Wand und rief: "Genug! Nächstes Mal mache ich es anders." Das nächste Mal fing es wirklich "anders" an - mit einem kühlen Kopf und einer strengen Herangehensweise an die Architektur -, aber die Ausgabe stellte sich immer noch als dieselbe Substanz heraus, besser um ein paar Millimeter.



Evolution ist jedoch eine gnadenlose Sache: Mein letztes System schien mir mehr oder weniger dem Ideal nahe zu sein. Die Komplexität ist nicht sehr gewachsen, die Entwicklungsgeschwindigkeit ist lange nicht gesunken, zumindest neue Mitarbeiter treten in das System ein. Ich habe diese Ergebnisse als Grundlage genommen, verbessert und jetzt kündige ich Ihnen meine neue Entwicklung an: Reinforced.Tecture.



Woher kommt das Chaos?



, , . , , , , , … , , — .



-, ?



— IoC!



, : - — . ? Connection ( ), - credentials, web.config ( ) , -UoW-. -.



, — , . ! , , IoC- (-).



? , , IoC-: , -, .



— unit-!



.



: unit- C#-, "UoW Repository"? (). , , . .



- . ( ), , .. " ? , ".



, - , 10 — , , ! " ", , , , . . "", QA- ( , end-to-end), .



, 5 — . . , QA Automation — — .



— !



? - , , , O/RM 3000 . , - — . — . — , (. “object-relational impedance mismatch”). O/RM , ( — ). , . , SQL . .



— . -, . , , , - , e-mail . - , .



— !



— , . , . ? . + , , Unit of Work. , . DTO ( ), , Unit of Work, .



- , 10 , 10 , . , , . .



, , IT , 50 -, — . - , .



, — ! , , . IT-, .



— !



? , . , . , SOLID.



. UML, . , , , — . , , — . , — . .



, ( 99% ) . , , , . - — 50 . , ! . , , — . : , .



— ", " ", " . , , , , . — , .



— XXX — !



, , — . , — . XXX — . , .



" YYY"! , -. , YYY .



, — , YYY, GGG GGG. " " , redux: "redux — … !". - " YYY 5 " . .



, YYY , GGG. , , YYY , . ?



YYY . , YYY — , production- . , , , .





, . . , , , . " " , :





2000 ( VB.NET-C# ), . , .



,



100500 , . . . maintainability, .



, . , . ( - ).





, , DTO-. — . — , , . , . , . " ", .



— . ( ) , .





! — -! . , Java-, . - C# — , , , , !



, -, . . , . , , , , .





, , , , . ( ), . DI-. , . — .



— , — . - ( ), - , . , - , .



, , — . -… … .



. , , .





— . . , unit- . , . . , — .



- . , . CI- . — ! . , . — .



, , , — . ?



, meaningful-, , . .



: ? , - , -, , - , … - , QA, , . , . , , , — QA ", ", , , . - code coverage . — . !



TDD — . , . TDD .



...



, , . , . Tecture .



— , .



UPD: , .




All Articles