Secara teknis tidak, tetapi sebaliknya benar-benar Ya !!!
Lupakan "Ini preferensi pribadi", "kodenya akan berjalan dengan baik", "telah berfungsi dengan baik untuk saya", "lebih mudah dibaca" yada yada BS. Ini dapat dengan mudah menyebabkan masalah yang sangat serius jika Anda membuat kesalahan dan percayalah, sangat mudah untuk membuat kesalahan saat Anda membuat kode (Don't belive ?, lihat Apple yang terkenal bug yang gagal ).
Argumen: "Ini pilihan pribadi"
Tidak, bukan. Kecuali jika Anda adalah tim satu orang yang berangkat dari mars, tidak. Sebagian besar waktu akan ada orang lain membaca / memodifikasi kode Anda. Dalam tim pengkodean yang serius ini akan menjadi cara yang disarankan, jadi ini bukan 'preferensi pribadi'.
Argumen: "kode akan berjalan dengan baik"
Begitu juga kode spageti! Apakah ini berarti tidak masalah untuk membuatnya?
Argumen: "sudah bekerja dengan baik untuk saya"
Dalam karir saya, saya telah melihat banyak bug yang dibuat karena masalah ini. Anda mungkin tidak ingat berapa kali Anda berkomentar 'DoSomething()'dan bingung mengapa 'SomethingElse()'dipanggil:
if (condition)
DoSomething();
SomethingElse();
Atau menambahkan 'SomethingMore' dan tidak menyadari itu tidak akan dipanggil (meskipun lekukan menyiratkan sebaliknya):
if (condition)
DoSomething();
SomethingMore();
Ini adalah contoh kehidupan nyata yang saya miliki. Seseorang ingin mengaktifkan semua pencatatan sehingga mereka menjalankan find & replace "console.log"=> //"console.log":
if (condition)
console.log("something");
SomethingElse();
Lihat masalahnya?
Bahkan jika Anda berpikir, "ini sangat sepele, saya tidak akan pernah melakukan itu"; ingat bahwa akan selalu ada anggota tim dengan keterampilan pemrograman yang lebih rendah daripada Anda (semoga Anda bukan yang terburuk di tim!)
Argumen: "lebih mudah dibaca"
Jika saya belajar sesuatu tentang pemrograman, hal-hal sederhana menjadi sangat kompleks dengan sangat cepat. Sangat umum bahwa ini:
if (condition)
DoSomething();
berubah menjadi yang berikut setelah diuji dengan berbagai browser / lingkungan / use case atau fitur baru ditambahkan:
if (a != null)
if (condition)
DoSomething();
else
DoSomethingElse();
DoSomethingMore();
else
if (b == null)
alert("error b");
else
alert("error a");
Dan bandingkan dengan ini:
if (a != null) {
if (condition) {
DoSomething();
}
else {
DoSomethingElse();
DoSomethingMore();
}
} else if (b == null) {
alert("error b");
} else {
alert("error a");
}
PS: Poin bonus pergi ke siapa yang melihat bug dalam contoh di atas.