J'ai été impliqué dans le développement d'applications d'entreprise dans .NET pendant la deuxième décennie et chaque fois que je vois les mêmes problèmes - merde et désordre. Un désordre de services, UoW, DTO, classes d'assistance. Dans d'autres endroits, accès direct à la base de données à la main, logique dans les classes statiques, chaussons de configuration IoC de plusieurs kilomètres.
Quand j'étais un milieu jeune et plein d'entrain, j'écrivais aussi comme ça. Puis il a frappé le mur avec son poing en criant: "Assez! La prochaine fois, je le ferai différemment." La prochaine fois, cela a vraiment commencé "différemment" - avec une tête froide et une approche stricte de l'architecture - mais le résultat s'est avéré être la même substance, mieux de quelques millimètres.
Cependant, l'évolution est une chose impitoyable: mon dernier système m'a semblé plus ou moins proche de l'idéal. La complexité n'a pas beaucoup augmenté, la vitesse de développement n'a pas baissé pendant assez longtemps, de nouveaux employés entrent au moins dans le système. J'ai pris ces résultats comme base, je les ai améliorés et maintenant je vous annonce mon nouveau développement: Reinforced.Tecture.
D'où vient le désordre
, , . , , , , , … , , — .
-, ?
— 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 .
...
— , .
UPD: , .