Saya perlu memulai desain dan pengembangan kerangka kerja baru untuk berinteraksi dengan ECM open source. Ini termasuk model data yang disesuaikan untuk membantu pengembang situs web berinteraksi dengan ECM ini, sehingga mereka tidak perlu peduli dengan detail manipulasi node dan detail tingkat rendah lainnya. Itu hanya sekelompok kelas dan metode untuk dikembangkan.
Saya memiliki keraguan tentang bagaimana menangani organisasi dan manajemen proyek itu: Apakah ada beberapa aturan umum untuk diikuti, tips, praktik terbaik atau sesuatu yang perlu diingat untuk mengembangkan proyek semacam ini?
Saya yakin ada beberapa perbedaan antara pengembangan kerangka kerja atau pustaka dan aplikasi.
design
project-management
Andrea Girardi
sumber
sumber
Jawaban:
Pertama di sini adalah 2 aturan saya untuk menghindari sindrom limbah kerangka:
Setelah Anda melewati itu, lihat ini:
sumber
1) Fitur hanya dapat ditambahkan ke Kerangka ketika mereka diekstraksi dari kode kerja. Dengan kata lain, sebelum menambahkan ide baru yang keren ke kerangka kerja baru yang keren, pastikan itu benar-benar menambah nilai dan mengurangi pengulangan dalam aplikasi dunia nyata yang berfungsi.
2) Dokumentasi, dokumentasi, dokumentasi.
3) Dokumentasi, dokumentasi, dokumentasi.
sumber
Pengalaman yang menyakitkan dan banyak usaha yang sia-sia mengarah pada saran ini: mengekstrak atau memperbaiki kerangka kerja dari perangkat lunak yang berfungsi. Bangun perangkat lunak itu dengan mengingat bahwa Anda pikir Anda ingin mengekstraksi kerangka kerja di masa depan, tetapi jangan membangun kerangka kerja terlebih dahulu.
sumber
Saya akan menyarankan buku Kerangka Desain Pedoman . Ini berumur beberapa tahun, tetapi prinsip-prinsipnya tetap benar. Ini memiliki banyak pola dan menjelaskan alasan di balik keputusan yang akan Anda buat ketika membangun kerangka kerja.
sumber
1) Tetap pada konvensi yang baik sejak awal, pastikan Anda telah mendokumentasikan konvensi yang sangat spesifik, kerangka kerja terbaik adalah yang konsisten secara internal.
2) Pastikan semuanya terdokumentasi dengan baik, mulai dari komentar kode yang baik hingga menjelaskan apa fungsi paling penting yang diperlukan dan hasilkan, bahkan jika itu tampak sangat sederhana bagi Anda, Anda mungkin memiliki seseorang menggunakannya pada jam 14 dan mereka hanya perlu satu hal saat itu.
3) Tetapkan ringkasan proyek untuk diri Anda sendiri, dengan kerangka kerja yang ingin Anda capai, target yang realistis dan prioritas keseluruhan.
4) Jika tersedia untuk digunakan orang, pastikan Anda memiliki beberapa bentuk proses dukungan / pelacakan bug. Akan ada bug, itu terjadi pada kita semua, tetapi jika Anda bisa mengelolanya dari sana akan membuat hidup Anda lebih mudah.
Semua dalam semua, pendekatan yang mirip untuk membangun aplikasi apa pun, tetapi pengembang bahkan lebih fussier daripada pengguna, dan kerangka kerja terbaik adalah yang kita bisa ambil, masuk akal, dan kita tidak perlu berjuang.
sumber
Saya tidak setuju dengan banyak hal yang telah dikatakan dan saya merasa lebih banyak yang tidak disebutkan sehingga saya akan mulai dari awal.
Metodologi Agile
Adopsi metodologi lincah selama pengembangan kerangka kerja Anda sehingga Anda dapat beradaptasi dengan perubahan, bereaksi cepat terhadap penghalang jalan, dan memastikan produk akhir yang fungsional dan berkualitas. Metodologi Agile adalah metodologi yang, menurut "Agile Manifesto", memprioritaskan:
Betul. Saya mengatakan fungsionalitas lebih penting daripada dokumentasi. Perhatikan bahwa "Agile Manifesto" menyebutkan bahwa prioritas tangan kanan masih penting, hanya lebih sedikit daripada prioritas di sebelah kiri.
Komunikasi
Siapa pun yang membuat kerangka kerja perlu tahu:
Sebagai contoh, jika sebuah perusahaan berniat untuk mengembangkan aplikasi final dengan ASP. NET akan bodoh untuk mengatakan kepada programmer-nya "membuat kerangka kerja ini" tanpa memberi tahu mereka hal di atas. Jika pemrogram tidak tahu aplikasi target mereka mungkin tidak membuatnya berorientasi web. Jika mereka tidak tahu masalahnya, mereka mungkin membuat kerangka kerja untuk tujuan yang berbeda. Jika mereka tidak tahu audiens mereka dapat memprogram kerangka kerja di C ++. Salah satu dari keadaan ini akan membuat kerangka yang dihasilkan tidak berguna.
Gaya
Tak perlu dikatakan, membangun gaya / format pemrograman dan tetap menggunakannya.
E's
sumber
Proses pengembangan pada dasarnya sama. Perbedaannya mungkin berkaitan dengan masalah pemasaran dan penyebaran, meskipun saya menemukan bahwa perbedaan terbesar biasanya dalam hal cakupan dan definisi proyek. Ingat bahwa Aplikasi dapat menyertakan atau menggunakan kerangka kerja atau perpustakaan, kerangka kerja mungkin kumpulan perpustakaan.
Organisasi dan manajemen proyek sekali lagi sama untuk setiap proyek pengembangan. Sekali lagi turun ke ruang lingkup. Namun ketika harus menulis kerangka kerja, membayar untuk memiliki visi yang sangat jelas tentang apa yang ingin Anda capai, dan untuk menempatkan aturan desain yang ketat pada antarmuka publik ke kerangka kerja untuk memastikan konsistensi dalam hal presentasi API. Jika Anda mengizinkan setiap pengembang untuk melakukan hal mereka sendiri, Anda akan berakhir dengan kekacauan yang rumit, dan desain API yang sangat tidak elegan.
Saya akan merekomendasikan Ryan Hayes yang kedua untuk membaca Pedoman Desain Kerangka meskipun buku itu sendiri bertujuan untuk mengembangkan kerangka kerja berbasis .NET, karena saran umum ini berlaku terlepas dari teknologi implementasi spesifik yang mungkin Anda pilih untuk digunakan.
Dari pengalaman, saya akan menyarankan berpegang teguh pada prinsip YAGNI klasik dengan mengimplementasikan antarmuka publik yang paling sederhana terlebih dahulu, dan kemudian berkembang untuk menawarkan kontrol dan kedalaman yang lebih besar di kemudian hari, tetapi berhati-hatilah untuk menggunakan nama-nama yang berguna untuk menunjukkan mengapa metode atau kelas diperluas. Saya tidak pernah menjadi penggemar menambahkan "Ex" atau sufiks serupa lainnya ke nama metode, atau menambahkan angka ke definisi Antarmuka yang diperluas. Bedakan fungsi, dan nama antarmuka / metode Anda akan menjadi lebih jelas, dan semoga tidak terlalu membingungkan dan membingungkan.
sumber