Saya telah mengerjakan proyek hobi saya di C ++ selama lebih dari 2 tahun. Setiap kali saya menulis modul / fungsi, saya kode itu dengan banyak pemikiran. Sekarang lihat masalahnya,
do {
--> write the code in module 'X' and test it
--> ... forget for sometime ...
--> revisit the same piece of code (due to some requirement)
--> feel that "This isn't written nicely; could have been better"
} while(true);
Berikut 'X'
adalah modul apa saja (baik itu kecil / besar / sedang). Saya mengamati bahwa, ini terjadi tidak peduli berapa banyak usaha yang saya lakukan saat coding. Jadi kebanyakan, saya menahan diri dari melihat kode yang berfungsi. :)
Apakah ini perasaan yang umum bagi banyak orang? Apakah ini fenomena khusus bahasa? (Karena dalam C ++ seseorang dapat menulis hal yang sama dengan cara yang berbeda).
Apa yang harus saya lakukan, jika saya mendapatkan perasaan re-factoring ini untuk kode produksi dunia nyata, di mana mengubah kode kerja tidak akan memberi saya banyak penghargaan tetapi justru dapat mengundang masalah jika gagal.
sumber
Jawaban:
Fenomena ini sangat umum dan tidak spesifik untuk programmer. Setiap kali Anda melakukan tugas intelektual, Anda akan melihat puluhan tempat di mana Anda bisa meningkatkan - setelah Anda agak jauh. Tanyakan kepada orang bijak mana pun yang pernah menulis tesis, dan mereka akan memberi tahu Anda satu hal: "Jangan melihatnya. Anda akan menemukan kesalahan pada pandangan pertama."
Pada dasarnya ada dua hal untuk menghindari loop refactoring:
sumber
Refactoring berkelanjutan adalah cara yang harus dilakukan. Mengubah kode kerja tidak akan menimbulkan masalah dan harus didorong jika dilakukan dengan benar. Jika kode Anda sepenuhnya diuji unit, Anda dapat memberi faktor ulang pada kode Anda dengan percaya diri.
Satu-satunya hal yang dapat Anda prediksi tentang kode produksi dunia nyata adalah, yaitu AKAN berubah. Jangan mencoba menebak bagaimana itu akan berubah, teknik baru apa yang akan Anda pelajari besok. Singkatnya, jangan mencoba membuat kode Anda "sempurna". Jadikan itu sebaik mungkin dengan pengetahuan Anda saat ini. Juga, pastikan kode Anda diuji secara menyeluruh dan dapat dikembangkan.
Saya menghabiskan 20% -30% dari waktu saya refactoring kode yang ada. Saya bekerja di perusahaan teknologi dan "manajemen" tidak pernah mengeluh tentang mengubah kode yang ada. Namun, saya menyadari bahwa ini dapat menjadi masalah di beberapa perusahaan. Martin Fowler bahkan memiliki bagian di dalamnya dalam buku refactoring- nya .
Singkatnya, itu adalah perasaan yang umum dalam pengalaman saya, tetapi itu bukan perasaan negatif.
sumber
Setiap modul / fungsi lahir dan berkembang dalam dunia prioritas. Setelah cukup untuk melayani tujuan dunia luar, seringkali dibiarkan mandek. Itu semua akhirnya perancah dalam pelayanan untuk tujuan yang lebih tinggi. Ya, kita harus terobsesi dengan kode, dan ya itu bisa menyebabkan kita mandek juga. Mungkin itu akan menjadi langkah yang baik bagi Anda untuk sedikit mengalihkan fokus Anda dari kode itu sendiri, dan merenungkan lebih lanjut tentang proses yang terjadi di dalam diri Anda, penghasil kode.
sumber
Itu berarti Anda memperluas pengetahuan dan pandangan Anda.
Jika Anda tidak memiliki tugas dengan prioritas lebih tinggi, Anda harus selalu kembali dan meningkatkan kode Anda.
sumber
Saya selalu berpikir bahwa seseorang mengambil kelas matematika untuk memperkuat keterampilan mereka di kelas sebelumnya. Aljabar tampak sulit, sampai Anda mengambil Aljabar II; Maka keterampilan yang Anda pelajari dalam Aljabar menjadi berguna. Itu adalah hal yang sama dalam pemrograman, penulisan, pengerjaan kayu, atau apa pun.
Ketika mengambil kursus pemrograman, Anda belajar tentang If-then-else, yang melakukan banyak hal sampai Anda belajar tentang sakelar. Ketika Anda mempelajari sesuatu yang baru, Anda melewati perkembangan ini, semua orang melakukannya.
sumber
Saya mendapatkan perasaan yang sama setiap kali saya membaca sebagian besar kode yang saya tulis sendiri di masa lalu. Ini adalah hal yang baik, itu berarti bahwa pengetahuan dan gaya pengkodean Anda telah meningkat selama bertahun-tahun.
Sedangkan untuk mengubah kode produksi yang berfungsi, itu adalah no-no besar kecuali Anda telah melihat bug yang jelas. Bukan hanya karena itu mungkin buang-buang waktu, tetapi yang lebih penting karena sebagian besar bug perangkat lunak yang dibuat adalah jenis yang diperkenalkan ketika perubahan dibuat untuk program yang dirilis. Secara statistik kemungkinan Anda akan memperkenalkan bug yang tidak terduga. Jika tidak rusak jangan memperbaikinya.
sumber
Mengembangkan aplikasi berarti meningkatkannya dan membuatnya lebih baik; ini adalah proses yang berkelanjutan sehingga saat Anda memprogram Anda mendapatkan lebih banyak pengalaman dan pengetahuan. Ini juga berarti Anda sedang mengembangkan juga, jadi ketika Anda melihat kembali kode lama Anda, Anda mungkin tahu itu dapat ditingkatkan.
Jika Anda tidak memiliki perasaan ini, itu berarti salah satu dari dua hal:
sumber