Ketika mengembangkan suatu sistem atau aplikasi yang Anda rencanakan untuk digunakan dengan kerangka kerja tertentu, apakah itu praktik terbaik untuk merancang sistem tanpa kerangka kerja dalam pikiran, atau lebih baik untuk merancang sistem dengan pola pikir "baik kerangka kerja akan memiliki waktu yang lebih mudah dengan ini".
development-process
systems
Robert Pounder
sumber
sumber
Jawaban:
Desain Anda harus memenuhi kebutuhan klien semaksimal mungkin. Ingatlah bahwa desain mencakup hal-hal kecil seperti:
Tak satu pun dari hal-hal ini harus ditentukan oleh kerangka kerja. Jika jelas bahwa Anda akan memperjuangkan kerangka kerja Anda untuk mencapai tujuan-tujuan ini, maka Anda memilih kerangka kerja baru yang akan membantu Anda mencapai tujuan-tujuan tersebut sebelum Anda mulai menulis kode.
Setelah Anda memilih set alat yang sesuai (kerangka adalah alat), maka saya sarankan menggunakan alat cara mereka dirancang untuk digunakan. Semakin jauh Anda menyimpang dari desain kerangka kerja, semakin Anda meningkatkan kurva belajar untuk tim Anda, dan semakin besar kemungkinan terjadi kesalahan.
Pendeknya
Pikiran Lebih Lanjut:
Setelah 20+ tahun rekayasa perangkat lunak, dan menggunakan beberapa kerangka kerja, saya telah belajar beberapa pelajaran. Semua kerangka kerja adalah pedang bermata dua: keduanya membatasi dan mengaktifkan. Masalah dengan memutuskan kerangka kerja Anda sebelum Anda melihat 3 besar yang saya sebutkan di atas adalah bahwa Anda mungkin mengorbankan pengalaman pengguna yang baik untuk yang sedang-sedang saja (paling-paling). Atau Anda mungkin terpaksa menyimpang dari desain kerangka kerja untuk mencapai beberapa fungsi spesifik.
sumber
Kerangka kerja secara alami mempengaruhi desain modul dan sub-sistem khusus (seperti front-end GUI). Seperti jawaban lain yang disebutkan, Anda akan mengalami kesulitan jika Anda menemukan diri Anda berjuang melawan kerangka pilihan Anda.
Namun secara lebih luas, Anda harus menghindari membiarkan kerangka tunggal atau teknologi mendikte atau mengarahkan "gambaran besar" dari keseluruhan arsitektur sistem Anda. Sebagian besar kerangka kerja tujuan umum tidak mendorong ini, jadi jika Anda menemukan diri Anda menulis seluruh sistem Anda di satu kerangka kerja maka Anda mungkin melakukan sesuatu yang tidak dimaksudkan oleh penulis kerangka kerja itu.
Anda mungkin akan menggunakan banyak kerangka kerja yang berbeda untuk menyelesaikan masalah yang berbeda; karena sistem Anda menjadi lebih kompleks, Anda perlu berhati-hati untuk tidak membangun The Big Ball Of Mud . Jika memungkinkan, jaga agar sistem Anda tetap modular dan longgar. Beberapa kerangka kerja mungkin lebih baik disimpan di belakang abstraksi dengan menulis pembungkus dan adaptor yang 'menyembunyikan' alur kerja khusus Kerangka jauh dari komponen lain. Toolkit GUI cenderung hanya melayani fungsionalitas GUI front-end, sehingga modul GUI tersebut harus dijauhkan dari sisa sistem.
Kerangka kerja tujuan umum (seperti kerangka kerja UI, kerangka kerja lapisan data, dll.) Tidak ada untuk meresepkan arsitektur lengkap sistem Anda - paling banyak mereka mungkin meresepkan desain komponen atau modul; misalnya, beberapa teknologi GUI diarahkan untuk pola MV * tertentu.
Arsitektur keseluruhan sistem Anda terutama harus didorong oleh persyaratan bisnis Anda . Anda mungkin mendapati diri Anda sangat bergantung pada alat tertentu (misalnya, alat pesan middleware, atau kerangka kerja ORM) untuk mengikat semuanya, tetapi jika Anda merangkum kerangka kerja dalam abstraksi seperti kelas 'layanan' yang Anda Kecil kemungkinannya untuk menemukan diri Anda dibatasi oleh kerangka itu ketika Anda menemukan keterbatasannya.
Coba perhatikan hal-hal berikut untuk desain gambar besar Anda:
sumber
Ya, Anda harus tetap sedekat mungkin dengan apa yang dikatakan "kerangka kerja" yang harus Anda lakukan.
Alasannya adalah karena semakin dekat Anda dengan kerangka berpikir "cara", semakin mudah Anda akan dapat berbicara dengan pengembang lain tentang masalah / ide Anda yang juga menggunakan kerangka itu.
Anda meningkatkan interoperabilitas dan kemudahan penggunaan untuk orang lain yang menggunakannya nanti, Anda akan memahami dan menggabungkan tutorial atau solusi umum dengan lebih baik jika Anda tetap pada filosofi yang mendasari apa pun yang Anda gunakan.
Satu-satunya alasan bagus yang dapat saya pikirkan mengapa Anda akan "mematahkan" kerangka kerja adalah bahwa Anda benar-benar membutuhkan sesuatu yang tidak dapat disediakan dengan konfigurasi / penerapan prinsip "default" -nya. Tapi kemudian, itu mungkin bukan kerangka kerja yang tepat untuk memulai.
Pada dasarnya, ini dapat diterapkan pada keputusan lain juga. Anda harus menggunakan bahasa yang Anda gunakan sedekat yang seharusnya digunakan, karena itu membuat segalanya lebih mudah jika Anda berbicara bahasa yang sama dengan orang lain.
sumber