Ketika saya pertama kali memulai pemrograman, saya berasumsi bahwa suatu hari saya akan sampai pada titik di mana saya akan memulai proyek dengan duduk dan membuat sketsa diagram UML dari semua kelas, maka cukup banyak berpegang teguh pada itu. Saya sekarang telah pemrograman selama beberapa tahun dan tidak berubah seperti itu. Ketika saya menjalani proyek, saya sering berkata
- "Hei, aku perlu kelas untuk melakukan _ _. Aku tidak memikirkan itu sebelumnya."
- "Tunggu, fungsi ini seharusnya berada di kelas itu, bukan yang ini. Aku akan memindahkannya."
- "Ini seharusnya dua kelas, bukan satu. Aku akan membaginya."
- "Aku harus membuat ketiga kelas yang berdiri sendiri ini mewarisi dari satu kelas abstrak."
- Dll, dan sebagainya.
Apakah itu pertanda buruk bahwa saya sering mendesain ulang seperti ini ketika saya melanjutkan? Apakah ini berarti saya seorang programmer yang buruk atau apakah ini normal?
sumber
Apa yang Anda lakukan secara populer disebut sebagai "refactoring". Jika Anda pernah berhenti melakukan itu maka Anda dalam kesulitan.
Faktanya adalah sebagian besar kode adalah kompleks dan manusia, bahkan yang cukup pintar, tidak dapat memahaminya sekaligus.
sumber
Tidak, Anda tampaknya mengikuti YAGNI dan refactoring dari contoh yang diberikan. Tidakkah menurut Anda lebih baik untuk memiliki solusi yang lebih baik ini dan dapat melakukannya daripada tidak pernah memikirkan sesuatu lagi?
Pengembangan perangkat lunak tangkas biasanya memiliki praktik untuk mengakomodasi ini yang sangat berbeda dari model air terjun.
sumber
Tidak apa-apa (kecuali desain ulang ini selalu perbaikan besar, atau dibangun kembali dari awal). Jangan khawatir. Akan lebih baik untuk memulai dengan diagram UML di awal proyek, tetapi jangan mengukirnya di batu karena Anda akan hampir selalu menemukan bahwa hal-hal berubah saat Anda bekerja. Anda dapat mempelajari teknik-teknik baru yang tidak Anda ketahui di awal, Anda mungkin ingin menanamkan beberapa fitur dengan cara yang belum Anda ketahui selama desain awal, persyaratan bisnis berubah, kadang-kadang tidak diketahui selama desain awal yang hanya bisa diperhitungkan nanti, dll ...
Apa yang penting adalah untuk pergi dan memperbarui dokumen-dokumen UML awal sehingga mereka mencerminkan perubahan signifikan dalam desain, pengembang masa depan yang lain (termasuk Anda) bisa berakhir sangat bingung. Ini bisa sulit, dan seringkali membutuhkan disiplin (dan waktu) yang baik.
Sangat sangat sangat jarang untuk memulai dengan desain, dan mematuhinya 100% sampai implementasi. Saya pribadi belum pernah melihat hal seperti itu terjadi, kecuali untuk program yang sangat kecil dan sepele.
sumber
Apa yang Anda lakukan benar-benar normal (asalkan Anda tidak sepenuhnya memulai dari awal setiap kali). Saya sudah melakukan ini selama lebih dari dua puluh tahun, dan ini masih merupakan proses berulang.
Satu-satunya waktu Anda akan dapat merancang semuanya di muka dan berpegang teguh pada itu adalah jika Anda memecahkan masalah yang sama persis yang Anda pecahkan terakhir kali, dan bahkan kemudian Anda mungkin dapat menemukan ruang untuk perbaikan.
sumber
Saya sama sekali bukan pengembang yang sangat berpengalaman, tetapi saya juga melakukannya. Selama beberapa tahun terakhir, kemampuan saya untuk secara mental membangun arsitektur yang diperlukan telah meningkat pesat. Namun, ketika saya menulis perangkat lunak, tidak peduli berapa banyak perencanaan yang saya lakukan, selalu ada tempat yang perlu sedikit didesain ulang. Bintik-bintik yang tidak saya sadari akan saya ulangi sampai kode benar-benar ditulis.
Maksud saya dari posting ini adalah untuk mengatakan bahwa saya melakukan segalanya dalam daftar Anda dan saya tidak merasa hal-hal itu selalu buruk kecuali mereka terjadi terus-menerus dan memiliki efek negatif nyata pada produktivitas Anda.
sumber
Itu disebut proses berulang dan itu konsep dasar dalam semua teknik pengembangan perangkat lunak modern.
sumber