Pimpinan \ arsitek tim perusahaan saya berpendapat bahwa proyek skala besar lebih mudah dipahami jika "entitas yang terhubung oleh logika" ditempatkan dalam satu file .cs.
Saya mengutip:
"Seluruh struktur logika dan antarmuka dan kelas dapat dilihat di satu tempat, ini adalah argumen yang tidak dapat disangkal. Untuk melihat hal yang sama tetapi dengan banyak file Anda perlu menggunakan alat, kelas diagram, R # untuk navigasi, dll. "
"Mengikuti teori yang buruk saya mungkin berteriak bahwa sepasukan file yang terpisah itu keren, tetapi ketika datang untuk membuat perubahan pada kode yang ada, terutama jika Anda bukan penulis kode ini, sangat sulit untuk memahami banyak file yang tersebar. Jadi di forum, Anda dapat menulis "satu enum-file" itu, tetapi dalam praktiknya pendekatan ini tidak boleh digunakan "
"... Mengenai pemisahan basis kode antara pengembang, saat ini bukan masalah mengedit file yang sama secara bersamaan. Penggabungan bukan masalah."
Saya mendengar dan membaca berkali-kali bahwa kita harus membuat satu file .cs per enum, kelas dan seterusnya dan ini adalah praktik terbaik.
Tapi aku tidak bisa meyakinkannya. Dia mengatakan bahwa dia tidak percaya pada programmer terkenal seperti Jon Skeet. Ngomong-ngomong di sini adalah pendapat Skeet tentang topik ini: Di mana tempat terbaik untuk mencari tipe enum?
Bagaimana menurut anda? Apakah ada masalah nyata? Atau apakah ini masalah selera dan harus diatur oleh standar pengkodean organisasi?
sumber
Jawaban:
Ada beberapa kelemahan dalam argumen Ketua Tim Anda:
Kelas dan enum yang dirancang dengan baik dimaksudkan untuk digunakan di mana saja dalam proyek Anda, bukan hanya di tempat yang masuk akal.
Kelas dan enum yang didokumentasikan dengan baik dengan komentar XML sangat menggambarkan dirinya sendiri, dengan hanya mengarahkan kursor ke item yang merujuknya.
Anda selalu dapat masuk ke kelas atau definisi enum dengan mengklik kanan referensi dan memilih "Pergi ke Definisi," sehingga benar-benar tidak masalah di mana Anda meletakkannya.
Menempatkan objek bersama-sama dalam mode "logis" adalah sewenang-wenang (yaitu Anda harus berpikir tentang apa yang "logis" artinya. Saya lebih suka menghabiskan siklus jam itu melakukan pemrograman aktual).
Menyiapkan setiap definisi objek dalam file sendiri menciptakan harapan seragam, disiplin organisasi dan struktur, dan tidak menimbulkan pertanyaan seperti "mengapa ini ada di sini?" Itu hal yang sangat bagus untuk dimiliki.
Jika dua atau lebih objek terkait secara logis, cukup letakkan di folder mereka sendiri di Project Explorer.
sumber
Kemungkinan besar pemimpin tim memotong giginya di era sebelumnya ketika mengklik kanan dan memilih "pergi ke definisi" bukan pilihan. Saya tahu ketika saya dalam mode pengembangan lonjakan berat saya akan menumbuhkan file kelas yang cukup besar sampai saya membiarkan resharper memperbaikinya untuk saya.
Bagaimanapun, jika Anda ingin memimpin tim ke tugas, tanyakan padanya mengapa kelas dan enum ini bukan kelas dan enum anak - tidak ada alasan untuk menyatakannya sebagai entitas independen jika mereka benar-benar entitas yang tergantung. Ini mungkin membantunya memikirkan fatwa sedikit.
sumber