Ini cukup banyak satu-satunya aturan pemformatan kode yang saya temukan benar-benar membuat dampak nyata pada keterbacaan dan hampir tidak ada upaya (dengan asumsi editor kode Anda tidak memulai pertengkaran dengan Anda karenanya).
Ini adalah desain bahasa pemrograman yang bagus untuk membuat nama muncul dalam posisi yang konsisten dalam deklarasi / definisi. Alasannya sederhana: Anda memiliki jangkar visual yang bagus (kurung kurawal atau hanya lekukan gantung) yang dapat Anda gunakan untuk segera menemukan awal nama. Anda tidak harus benar-benar menguraikan bahasa saat memindai melalui file menemukan nama.
Itu sama seperti ketika Anda memformat dokumen: ketika Anda memulai bagian baru Anda meletakkan nama di depan dalam huruf tebal - sering pada barisnya sendiri - tidak dikubur di suatu tempat, tidak berbeda, dalam kalimat yang panjang.
Awal C memiliki tanda tangan yang sangat singkat: tipe pengembalian adalah opsional dan tipe argumen dinyatakan setelah tanda tangan. Nama-nama juga cenderung sangat pendek. Ini mengurangi dampak dari memiliki tipe pengembalian sesekali mengimbangi nama.
double dot(x, y);
Masih cukup mudah dicerna.
C ++ membuat ini sedikit lebih buruk. Ini memindahkan spesifikasi tipe argumen menjadi tanda tangan yang membuat tanda tangan lebih lama. Sintaks ini kemudian diadopsi selama standarisasi C.
static struct origin *find_origin(struct scoreboard *sb,
struct commit *parent,
struct origin *origin)
kurang mudah dicerna, tetapi tidak terlalu buruk. (Kutipan dari Git)
Sekarang pertimbangkan praktik pemrograman modern dengan nama deskriptif yang panjang dan tipe parametrized dan lihat bagaimana pilihan ini menjadi bencana. Contoh dari tajuk Boost:
template <class A1, class A2, class A3, class A4, class A5, class A6>
inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&)
{
typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type result_type;
return result_type();
}
Jika Anda menulis kode generik, tanda tangan seperti itu bahkan tidak luar biasa. Anda dapat menemukan contoh kasus yang jauh lebih buruk daripada ini tanpa berusaha terlalu keras.
C, C ++, dan turunannya, Java dan C #, tampaknya menjadi pengecualian untuk memiliki deklarasi / definisi yang dapat dibaca. Pendahulu dan rekan-rekan mereka yang populer (Fortran, ALGOL, Pascal) menempatkan nama di depan tipe hasil dan, untungnya, banyak penerus mereka (Go, Scala, TypeScript, dan Swift untuk menyebutkan beberapa) telah memilih sintaksis yang lebih mudah dibaca juga.