He estado involucrado en el desarrollo de aplicaciones comerciales en .NET durante la segunda dĂ©cada y cada vez veo los mismos problemas: basura y desorden. Un lĂo de servicios, UoW, DTO, clases de ayuda. En otros lugares, acceso directo a la base de datos de forma manual, lĂłgica en clases estáticas, tapices de configuraciĂłn IoC de kilĂłmetros de longitud.
Cuando era un joven de mediana edad y alegre, tambiĂ©n escribĂa asĂ. Luego golpeĂł la pared con el puño y gritĂł: "¡Basta! La prĂłxima vez lo harĂ© de otra manera". La prĂłxima vez realmente comenzĂł "de manera diferente", con la cabeza frĂa y un enfoque estricto de la arquitectura, pero la salida resultĂł ser la misma sustancia, mejor en un par de milĂmetros.
Sin embargo, la evoluciĂłn es algo despiadado: mi Ăşltimo sistema me parecĂa más o menos cercano al ideal. La complejidad no aumentĂł mucho, la velocidad de desarrollo no disminuyĂł durante mucho tiempo, al menos nuevos empleados están ingresando al sistema. TomĂ© como base estos resultados, los mejorĂ© y ahora les anuncio mi nuevo desarrollo: Reforzado.Tectura.
De donde viene el desastre
, , . , , , , , … , , — .
-, ?
— 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: , .