Saya memiliki beberapa yang saya banggakan dan beberapa di antaranya ditulis sendiri beberapa tahun yang lalu. Itu tidak harus selalu buggy, hanya kode yang buruk.
code-quality
bug
code-smell
James
sumber
sumber
Jawaban:
Saya tidak tahu tentang bangga dengan perbaikannya karena sangat jelas, tetapi kode yang paling mengerikan yang saya ingat untuk diperbaiki adalah ini.
Rupanya pengembang sebelumnya hanya terus menambahkan baris baru setiap kali pengguna baru (biasanya Irlandia) mulai mendapatkan kesalahan dalam aplikasi.
Saya akan meninggalkannya sebagai latihan untuk kelas tentang bagaimana hal itu diperbaiki.
sumber
UserName='John O''Reily'
akan menjadiUserName='John OReily'
(seperti bagaimana C menggabungkan string literal yang berdekatan), tetapi tidak berpikir tentang'
:( yang hilang :Saya seharusnya tidak benar-benar bangga dengan ini, tetapi untuk beberapa alasan, itu memuaskan.
Selain memiliki COBOL di sekolah, saya tidak punya pengalaman, tetapi saya orang yang rendah di tiang totem, dan kami perlu memberikan kompilasi kode sumber ke agen outsourcing untuk pengecekan Y2K. Kami memiliki satu file COBOL dengan banyak rutin yang memanggil satu sama lain dalam file, seperti spaghetti, dan itu terlalu besar untuk dimuat di IDE kami saat ini untuk dikompilasi. Itu perlu dipisahkan menjadi setidaknya dua file fisik, dan file-file itu tentu saja, perlu memiliki semua yang mereka butuhkan dalam file mereka sendiri. (Atau mungkin, ada cara untuk menghubungkan mereka bersama, tapi aku tidak benar-benar tahu COBOL.)
Bagaimanapun, saya mengambil sekitar 100.000 file baris ini, dan dengan lembut memisahkan puluhan dan puluhan rutinitas untuk menemukan dua set rutin yang independen satu sama lain, dan karenanya dapat ada dalam dua file terpisah, masing-masing sekitar 50.000 atau lebih baris. (Saya pikir maks yang dapat ditangani oleh kompiler adalah sekitar 80.000 baris, jadi memang perlu dicocokkan secara merata.)
Saya membaca bahasa kuno yang tidak saya ketahui, dan masih berhasil dalam tugas itu.
sumber
Saya mengeluarkan kursor dari pelatuk dan mengurangi waktu untuk memasukkan 40.000 catatan baru dari satu jam menjadi kurang dari satu menit. Akhirnya ini menghasilkan saya dapat menyisipkan 21 juta catatan dalam waktu yang kurang dari waktu gletser, tetapi kami tidak pernah mencoba impor 20 juta catatan hingga perbaikan, jadi saya tidak memiliki statistik tentang berapa banyak waktu yang kami simpan.
sumber
Ada kelas dasar untuk membuat dialog konfirmasi untuk operasi yang berbeda pada simpul pohon. Anda hanya perlu memberikan pesan untuk ditampilkan dalam dialog dan tindakan untuk dijalankan jika dikonfirmasi. Sistem yang bagus tetapi tidak memungkinkan penanganan khusus jika tidak ada simpul pohon yang dipilih. Akibatnya, teks dalam salah satu dialog mengatakan: "Silakan pilih tidak". Jika Anda memilih ya, itu melempar pengecualian. Pengalaman pengguna yang sangat bagus, memang.
Saya memperbaikinya dengan menonaktifkan operasi yang tidak valid.
sumber
Yang terburuk yang pernah saya lihat adalah beberapa kode Java untuk mengekstrak kalimat kunci dari sebuah corpus teks.
Agar adil, ini tidak seberapa dibandingkan dengan beberapa barang kami di sana, tetapi masih ada perbedaan besar dalam kualitas sebelum dan sesudah. Pertimbangkan kode aktual sebelum dan sesudah dari satu fungsi berikut:
Sebelum (coba cari tahu apa fungsinya sebelum melihat Setelah!):
Setelah:
sumber
Pekerjaan pemrograman saya yang pertama adalah menulis installer di InstallShield. Saya mewarisi skrip yang ribuan baris tanpa fungsi , hanya gotos. Itu membingungkan pikiran. Saya menulis ulang, membuat semuanya cantik dan modular dan didorong data, sehingga saya bisa diberi binari / seni / dll. dan menghasilkan penginstal baru dalam waktu kurang dari satu jam, daripada minggu + yang dibutuhkan orang sebelumnya. Saya sangat bangga pada diri saya sendiri.
sumber
Saya pikir tidak ada yang mendekati ini :
Memperbaiki? Eh, itu seharusnya tidak membutuhkan banyak penjelasan.
sumber