Peraturan Emas Kod Bersih: Fungsi Harus Melakukan Satu Perkara
Dalam dunia kejuruteraan perisian, terdapat satu prinsip yang berdiri di atas yang lain: Fungsi harus melakukan satu perkara dan melakukannya dengan baik. Konsep ini, sering dirujuk sebagai Prinsip Tanggungjawab Tunggal (SRP), merupakan asas kepada kod yang bersih dan boleh diselenggara.
Mengapa ini penting?
Apabila fungsi mempunyai satu tanggungjawab:
- Mereka lebih mudah untuk memahami dan membuat alasan tentang
- Ujian menjadi lebih mudah dan lebih fokus
- Pemfaktoran semula kurang berisiko dan lebih mudah
- Kebolehgunaan semula kod bertambah baik secara mendadak
- Penyahpepijatan menjadi kurang sakit kepala
Mari kita lihat contoh untuk menggambarkan prinsip ini dalam tindakan.
Amalan Buruk: Fungsi pelbagai tanggungjawab
Pertimbangkan fungsi ini yang menghantar e-mel kepada pelanggan:
function emailClients(clients) { clients.forEach(client => { const clientRecord = database.lookup(client); if (clientRecord.isActive()) { email(client); } }); }
Fungsi ini melakukan beberapa perkara:
- Lelaran ke atas pelanggan
- Mencari rekod setiap pelanggan
- Menyemak sama ada pelanggan aktif
- Menghantar e-mel kepada pelanggan aktif
Walaupun kelihatan cekap untuk mempunyai semua ini di satu tempat, ia menjadikan fungsi lebih sukar untuk diselenggara dan diuji.
Amalan Baik: Fungsi Tanggungjawab Tunggal
Sekarang, mari kita memfaktorkan semula ini kepada fungsi yang lebih kecil dan fokus:
function emailActiveClients(clients) { clients.filter(isActiveClient).forEach(email); } function isActiveClient(client) { const clientRecord = database.lookup(client); return clientRecord.isActive(); }
Dalam versi pemfaktoran semula ini:
- emailActiveClients memfokuskan pada tugas peringkat tinggi untuk menghantar e-mel kepada pelanggan aktif
- isActiveClient mengendalikan perkara khusus untuk menentukan sama ada pelanggan aktif
Pengasingan kebimbangan ini menjadikan setiap fungsi lebih mudah difahami, diuji dan berpotensi digunakan semula di bahagian lain pangkalan kod anda.
Faedah Pendekatan Ini
- Kebolehbacaan: Kod menceritakan kisah yang jelas. Sesiapa sahaja yang membaca emailActiveClients boleh memahami tujuannya dengan cepat tanpa terperangkap dalam butiran pelaksanaan.
- Kebolehujian: Anda kini boleh menulis ujian berasingan dengan mudah untuk logik penghantaran e-mel dan semakan aktiviti pelanggan.
- Fleksibiliti: Jika anda perlu menukar cara pelanggan aktif ditentukan, anda hanya perlu mengubah suai fungsi isActiveClient.
- Kebolehgunaan semula: Fungsi isActiveClient kini boleh digunakan di tempat lain dalam pangkalan kod anda jika perlu.
Kesimpulan
Memeluk prinsip "Fungsi harus melakukan satu perkara" mungkin terasa kasar pada mulanya, tetapi faedah jangka panjang kepada kebolehselenggaraan pangkalan kod anda dan produktiviti pasukan anda sangat besar. Semasa anda menulis dan kod refactor, sentiasa tanya diri anda: "Adakah fungsi ini melakukan lebih daripada satu perkara?" Jika jawapannya ya, sudah tiba masanya untuk memecahkannya!
Ingat, kod bersih bukan sahaja tentang membuat sesuatu berfungsi—ia juga tentang menjadikan sesuatu berfungsi dengan elegan dan mampan. Selamat mengekod!
Atas ialah kandungan terperinci Peraturan Emas Kod Bersih: Fungsi Harus Melakukan Satu Perkara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ganti aksara rentetan dalam javascript

jQuery mendapatkan padding/margin elemen

HTTP Debugging dengan Node dan HTTP-Console

Tutorial Persediaan API Carian Google Custom
