Middle+
Siniflərdən daha yüksək səviyyədə modulları ayırmaq üçün hansı prinsiplərdən istifadə edərdiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Yüksək səviyyədə modulları ayırmaq üçün aşağıdakı prinsiplərdən istifadə edərdim:
- İnkapsulyasiya və əlaqəliliyin prinsiplərinə görə (Cohesion & Coupling). Modullar mümkün qədər öz-özünə kifayət etməli (modul daxilində yüksək əlaqəlilik) və bir-birinə minimal asılılığa malik olmalı (aşağı əlaqəlilik). Bu, kodun test edilməsini, anlaşılmasını və dəyişdirilməsini asanlaşdırır.
- Funksional sahəyə görə. Modullar biznes məntiqinə və ya xüsusi məsuliyyət sahəsinə görə qruplaşdırılır (məsələn, istifadəçi idarəetməsi, ödənişlərin emalı, bildirişlərin göndərilməsi).
- Memarlıq qatlarına görə. Çox qatlı memarlıqda (məsələn, Təqdimat, Biznes Məntiqi, Məlumatlara Giriş) hər qat ayrı modul və ya modul qrupunu təmsil edə bilər.
- Yeganə məsuliyyət prinsipi (Single Responsibility Principle - SRP) modullara tətbiq edilərək. Modul dəyişiklik üçün yalnız bir səbəbə malik olmalıdır. Bu, SRP-nin daha böyük miqyasda ümumiləşdirilməsidir.
- Ən az ayrıcalıq prinsipi (Principle of Least Privilege). Modullar yalnız ehtiyac duyduqları məlumatlara və funksiyalara giriş imkanı əldə etməlidir.
- Gələcək dəyişiklikləri nəzərə alaraq. Memarlıq kifayət qədər çevik olmalı ki, potensial inkişaf və dəyişiklikləri nəzərə alsın. Modullar mümkün qədər bir-birindən müstəqil olmalı, yeni funksiyaların əlavə olunması və ya mövcudların dəyişdirilməsi asanlaşsın.
- İstifadə olunan çərçivələr və nümunələr əsasında. Modulun strukturu çox vaxt seçilmiş çərçivə tərəfindən və ya dəstəklənə bilər (məsələn, MVC-də hər V, M, C ayrı modul və ya modul qrupuna aid ola bilər) və ya memarlıq nümunələri ilə (məsələn, DDD - Domain-Driven Design, yığım üzrə bölünmə).
Bu prinsiplər tətbiqin daha idarə olunan, genişlənə bilən və saxlanması asan memarlıq yaratmağa kömək edir.