Tizimning kengaytirilishi. Tizimga uning asosiy tuzilishini buzmasdan yangi ob’ektlar va funktsiyalarni qo’shish imkoniyati. Dastlabki bosqichda tizimga faqat asosiy va eng zarur funksionallikni kiritish mantiqan to’g’ri keladi (Yagni printsipi - you ain’t gonna need it — bu sizga kerak bo’lmaydi, “Sizga kerak emas”) Lekin shu bilan birga, arxitektura kerak bo’lganda qo’shimcha funksiyalarni osongina oshirish imkonini berishi kerak. Shunday qilib, eng mumkin bo’lgan o’zgarishlarni kiritish uchun eng kam harakat talab etiladi.
Tizim arxitekturasining moslashuvchan va kengaytiriladigan (ya’ni o’zgarish va evolyutsiyaga qodir) bo’lishi talabi shunchalik muhimki, u hatto alohida tamoyil (printsip) sifatida shakllantirilgan - Ochiq-yopiq tamoyil – (Open-
Closed Principle - beshta SOLID tamoyilining ikkinchisi): Dastur ob’ektlari (sinflar, modullar, funktsiyalar va boshqalar) kengaytirish uchun ochiq, lekin o’zgartirish uchun yopiq bo’lishi kerak. Boshqacha qilib aytganda: tizimning mavjud qismlarini o’zgartirmasdan/qayta yozmasdan tizimni kengaytirish/o’zgartirish imkoniyati bo’lishi kerak.
Bu shuni anglatadiki, dastur shunday ishlab chiqilishi kerakki, uning xatti- harakatini o’zgartirish va yangi funksiyalarni qo’shish mavjud kodni o’zgartirmasdan, yangi kod (kengaytmalar) yozish orqali amalga oshiriladi. Bunday holda, yangi talablarning paydo bo’lishi mavjud mantiqni o’zgartirishga olib kelmaydi, lekin birinchi navbatda uni kengaytirish orqali amalga oshirilishi mumkin. Aynan shu tamoyil "plugin arxitekturasi" (Plugin Architecture) ning asosi hisoblanadi.
Rivojlanish jarayonining kengayishi. Loyihaga yangi odamlarni qo’shish orqali rivojlanish vaqtini qisqartirish qobiliyati. Arxitektura dastur ustida bir vaqtning o’zida ko’p odamlar ishlashi uchun rivojlanish jarayonini parallellashtirishga imkon berishi kerak.
Sinovga yaroqlilik. Tekshirish osonroq bo’lgan kod kamroq xatolarni o’z ichiga oladi va ishonchliroq bo’ladi. Ammo testlar kod sifatini yaxshilashdan ko’proq narsani amalga oshiradi. Ko’pgina ishlab chiquvchilar "yaxshi sinovdan o’tish" talabi avtomatik ravishda yaxshi loyihaga olib keladigan yetakchi kuch va shu bilan birga uning sifatini baholashning eng muhim mezonlaridan biri degan xulosaga kelishadi: Yaxshi sinf dizaynining "lakmus qog’ozi" sifatida "sinovga layoqatliligi" tamoyilidan foydalanish kerak. Agar siz bir qator test kodini yozmasangiz ham, bu savolga 90% javob berish, loyihadagi hamma narsa qanchalik “yaxshi” yoki “yomon” ekanligini tushunishga yordam beradi.
Testlarga asoslangan dasturlarni ishlab chiqishning butun metodologiyasi mavjud bo’lib, u Test-Driven Development (TDD) deb ataladi.
Do'stlaringiz bilan baham: |