Kapan lebih produktif untuk membangun kerangka kerja Anda sendiri daripada menggunakan kerangka kerja yang sudah ada? [Tutup]


22

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, ...)?


6
Saya tidak memutuskan. Agak dibuat sendiri ...
Mchl

Jawaban:


16

Jawab mengapa:

  • Masalah lisensi
  • Persyaratan khusus perusahaan yang tidak ada dalam kerangka kerja saat ini
  • Perusahaan ingin memiliki kendali atas dukungan dan pemeliharaan kerangka kerja
  • Arsitek tidak tahu yang lebih baik! Dia tidak tahu tentang kerangka kerja yang ada, jadi mereka memutuskan untuk menemukan kembali roda.

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.


8

Mengapa membangun sendiri?

  1. karena belum pernah dibangun sebelumnya (jarang, tetapi kemungkinan tetap)
  2. karena Anda ingin kontrol penuh.
  3. karena Anda hanya perlu sedikit fungsionalitas sehingga lebih murah untuk membuatnya sendiri

Mengapa tidak membangun sendiri?

  1. Anda tidak punya waktu untuk melakukannya
  2. mungkin jauh lebih murah jika Anda membeli kerangka kerja yang ada
  3. Anda menghemat banyak waktu dan bisa menjadi produktif jauh lebih cepat

7

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.


3

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:

  1. Kerangka kerja yang ada dipelihara dengan baik, sepenuhnya sesuai dengan tugas Anda, dan akan jauh ke masa depan.

  2. Ini hanya kasus sindrom ' Not Invented Here '

  3. 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


2

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.


1
Sangat membantu untuk melihat proses pengembangan dari kerangka mana pun yang Anda adopsi. Kerangka kerja dengan komunitas yang kuat dan proses terbuka, di mana sebagai pengguna Anda dapat melihat semua yang terjadi, dan memilih untuk mempengaruhinya, berisiko rendah, terutama jika mereka datang dengan kode sumber (saya mencoba menghindari kode yang tidak dapat saya buat ). Dalam hal itu mengembangkan pembungkus tambahan di sekitar kerangka tidak diperlukan.
Joeri Sebrechts

2

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.)


2

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.