Saya cenderung bekerja paling banyak dengan aplikasi web dan meskipun saya mencoba bersikap umum, jawaban saya mungkin tidak berlaku untuk area pemrograman Anda.
Saya juga akan menggunakan "framework" sinonim dengan "library".
Sebelum menerapkan suatu kerangka kerja, seseorang harus mempertimbangkan beberapa hal, berikut adalah beberapa contoh umum.
# 1. Apakah kerangka kerja ini menghemat waktu dan usaha?
Jawaban atas pertanyaan ini hampir selalu ya . Kerangka kerja cenderung dibangun untuk memecahkan masalah tertentu , dan menyelesaikannya dengan sangat baik. Misalnya, kerangka kerja seperti EntityFramework dapat menyelamatkan Anda sepenuhnya dari penulisan kode-SQL. Yang bisa fantastis jika tim pemrograman Anda tidak lancar dalam SQL.
Kerangka kerja dibangun untuk, a) menambahkan antarmuka yang ramah programmer ke komponen yang kompleks atau b) menambahkan abstraksi ke komponen yang sudah dikenal (atau mapan).
Yang terakhir (atau bahkan yang pertama dalam beberapa kasus) sebenarnya dapat menghalangi pembangunan. Ini berlaku terutama ketika Anda atau tim pemrograman Anda akan menerapkan kerangka kerja baru, di mana mereka belum pernah bekerja sebelumnya.
Ini berpotensi memperlambat proses pengembangan Anda, yang bisa berpotensi mahal.
# 2 Skala aplikasi Anda
Dikatakan bahwa "apa pun yang layak dilakukan layak untuk dilakukan" , tetapi biasanya bukan itu masalahnya. Mungkin tidak ada alasan yang baik untuk menerapkan kerangka kerja berukuran super jika tujuan aplikasi Anda adalah mencetak "kentang" .
Ketika Anda sedang mengembangkan suatu aplikasi (baik itu web, desktop, seluler, atau jenis aplikasi apa pun lainnya) - jika Anda merasa bahwa ukuran kerangka kerja Anda "mengerdilkan" implementasi Anda (mungkin di masa depan), maka ini mungkin besar tanda peringatan bahwa kerangka kerja Anda mungkin hanya membengkak aplikasi Anda. Anekdot yang bagus adalah jika Anda memasukkan jQuery, hanya untuk menambahkan "load" -kelas ke tag tubuh Anda ketika dokumen siap. Melakukannya hanya dengan JavaScript asli mungkin sedikit lebih sulit , tetapi itu tidak mengasapi aplikasi Anda.
Di sisi lain jika suatu kerangka kerja melakukan banyak pekerjaan kotor di dalam (yaitu kerangka kerja basis data), maka mungkin layak untuk mengimplementasikannya, bahkan jika Anda hanya "sebagian" menggunakan kerangka kerja tersebut. Anekdot yang bagus adalah dengan tidak mencoba membuat ADO.NET atau driver MongoDB Anda sendiri, hanya karena Anda tidak perlu memanfaatkan seluruh pustaka.
Kadang-kadang kerangka kerja datang open-source (dan dengan lisensi 'lakukan-apa pun yang Anda inginkan'). Ini membuka kemungkinan baru di mana tim pemrograman mungkin hanya memilih bagian-bagian kerangka kerja.
Ini pada akhirnya terkait kembali ke pertanyaan # 1 dan # 3.
Dampak # 3.
Terkadang menerapkan kerangka kerja dapat berdampak langsung pada pengguna akhir. Ini terutama berlaku untuk aplikasi web, karena memiliki kerangka kerja sisi klien yang besar dapat berdampak negatif pada pengalaman pengguna akhir. Pengguna dengan mesin yang lebih lambat mungkin mengalami rendering yang lambat, masalah kinerja dengan javascript atau masalah serupa yang disebabkan oleh mesin sub-par. Pengguna dengan koneksi lambat mungkin mengalami waktu pemuatan yang lambat (setidaknya awal).
Bahkan dalam aplikasi jenis lain, pengguna akhir mungkin terkena dampak negatif oleh ketergantungan aplikasi Anda. Kerangka setidaknya selalu mengambil beberapa ruang disk, dan jika Anda sedang mengembangkan sebuah aplikasi ponsel (atau bahkan aplikasi desktop) ini mungkin perlu dipertimbangkan.
Kerangka kerja sisi server (bahkan lebih khusus web) kemungkinan besar tidak akan memengaruhi pengguna akhir Anda, tetapi itu akan memengaruhi infrastruktur Anda . Beberapa kerangka kerja memiliki dependensi sendiri yang mungkin mengharuskan Anda untuk me-restart server web Anda, baik hanya layanan atau server sepenuhnya.
Beberapa kerangka kerja mungkin juga sangat banyak sumber daya.
Ini tentu saja terkait kembali ke poin # 1 dan # 2.
Itu semua hanya "lingkaran pertimbangan" besar, dan tidak ada metode ilmiah nyata untuk memutuskan apakah Anda harus menerapkan kerangka kerja atau tidak.
Corbin March merangkumnya dengan sangat baik:
Semua kelompok yang pernah bekerja sama dengan saya melakukan hal yang sama - membuat perkiraan biaya dan manfaat, memilih rute yang paling produktif, dan berharap mereka benar. Ini tidak terlalu ilmiah - satu bagian intuisi, tiga bagian pengalaman, satu bagian kerentanan terhadap pemasaran, satu bagian licik, dan pendapat lima bagian peringkat.
Penting juga untuk tidak menjadi elitis . Kerangka adalah alat yang dimaksudkan untuk digunakan. Saya tahu orang-orang dari kedua ekstrem; di satu sisi Anda memiliki pria yang membuat hidup sangat sulit untuk dirinya sendiri, di sisi lain Anda memiliki pria yang membuat aplikasi yang lambat dan membengkak.
Semua kerangka kerja memiliki kasus penggunaan, hanya masalah menerapkannya untuk tujuan yang benar.