
Saya telah terlibat dalam pengembangan aplikasi bisnis di .NET selama dekade kedua dan setiap kali saya melihat masalah yang sama - sampah dan kekacauan. Layanan yang berantakan, UoW, DTO, kelas pembantu. Di tempat lain, akses langsung ke database dengan tangan, logika di kelas statis, footcloth konfigurasi IoC sepanjang kilometer.
Ketika saya masih muda dan tengah bersemangat tinggi, saya juga menulis seperti itu. Kemudian dia menabrak dinding dengan tinjunya, berteriak: "Cukup! Lain kali aku akan melakukannya dengan cara berbeda." Kali berikutnya itu benar-benar dimulai dengan "berbeda" - dengan kepala dingin dan pendekatan arsitektur yang ketat - tetapi hasilnya masih berubah menjadi substansi yang sama, lebih baik beberapa milimeter.
Namun, evolusi adalah hal yang tanpa ampun: sistem terakhir saya menurut saya kurang lebih mendekati ideal. Kompleksitas tidak tumbuh banyak, kecepatan pengembangan tidak turun cukup lama, karyawan baru setidaknya memasuki sistem. Saya mengambil hasil ini sebagai dasar, memperbaikinya dan sekarang saya mengumumkan kepada Anda perkembangan baru saya: Reinforced.Tecture.
Dari mana asal kekacauan itu
, , . , , , , , β¦ , , β .
-, ?
β 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: , .