Sedikit latar belakang: Sebagai pemimpin tim saya menggunakan NDepend seminggu sekali untuk memeriksa kualitas kode kami. Khususnya cakupan uji, baris kode dan metrik kompleksitas siklomatik sangat berharga bagi saya. Tetapi ketika sampai pada levelisasi dan siklus ketergantungan saya sedikit ... prihatin. Patrick Smacchia memiliki posting blog yang bagus yang menggambarkan tujuan levelisasi.
Agar lebih jelas: Di bawah "siklus ketergantungan" saya memahami referensi melingkar antara dua ruang nama.
Saat ini saya sedang mengerjakan kerangka GUI berbasis Windows CE untuk instrumen yang tertanam - pikirkan saja platform grafis Android tetapi untuk instrumen yang sangat rendah. Kerangka kerja ini adalah perakitan tunggal dengan sekitar 50.000 baris kode (tidak termasuk tes). Kerangka kerja dibagi menjadi ruang nama berikut:
- Navigasi Inti & Subsistem Menu
- Subsistem Layar (Penyaji / Tampilan / ...)
- Lapisan Kontrol / Widget
Hari ini saya menghabiskan setengah hari untuk mencoba membawa kode ke tingkat yang tepat [terima kasih kepada Resharper tidak ada masalah secara umum] tetapi dalam semua kasus beberapa siklus ketergantungan ada.
Jadi pertanyaan saya: Seberapa ketat Anda mengikuti aturan "Tidak Ada Siklus Ketergantungan"? Apakah levelisasi benar-benar penting?