Perlu diketahui bahwa saya penggemar berat ketergantungan injeksi (DI) dan pengujian otomatis. Saya bisa berbicara sepanjang hari tentang hal itu.
Latar Belakang
Baru-baru ini, tim kami baru saja mendapatkan proyek besar ini yang dibangun dari awal. Ini adalah aplikasi strategis dengan persyaratan bisnis yang kompleks. Tentu saja, saya ingin itu bagus dan bersih, yang bagi saya berarti: dapat dipelihara dan diuji. Jadi saya ingin menggunakan DI.
Perlawanan
Masalahnya ada di tim kami, DI itu tabu. Sudah dibesarkan beberapa kali, tetapi para dewa tidak menyetujui. Tapi itu tidak membuat saya patah semangat.
Kepindahan saya
Ini mungkin terdengar aneh tetapi perpustakaan pihak ketiga biasanya tidak disetujui oleh tim arsitek kami (pikirkan: "Anda tidak boleh berbicara tentang Persatuan , Ninject , NHibernate , Moq atau NUnit , jangan sampai saya memotong jari Anda"). Jadi, alih-alih menggunakan wadah DI yang sudah mapan, saya menulis wadah yang sangat sederhana. Ini pada dasarnya menghubungkan semua dependensi Anda pada startup, menyuntikkan dependensi (konstruktor / properti) dan membuang objek sekali pakai di akhir permintaan web. Itu sangat ringan dan hanya melakukan apa yang kami butuhkan. Dan kemudian saya meminta mereka untuk memeriksanya.
Responnya
Yah, untuk membuatnya singkat. Saya bertemu dengan perlawanan yang berat. Argumen utama adalah, "Kita tidak perlu menambahkan lapisan kompleksitas ini ke proyek yang sudah rumit". Juga, "Ini tidak seperti kita akan memasukkan implementasi komponen yang berbeda". Dan "Kami ingin membuatnya sederhana, jika mungkin memasukkan semuanya ke dalam satu unit. DI adalah kompleksitas yang tidak dibutuhkan tanpa manfaat".
Akhirnya, Pertanyaan Saya
Bagaimana Anda menangani situasi saya? Saya tidak bagus dalam menyajikan ide-ide saya, dan saya ingin tahu bagaimana orang akan mempresentasikan argumen mereka.
Tentu saja, saya berasumsi bahwa seperti saya, Anda lebih suka menggunakan DI. Jika Anda tidak setuju, tolong katakan mengapa saya bisa melihat sisi lain dari koin. Akan sangat menarik untuk melihat sudut pandang seseorang yang tidak setuju.
Memperbarui
Terima kasih atas jawaban semua orang. Itu benar-benar menempatkan segala sesuatu dalam perspektif. Cukup baik untuk memiliki satu set mata untuk memberi Anda umpan balik, lima belas benar-benar hebat! Ini adalah jawaban yang sangat bagus dan membantu saya melihat masalah dari sisi yang berbeda, tetapi saya hanya dapat memilih satu jawaban, jadi saya hanya akan memilih yang teratas. Terima kasih semuanya telah meluangkan waktu untuk menjawab.
Saya telah memutuskan bahwa ini mungkin bukan waktu terbaik untuk menerapkan DI, dan kami belum siap untuk itu. Sebagai gantinya, saya akan memusatkan upaya saya untuk membuat desain dapat diuji dan berusaha menyajikan pengujian unit otomatis. Saya sadar bahwa tes menulis adalah overhead tambahan dan jika pernah diputuskan bahwa overhead tambahan tidak sepadan, secara pribadi saya masih akan melihatnya sebagai situasi menang karena desain masih dapat diuji. Dan jika pernah menguji atau DI adalah pilihan di masa depan, desain dapat dengan mudah mengatasinya.