Kod yozish oson, toza kod yozish — san'at. Robert C. Martin'ning "Clean Code" kitobi dasturchilar bibliyadir. Bu maqolada Clean Code ning eng muhim tamoyillarini amaliy misollar bilan ko'rib chiqamiz.
1. Nomlash — Eng muhim ko'nikma
// Yomon ❌
$d = 86400;
$arr = getList();
function proc($x) { ... }
// Yaxshi ✅
$secondsInDay = 86400;
$activeUsers = getActiveUsers();
function calculateMonthlyRevenue($orders) { ... }
O'zgaruvchi va funksiya nomlari ularning maqsadini tushuntirishi kerak. Agar izoh yozish kerak bo'lsa — nom yomon tanlangan.
2. Funksiyalar: Kichik va bitta vazifali
// Yomon ❌ — funksiya juda ko'p narsa qilyapti
function processUser($data) {
// validatsiya
// bazaga yozish
// email yuborish
// log yozish
}
// Yaxshi ✅ — har bir funksiya bitta vazifa
function validateUserData($data): array { ... }
function saveUser($validData): User { ... }
function sendWelcomeEmail(User $user): void { ... }
function logUserCreation(User $user): void { ... }
3. SOLID tamoyillari
- S — Single Responsibility: Har bir klass bitta vazifa
- O — Open/Closed: Kengaytirish uchun ochiq, o'zgartirish uchun yopiq
- L — Liskov: Subklass ota-klassni to'liq almashtira olishi kerak
- I — Interface Segregation: Kichik va aniq interfeyslar
- D — Dependency Inversion: Abstraksiyalarga bog'lanish
4. Izohlar: Kamroq — yaxshiroq
// Yomon ❌ — keraksiz izoh $i++; // i ni 1 ga oshirish // Yaxshi ✅ — nima uchun ekanligini tushuntirish // Rate limit: 1 soatda 100 ta so'rov (DDoS himoyasi) $maxRequests = 100;
5. Boy Scouts Rule
"Kodni topganingizdan toza holda qoldiring" — har safar faylga tegganingizda, biror narsani yaxshilang.
6. DRY (Don't Repeat Yourself)
Bir xil kod ikki joyda yozilsa — bu refactoring uchun signal. Umumiy logikani funksiya yoki klassga chiqaring.
7. Error Handling
// Yomon ❌
function getUser($id) {
$user = $db->find($id);
if (!$user) return null; // muammo: null check unutilishi mumkin
}
// Yaxshi ✅
function getUser($id): User {
$user = $db->find($id);
if (!$user) {
throw new UserNotFoundException("Foydalanuvchi topilmadi: {$id}");
}
return $user;
}
Xulosa
Toza kod yozish — bu tajriba bilan keladigan ko'nikma. Har kuni biroz yaxshiroq kod yozishga harakat qiling. Kod review qiling, refactoring qiling va doim o'rganing. Siz yozgan kodni 6 oy keyin o'zingiz o'qiysiz — uni tushunarli qiling.