Sufrí terribles arquitecturas en aplicaciones C # durante diez años, y ahora descubrí cómo solucionarlas.



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 .



...



, , . , . Tecture .



— , .



UPD: , .




All Articles