Rumah > Artikel > hujung hadapan web > Bau Kod - Pisau Cukur Hanlon
Jangan Terlalu Rumit: Pastikan Ia Mudah
TL;DR: Kod overdefensive membawa kepada kerumitan yang tidak perlu.
Kerumitan yang tidak perlu
Logik mengelirukan
Pepijat tersembunyi
Penyelenggaraan yang lebih keras
Prestasi yang lebih perlahan
Kod Berterabur
Memudahkan semakan
Percaya logik anda
Fokus pada perkara penting
Ikuti K.I.S.S. prinsip
Refactor selalu
Terlalu berfikir dan mereka bentuk kod anda boleh membawa kepada kerumitan yang tidak perlu.
Anda mungkin perlu bertahan daripada setiap senario yang mungkin, tetapi pendekatan ini selalunya menghasilkan kod yang mengelirukan.
Hanlon's Razor mencadangkan agar anda tidak menganggap niat jahat apabila kesilapan mudah atau salah faham lebih berkemungkinan besar.
Elakkan pengaturcaraan yang terlalu defensif dan fokus pada logik yang jelas dan jelas.
Anda mungkin menjangkakan masalah masa depan yang mungkin tidak akan berlaku atau cuba menjadikan kod anda terlalu fleksibel.
Kod ringkas lebih mudah diselenggara, nyahpepijat dan difahami.
function processData(data) { if (typeof data === 'undefined') { throw new Error('Data is undefined'); } if (typeof data !== 'object') { throw new Error('Data is not an object'); } if (data === null) { throw new Error('Data is null'); } if (Array.isArray(data)) { throw new Error('Data should not be an array'); } if (!data.hasOwnProperty('items')) { return []; } if (!Array.isArray(data.items)) { throw new Error('Items should be an array'); } if (data.items.length === 0) { return []; } let processedItems = []; for (let item of data.items) { if (typeof item === 'undefined') { continue; // Skip undefined items } if (typeof item !== 'object') { continue; // Skip non-object items } if (item === null) { continue; // Skip null items } processedItems.push(processItem(item)); } return processedItems; }
function processData(data) { if (!Array.isArray(data.items)) { throw new Error('Invalid data'); } return data.items .filter(item => typeof item === 'object' && item !== null) .map(item => processItem(item)); }
[X] Manual
Kod rumit biasanya mempunyai lebih banyak baris dan kaedah yang panjang adalah petunjuk yang mungkin.
[x] Pertengahan
Penjana AI boleh memperkenalkan bau ini apabila mereka cuba mengambil kira setiap bekas tepi yang mungkin.
Sebagai contoh, berurusan dengan NULL adalah tidak perlu jika anda mengelakkannya sepenuhnya.
Alat AI boleh membantu mengesan kod yang terlalu defensif dengan menganalisis logik dan mencadangkan pemudahan dengan bimbingan yang betul.
Alat ini selalunya mengesyorkan untuk mengalih keluar semakan yang tidak perlu atau menggabungkannya untuk kejelasan.
Elakkan terlalu memikirkan dan mereka bentuk kod anda secara berlebihan.
Fokus pada senario yang paling mungkin dan tulis logik yang jelas dan jelas.
Kesederhanaan membawa kepada kualiti kod yang lebih baik dan penyelenggaraan yang lebih mudah.
Wikipedia
Pengaturcaraan Defensif
Bau Kod adalah pendapat saya.
Foto oleh Nacho Fernández di Unsplash
Kesederhanaan ialah kecanggihan muktamad.
Leonardo da Vinci
Artikel ini adalah sebahagian daripada Siri CodeSmell.
Atas ialah kandungan terperinci Bau Kod - Pisau Cukur Hanlon. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!