Katakanlah saya telah menerima spesifikasi untuk suatu proyek dari klien, dan sekarang saatnya untuk mulai mengembangkannya. Biasanya, saya baru mulai dengan modul pertama (biasanya pendaftaran pengguna) dan kemudian beralih dari satu modul ke modul berikutnya. Saya hanya merencanakan di kepala saya sesaat sebelum saya memulai modul bagaimana cara kerjanya, tetapi tidak ada perencanaan sebelumnya.
Namun, saya pikir akan lebih baik jika saya memeriksa spesifikasi dan merencanakan bagaimana sistem akan bekerja sebelum saya mengkodekannya, misalnya apa komponen utama, bagaimana mereka akan berinteraksi, dll. Saya hanya tidak yakin apa yang harus saya rencanakan.
Untuk memberikan ide yang lebih baik tentang apa yang saya minta, bagaimana saya harus-
a) Membagi proyek menjadi beberapa komponen,
b) Rencanakan interaksi mereka, mis. haruskah saya membuat diagram kelas, menulis tes unit, dll?
Ada ide?
sumber
Jawaban:
Ketika Anda memiliki hak istimewa untuk memulai proyek baru Anda memiliki kanvas kosong - yang sekaligus mengasyikkan sekaligus menakutkan. Saya bekerja di iterasi, dan ini adalah bagaimana saya membagi pekerjaan:
Pada dasarnya, pendekatan mendefinisikan proyek secara progresif dari tingkat yang sangat tinggi ke desain yang lebih rinci telah membantu saya dengan baik. Bahkan interaksi antara subsistem bisa disempurnakan saat Anda benar-benar berusaha mengimplementasikannya. Itu hal yang baik.
sumber
Baik. Ide bagus.
Baik. Lakukan lebih dari itu.
Luar biasa.
Benar.
Bagaimana Anda bisa tidak yakin ketika Anda sudah mendaftarkan banyak hal? Jika itu adalah hal-hal yang menjadi perhatian Anda, mengapa tidak fokus saja pada hal-hal itu?
Baca pada model tampilan 4 + 1: http://en.wikipedia.org/wiki/4%2B1_Architectural_View_Model
Bacalah kerangka kerja Zachman: http://en.wikipedia.org/wiki/Zachman_Framework
Itulah yang perlu Anda rencanakan.
Gunakan pola desain yang diadopsi secara luas untuk proyek serupa lainnya.
Jika ragu, baca cetak biru J2EE untuk gagasan.
http://www.oracle.com/technetwork/java/javaee/blueprints/index.html
Iya. Ide bagus, semuanya.
sumber
Hal terpenting yang harus dilakukan: meninjau spesifikasi, berinteraksi dengan pelanggan untuk mendapatkan lebih banyak spesifikasi yang disempurnakan.
Persyaratannya tidak diragukan lengkap, tidak jelas, atau salah. Buang-buang waktu terbesar adalah melakukan hal yang salah. Pelanggan bukan insinyur perangkat lunak profesional, dan tidak dapat diharapkan pandai mengembangkan serangkaian persyaratan yang baik.
Jadi, Anda harus meninjau spesifikasi, mewawancarai pelanggan dan mencari tahu apakah ini yang benar-benar ia butuhkan dan inginkan, dan mampu, dll.
Kembangkan test / use cases dan tinjau dengan pelanggan. Jika suatu persyaratan tidak dapat diuji, buanglah.
Kembangkan desain dan pastikan jika semua bagian berfungsi dengan benar bahwa secara teori akan melakukan apa yang Anda butuhkan.
Kembangkan prototipe arsitektur yang menguji semua teknologi yang akan digunakan di setiap lapisan tetapi abaikan fungsionalitasnya. Anda menguji arsitektur, bukan spesifikasi fungsional. Memiliki arsitektur yang salah berarti Anda harus menulis ulang semuanya, jadi mendapatkan arsitektur yang tepat adalah penting. Pastikan dapat memenuhi persyaratan Anda untuk kecepatan, efisiensi, keamanan, dll.
sumber
Anda pasti ingin memiliki beberapa desain sebelum memulai pengkodean.
Setelah Anda memilikinya, saya biasanya lebih suka melakukan fase arsitektur awal terlebih dahulu untuk menentukan bagaimana lapisan aplikasi Anda cocok bersama. Ini akan mencakup hal-hal tulang punggung seperti keamanan dan pencatatan.
Lalu saya membangun 1 fitur dari atas ke bawah sehingga Anda mengimplementasikan sesuatu sepenuhnya.
Lalu pergi dari sana.
sumber
Segala sesuatu
Rencanakan semuanya, lebih mudah untuk mengubahnya di atas kertas daripada sekali bagian dari itu sudah dikodekan, Anda mendapatkan dasar yang bagus untuk dokumentasi, dan banyak manfaat lainnya.
sumber