Catatan tentang gaya kode

Cukup sering saya menemukan pertanyaan tentang kualitas kode: "Mengapa ditulis seperti ini, dan tidak demikian?". Dan saya jelaskan setiap saat. Itulah mengapa saya memutuskan untuk menulis semacam catatan dengan penjelasan.





Pertanyaan kedua yang muncul adalah: "Di mana Anda belajar menulis dengan begitu indah?" Jawabannya ada di akhir artikel.






Masalah yang cukup umum saat menulis kode adalah bahwa ia tampak seperti teks padat, dan berisi area masalah yang tidak hanya mempersulit pembacaan, tetapi juga pemeliharaan lebih lanjut. Dalam kasus seperti itu, Anda tidak boleh mengabaikan penggunaan jeda baris dan karakter "spasi" tambahan.





Saya ingat anekdot berjanggut tentang peristiwa nyata:





Pengembang membaca kodenya tertulis:





- hari ini: kode keren modern yang hebat! Saya akan selalu menulis seperti itu!





- kemarin: jadi, saya berhenti di sini. Aha!





- minggu lalu: apa yang saya lakukan di sana? ..





- bulan lalu: jadi apa masalahnya dengan deskripsinya?





- tahun lalu: untuk mematahkan kaki orang yang menulis kode ini!






Baru-baru ini saya bertemu dengan kode seperti itu (saya akan memasukkannya dengan gambar agar tidak mengganggu penampilannya):





- , , ...





. . - .





. . , , ? , .






, .





- , - .





:





$salaryFirstBaseEmployer = $employer->salaryBases->first()->salary_base;
$salaryLastBaseEmployer = $employer->salaryBases->last()->salary_base;
$begin = Carbon::parse('2020-05-01')->startOfMonth()->startOfDay();
$end = $begin->clone()->endOfMonth()->endOfDay();
$endMonth = $begin->clone()->endOfMonth();
$startPeriod = new CarbonPeriod($begin, $end);
$endPeriod = new CarbonPeriod($begin, $end);
      
      



, , , :





$salaryFirstBaseEmployer = $employer->salaryBases->first()->salary_base;
$salaryLastBaseEmployer  = $employer->salaryBases->last()->salary_base;

$begin = Carbon::parse('2020-05-01')->startOfMonth()->startOfDay();

$end      = $begin->clone()->endOfMonth()->endOfDay();
$endMonth = $begin->clone()->endOfMonth();

$startPeriod = new CarbonPeriod($begin, $end);
$endPeriod   = new CarbonPeriod($begin, $end);
      
      



:





, -, .





, .





PS: Beberapa orang, termasuk pesan di luar Habr, sudah menulis bahwa ada yang seperti PSR, pelengkapan otomatis kode, pemformatan kode di IDE, cs-fixer, dan sebagainya. Apakah Anda benar-benar berpikir bahwa saya tidak menyadari keberadaan mereka? Masalahnya, yang terungkap dalam artikel tersebut, bukanlah bahwa mereka tidak digunakan, tetapi apa yang mencegah dari awalnya menulis kode yang indah tanpa membakar kentut pengembang lain? ..





PS2: Kebetulan sebagian besar komentator menangkap contoh-contoh dalam artikel, memberi skor pada pesan utamanya. Dalam hal ini, saya telah menghapus semua contoh yang tidak membawa beban semantik dan kepentingan artikel seperti itu.








All Articles