Saya ingin tahu mengapa Anda memutuskan untuk membangun kerangka kerja Anda sendiri di perusahaan Anda.
Menurut kerangka, saya tidak bermaksud beberapa perpustakaan yang sering Anda gunakan. Maksud saya cara khusus membangun aplikasi di atasnya, dengan kelas dasar, konvensi, dll.
Jadi mengapa Anda membangun kerangka kerja Anda sendiri? Bagaimana Anda bisa membenarkan hal itu kepada orang yang mempekerjakan Anda. Sudahkah Anda mengukur dampak positif dan negatifnya?
Mengenai pengalaman Anda, apakah Anda memperhatikan bahwa dalam beberapa kasus kerangka kerja perusahaan menghasilkan manfaat nyata, atau di sisi lain, peningkatan biaya pengembangan (kurva pembelajaran, debugging, pemeliharaan, ...)?
frameworks
Kilian Foth
sumber
sumber
Jawaban:
Jawab mengapa:
Memperbarui:
Perusahaan lebih suka menciptakan kembali roda daripada menggunakan kerangka kerja "kecil". Secara kecil saya mengacu pada kerangka kerja yang mungkin memiliki masa depan yang tidak pasti. Sebagai contoh. Kerangka NET lebih aman memilih untuk perusahaan daripada kerangka kerja yang dibuat oleh komunitas kecil. Perusahaan membutuhkan keamanan karena banyak dari aplikasi mereka adalah bisnis yang kritis dan juga berumur panjang. Biaya untuk menciptakan kembali roda mungkin lebih singkat. Tetapi biayanya mungkin lebih banyak jika kerangka yang digunakan dalam aplikasi perusahaan sudah tidak digunakan lagi dan tidak lagi didukung, atau lisensi diubah. Di sini perusahaan mungkin harus membuang kerangka kerja saat ini dan memasukkan yang lain. Visual Basic adalah contoh yang baik dari bahasa yang tidak lagi didukung oleh Microsoft. Dan ini merugikan perusahaan miliaran karena mereka harus memulai dari awal dengan pengembangan baru.
sumber
Mengapa membangun sendiri?
Mengapa tidak membangun sendiri?
sumber
Dalam posting saya pada saat yang tepat untuk menemukan kembali roda saya daftar sejumlah keuntungan dari implementasi ulang. Saya pikir kelebihan-kelebihan itu berlaku terutama untuk perpustakaan kerangka kerja. Sebagai contoh, seringkali tidak mungkin untuk mengisolasi penggunaan framework framework di dalam sebagian kecil aplikasi Anda. Sebaliknya, mereka cenderung mendikte struktur kode sumber klien, dan oleh karena itu diinginkan untuk memiliki kontrol penuh atas perpustakaan.
sumber
Satu-satunya alasan nyata untuk menemukan kembali roda adalah jika itu adalah aplikasi bisnis yang kritis. Jika perusahaan Anda akan menggunakan untuk beberapa waktu mendatang. Jika ini aplikasi / framework / dll. kemungkinan akan berkembang melampaui kerangka kerja komersial yang ada, kemudian meminta perusahaan pembuat kode untuk mengimplementasikannya tentu dapat diterima.
Satu-satunya alasan nyata terhadap ini adalah jika:
Kerangka kerja yang ada dipelihara dengan baik, sepenuhnya sesuai dengan tugas Anda, dan akan jauh ke masa depan.
Ini hanya kasus sindrom ' Not Invented Here '
Pengaturan Anda saat ini tidak akan berhasil membuat kerangka kerja ini dalam jumlah waktu yang wajar dengan biaya yang masuk akal.
Joel Spolsky menulis artikel yang sangat bagus tentang masalah ini: In Defence of Not-Invented-Here Syndrome
sumber
Pada dasarnya ketika Anda menggunakan karya orang lain, Anda menambahkannya sebagai majikan yang tidak terlihat atau "tangan ekstra".
Jika mereka baik, mereka akan membantu Anda. Jika tidak, Anda harus melakukan pekerjaan mereka di samping pekerjaan Anda sendiri - dengan kata lain pertahankan kode mereka. Ini mungkin risiko yang tidak dapat diterima, tetapi saya akan menganggapnya sangat jarang.
Kata kuncinya adalah membuat kerangka kerja bisa ditukar, dengan mengkodekan ke antarmuka. Antarmuka paling kaku di dunia Java adalah spesifikasi Sun, yang dibuktikan dengan servlet API.
Maka saya tidak akan mempertimbangkan ada alasan untuk tidak menggunakan kerangka kerja.
sumber
Kami punya kerangka kerja yang cukup matang di tempat saya bekerja. Berikut ringkasan Kerangka Yayasan
Salah satu alasan utama untuk menggunakannya adalah stabilitas. Kami tidak terikat dengan Microsoft atau pemasok lain yang didorong untuk menambahkan fitur dan kompleksitas baru setiap tahun.
(Pandangan saya sendiri, bukan dari atasan saya dll.)
sumber
Saya melakukan itu beberapa kali, untuk memenuhi persyaratan yang tidak tercakup oleh kerangka kerja yang ada (saat itu).
Dalam kebanyakan kasus, kerangka kerja yang ditanamkan di rumah itu kemudian telah dihapus oleh kerangka kerja yang lebih baru dan dewasa. Sebagai contoh, pada tahun 2000, saya membuat kerangka web Java, dalam beberapa aspek yang sebanding dengan Rails, yang digunakan untuk membuat sistem pemasukan pesanan yang rumit dengan beberapa formulir yang dibundel. Itu bekerja dengan baik, tetapi tentu saja, beberapa tahun kemudian, kerangka kerja yang lebih matang seperti Struts dan JSF membuatnya usang. Tapi saat itu, itu adalah hal yang benar untuk dilakukan, itu bekerja dengan baik dan kecepatan pengembangannya mengesankan.
Kerangka kerja lain yang saya kembangkan masih digunakan (dan juga dalam pengembangan aktif); versi pertama ditulis pada tahun 2004. Versi ini terutama digunakan untuk aplikasi intralogistics; perusahaan yang menggunakannya masih melihatnya sebagai fitur yang membedakan. Alasan utama untuk membuatnya adalah untuk membuatnya mudah untuk membuat aplikasi yang terhubung dengan basis data untuk pemindai kode batang seluler (menjalankan beberapa rasa Windows CE); itu bekerja dengan sangat baik sehingga para bos memutuskan untuk menggunakan konsep yang sama untuk perangkat lunak PC juga, dan, yah, mereka masih senang dengannya.
sumber