
Estou envolvido no desenvolvimento de aplicativos de negócios em .NET pela segunda década e sempre vejo os mesmos problemas - lixo e desordem. Uma confusão de serviços, UoW, DTOs, classes auxiliares. Em outros lugares, acesso direto ao banco de dados manualmente, lógica em classes estáticas, footcloths de configuração IoC de quilômetros de extensão.
Quando eu era jovem e bem-humorado, escrevia assim também. Em seguida, bateu na parede com o punho, gritando: "Basta! Da próxima vez, farei diferente." Na próxima vez, realmente começou "diferente" - com uma cabeça fria e uma abordagem rígida à arquitetura - mas a saída ainda acabou sendo a mesma substância, melhor em alguns milímetros.
No entanto, a evolução é uma coisa impiedosa: meu último sistema parecia-me mais ou menos próximo do ideal. A complexidade não cresceu muito, a velocidade de desenvolvimento não caiu por muito tempo, pelo menos novos funcionários entram no sistema. Tomei esses resultados como base, melhorei-os e agora anuncio a vocês meu novo desenvolvimento: Reinforced.Tecture.
De onde vem a bagunça
, , . , , , , , … , , — .
-, ?
— 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: , .