لقد عانيت من البنى الرهيبة في تطبيقات C # لمدة عشر سنوات - والآن وجدت كيفية إصلاحها.



لقد شاركت في تطوير تطبيقات الأعمال في .NET للعقد الثاني وفي كل مرة أرى نفس المشاكل - حماقة وفوضى. فوضى في الخدمات ، UoW ، DTOs ، فئات المساعدة. في أماكن أخرى ، الوصول المباشر إلى قاعدة البيانات يدويًا ، والمنطق في الفئات الثابتة ، وأغطية قدم تكوين IoC بطول كيلومتر.



عندما كنت شابًا ووسطيًا مفعمًا بالحيوية ، كتبت هكذا أيضًا. ثم ضرب الحائط بقبضته ، صارخًا: "كفى! في المرة القادمة سأفعل ذلك بشكل مختلف." في المرة التالية بدأ الأمر حقًا "بشكل مختلف" - برأس رائع ونهج صارم في الهندسة المعمارية - لكن الناتج لا يزال هو نفس المادة ، أفضل ببضعة ملليمترات.



ومع ذلك ، فإن التطور شيء لا يرحم: بدا لي نظامي الأخير أقرب أو أقل من المثالية. لم يزداد التعقيد كثيرًا ، ولم تنخفض سرعة التطوير لفترة طويلة ، ودخل الموظفون الجدد على الأقل إلى النظام. لقد اتخذت هذه النتائج كأساس ، وقمت بتحسينها والآن أعلن لكم تطوري الجديد: Reinforced.Tecture.



من أين تأتي الفوضى



, , . , , , , , … , , — .



-, ?



— 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