Mengisap Kurang Setiap Tahun -Jeff Atwood
Saya telah menemukan artikel yang berwawasan luas ini. Mengutip langsung dari pos
Saya sering berpikir bahwa mengisap lebih sedikit setiap tahun adalah cara programmer yang rendah hati meningkatkan. Anda seharusnya tidak puas dengan kode yang Anda tulis setahun yang lalu. Jika tidak, itu berarti A) Anda belum belajar apa pun dalam setahun, B) kode Anda tidak dapat ditingkatkan, atau C) Anda tidak pernah mengunjungi kembali kode lama. Semua ini adalah ciuman kematian bagi pengembang perangkat lunak.
- Seberapa sering ini terjadi atau tidak terjadi pada Anda?
- Berapa lama sebelum Anda melihat peningkatan aktual dalam pengkodean Anda? bulan tahun?
- Apakah Anda pernah mengunjungi kembali kode lama Anda ?
- Seberapa sering kode lama Anda mengganggu Anda? atau seberapa sering Anda harus berurusan dengan utang teknis Anda.
Jelas sangat menyakitkan untuk memperbaiki bug lama dan kode kotor yang mungkin telah kita lakukan untuk dengan cepat memenuhi tenggat waktu dan perbaikan cepat itu, beberapa kasus kita mungkin harus menulis ulang sebagian besar aplikasi / kode. Tidak ada argumen tentang itu.
Beberapa pengembang saya temui berpendapat bahwa mereka sudah pada tahap berevolusi di mana pengkodean mereka tidak perlu perbaikan atau tidak bisa diperbaiki lagi.
- Apakah ini terjadi?
- Jika demikian, berapa tahun pengkodean pada bahasa tertentu, apakah orang mengharapkan ini terjadi?
Terkait:
Pernah melihat kembali beberapa kode lama dan menyeringai kesakitan?
Momen Star Wars dalam Kode "Luke! Saya kode Anda!" "Tidak! Tidak mungkin! Tidak mungkin!"
sumber
Jawaban:
Tidak ada tapi Mengisap berbeda Setiap Tahun :-)
Setelah ulasan pertama saya bertahun-tahun yang lalu saya menderita karena tidak adanya konvensi penamaan.
Kemudian saya menderita bahwa kode saya (tidak perlu) diimplementasikan untuk menjadi generik mungkin tetapi itu membuat kode sulit dipahami dan dipelihara.
Kemudian saya belajar pengembangan testdriven, InversionOfControl, apa dot generics mana dan banyak lagi.
kesimpulan
Penderitaan kebiasaan buruk lama berkurang, tetapi saya mendapat lebih banyak kompensasi dari penderitaan baru karena saya belajar lebih banyak.
sumber
Menariknya, semua programmer "rockstar" yang pernah saya ajak bekerja sangat rendah hati, ingin belajar, dan siap mengakui bahwa mereka tidak tahu segalanya. Heck, banyak yang benar-benar mencela diri sendiri, setidaknya di saat-saat yang menyenangkan.
Saya tidak berpikir saya pernah bertemu dengan seorang pengembang yang berpikir bahwa pengkodean mereka "tidak dapat diperbaiki", tetapi ada sesuatu yang memberitahu saya bahwa orang-orang ini akan berada sejauh yang Anda bisa dapatkan dari rockstar - dengan kata sederhana.
sumber
Poin-poin berikut ini bukan saran tetapi catatan pribadi:
Saya tidak belajar semuanya dalam setahun, semuanya membutuhkan waktu ...
sumber
Seringkali orang berpikir bahwa kode yang baik tiba-tiba terjadi tetapi bagi kebanyakan dari kita hanya manusia saja kode yang baik tumbuh dalam basis kode kita. Maksud saya, sangat sulit untuk menulis perangkat lunak yang sempurna sejak awal karena persyaratan terus berubah dan kami bukan programmer yang sempurna, jadi keputusan bodoh dibuat terus-menerus dari manajer dan programmer. Lalu saya melihat setiap persyaratan mengubah peluang yang baik untuk mengubah beberapa kode lama menjadi kode yang lebih baik (dan dibayar untuk itu!) Dan membayar sedikit hutang teknis. Seperti yang mereka katakan: "biarkan repositori kode sedikit lebih baik setiap kali Anda melakukan kode". Kemudian sistem Anda akan berkembang menjadi sistem yang lebih dekat ke ideal.
Saya benar-benar tidak tahu ada programmer yang bangga dengan software-nya tapi itu bagus. Daripada berarti bahwa programmer telah belajar dalam proses itu.
Juga jika Anda membaca buku "Kode Bersih" maka Anda akan meningkatkan kode "faktor mengisap" Anda sendiri beberapa kali. : D
sumber
Saya sebenarnya memiliki kedua sisi mata uang untuk ini.
Di satu sisi, Anda melihat kode lama dan Anda melihat itu penuh dengan bug dan cara rumit untuk melakukan hal-hal yang hanya dicapai dengan memanfaatkan teknik dan fitur bahasa yang Anda tidak tahu tentang itu.
Di sisi lain, Anda melihat solusi yang sangat elegan untuk suatu masalah dan Anda tidak bisa melepaskan senyum puas pada seberapa pintar Anda saat itu.
Dan kemudian Anda gulir ke bawah beberapa garis dan meringis ngeri pada kenyataan Anda menggunakan GOTO di C.
sumber
Hmm ... Saya sering cukup terkejut dengan betapa baiknya banyak kode lama saya.
Jika saya melakukannya hari ini, saya sering menulisnya secara berbeda, tetapi jika saya harus hidup dengan keterbatasan waktu, saya tidak yakin saya akan melakukannya. Ketika Anda dapat mengandalkan mesin biasa yang memiliki setidaknya beberapa gigs RAM, Anda dapat (dan seringkali harus) menulis kode Anda sedikit berbeda dari ketika hard drive besar adalah 100 megabyte.
sumber
Setiap kali saya belajar sesuatu yang baru, semoga itu setiap hari.
Jika saya bisa menerapkan apa yang telah saya pelajari, maka langsung dari saat saya menerapkannya.
Ya, hanya untuk (1) Fitur baru, (2) Perbaikan bug, (3) Nostalgia, (4) Lihat bagaimana saya memecahkan sesuatu, dapat bermanfaat.
Terkait dengan 1., ketika saya belajar bagaimana melakukan sesuatu yang lebih baik, saya sadar bahwa beberapa proyek lama "bisa" dilakukan dengan lebih baik. Saya membiarkan mereka. Pastikan proyek berikutnya dilakukan dengan cara yang lebih baik. Saya tidak khawatir kecuali itu bug yang sebenarnya.
sumber
Dalam pertanyaan lain , subjeknya adalah tentang cara mengevaluasi kualitas kode Anda sendiri. Salah satu saran saya adalah untuk meninjaunya dalam beberapa tahun, ketika pengalaman Anda jauh lebih tinggi daripada ketika kode itu ditulis. Satu kutipan jawaban saya untuk pertanyaan lain ini berkaitan langsung dengan pertanyaan Anda:
Jadi ya, dalam praktiknya, setiap kode yang saya tulis menjadi tak tertahankan dari sudut pandang saya dalam setahun. Dan saya tidak berbicara tentang kode yang dibuang, tetapi juga tentang kode yang saya tulis dengan kualitas, pemeliharaan dan keterbacaan dalam pikiran. Untuk saat ini, tidak ada pengecualian.
Untuk menjawab pertanyaan kedua Anda tentang umur, itu sangat bervariasi. Sepotong kode memiliki masa hidup nol detik : kode itu menyebalkan setelah Anda menulisnya, tetapi itu tidak masalah. Beberapa bagian kode yang saya tulis dapat ditanggung setelah dua tahun , tetapi membutuhkan beberapa perubahan kosmetik: sedikit refactoring, menegakkan aturan StyleCop, dll. Secara rata-rata, dalam kasus saya yang tepat, masa hidup bervariasi antara delapan bulan dan satu tahun untuk C #, dan antara dua enam bulan untuk PHP.
Apakah saya meninjau kembali kode lama saya? Ya, tentu saja, seperti setiap pengembang, kecuali jika Anda tidak peduli dengan KERING dan menemukan kembali roda Anda sendiri berulang kali. Ada juga peluang untuk meninjau dan meningkatkan kode sangat sering jika Anda memiliki basis kode umum yang Anda gunakan dalam banyak proyek . Poin lain adalah bahwa jika Anda bekerja pada proyek-proyek besar, beberapa mungkin membutuhkan waktu bertahun-tahun , jadi Anda harus meninjau kembali kode lama.
Ketika seseorang mengatakan bahwa dia begitu sempurna sehingga dia tidak perlu belajar apa-apa, itu berarti dia bahkan tidak mampu memahami betapa bodohnya dia.
Bahkan jika Anda memiliki pengalaman dua puluh tahun dalam komputer / pemrograman, segala sesuatunya berubah terlalu cepat, sehingga selalu ada hal baru untuk dipelajari dan teknik baru untuk meningkatkan kode. Sebagai contoh, kode C # ditulis ketika tidak ada .NET Framework 3.0 sangat mungkin dapat dibuat lebih mudah dibaca dan lebih baik dengan hal-hal baru yang kita miliki saat ini (termasuk Linq, kontrak Kode, dll.), Dan ini, bahkan jika kode lama ditulis oleh pengembang paling pintar.
sumber
Itu terjadi cukup teratur ketika saya melihat kode dan bertanya-tanya, "Apa yang saya pikirkan ketika saya menulis ini?"
Biasanya ada peningkatan sepanjang waktu karena kadang-kadang ide baru untuk mengatur kode, menata kode atau sesuatu yang lain akan datang kepada saya dan sementara itu mungkin bukan perbaikan besar, setiap hal kecil dapat membantu yang layak dilakukan.
Tergantung pada lingkungan kerja, saya mungkin melihat kode dari beberapa tahun yang lalu ketika saya terus bekerja di basis kode yang sama dan cukup akrab dengan apa yang ada di sana dan merupakan sesuatu untuk dikelola.
Kode lama hampir selalu mengganggu saya karena biasanya saya mengubah sistem yang ada atau mengganti sistem. Dalam kedua kasus, saya harus tahu kebiasaan sistem yang ada untuk memastikan mereka ada di yang baru.
Walaupun saya yakin ada orang-orang seperti Jon Skeet yang hanya bisa memikirkan kode yang sempurna, kebanyakan orang mengatakan bahwa kode mereka tidak dapat diperbaiki mengatakan bahwa dari sudut ego yang mungkin tidak menarik. Pada saat yang sama, dalam hal menemukan peningkatan besar setiap kali itu tidak selalu menjadi masalah.
sumber
1. Seberapa sering ini terjadi atau tidak terjadi pada Anda?
Seberapa sering saya tidak puas dengan kode lama saya? Hampir selalu. Ada pengecualian langka di mana saya memiliki kode yang sangat saya banggakan ... tapi sekali lagi, mereka jarang. Saya telah diberitahu bahwa kode yang saya tulis beberapa tahun yang lalu adalah baik ... Saya merasa ngeri dan berpikir "Anda orang miskin yang malang karena telah melihat yang lebih buruk daripada sampah yang saya tulis."
2. Berapa lama sebelum Anda melihat peningkatan aktual dalam pengkodean Anda? bulan tahun?
Biasanya dalam beberapa tahap ... Saya benar-benar masuk ke gaya atau metodologi (ambil antarmuka yang lancar misalnya ... karena itu adalah gaya terakhir yang saya gunakan untuk basah) dan membantai semua yang saya tulis selama satu atau empat bulan . Kemudian mulai terlihat lebih baik.
3.Apakah Anda pernah mengunjungi kembali kode lama Anda?
Tidak sesering yang saya inginkan. Sebagian besar kode lama saya, dimiliki oleh majikan sebelumnya. Kode pribadi terlalu sering dicuci putih.
4. Seberapa sering kode lama Anda mengganggu Anda? atau seberapa sering Anda harus berurusan dengan utang teknis Anda.
Menjadi majikan sebelumnya memiliki sebagian besar kode lama saya, dan saya putih mencuci sebagian besar kode pribadi saya ... tidak terlalu sering sama sekali.
sumber