Saat Anda menggunakan Python atau Javascript, Anda harus selalu meletakkan operator biner di akhir baris sebelumnya, untuk mencegah baris baru dari penghentian kode Anda sebelum waktunya; ini membantu Anda menangkap kesalahan.
Tetapi dalam C atau C ++, ini bukan masalah, jadi saya bertanya-tanya:
Apakah ada alasan bagi saya untuk memilih versi kedua daripada yang pertama?
return lots_of_text
+ 1;
melawan
return lots_of_text +
1;
(Misalnya, apakah salah satunya membantu mencegah jenis kesalahan lainnya? Atau salah satunya dianggap lebih mudah dibaca?)
c++
coding-style
pengguna541686
sumber
sumber
Jawaban:
Seperti yang dapat Anda lihat dari jawaban, tidak ada konsensus tentang masalah ini. Kecuali jika Anda bekerja dalam tim, gunakan apa yang membuat Anda lebih nyaman.
Saya lebih suka memasukkan baris baru sebelum operator.
Setiap kali saya harus memutus garis, saya biasanya menempatkan paling banyak satu istilah dari "level" yang sama pada sebuah baris:
Hukum gravitasi Newton dalam Python:
Bandingkan ini dengan:
Saya ingin tahu, bahwa saya "membagi oleh jarak kuadrat", saya tidak ingin tahu, bahwa "mass_2 akan dibagi", karena itu bukan bagaimana saya memikirkan ekspresi matematika.
Lebih jauh, saya biasanya ingin tahu dulu, apa yang saya lakukan (operator), sebelum saya peduli dengan apa yang saya lakukan (operan).
Atau pertimbangkan pernyataan SQL yang berbelit-belit ini:
Ini memungkinkan saya untuk melihat bagaimana kondisi individu terhubung dengan sangat mudah, hanya dengan membaca sepintas lalu dari atas ke bawah tanpa harus membaca setiap baris sampai akhir untuk menemukan operator yang bertentangan dengan:
Saya berpikir tentang yang pertama dalam hal "
X
benar", maka saya mengubah itu dengan mengatakan: " DAN ini juga benar" yang terasa lebih alami bagi saya daripada sebaliknya. Selanjutnya, saya menemukan yang pertama jauh lebih mudah untuk diuraikan secara visual.Atau contoh PHP:
Sekali lagi, saya hanya bisa membaca skim secara vertikal untuk melihat saya hanya menyatukan teks, karena sebagian besar waktu saya merasa bahwa saya tidak benar-benar peduli apa yang ada di dalam string / kondisi.
Tentu saja, saya tidak akan menerapkan gaya ini tanpa syarat. Jika menempatkan baris baru setelah operator tampaknya lebih masuk akal bagi saya, saya akan melakukannya, tetapi saya tidak bisa memikirkan contoh saat ini.
sumber
.
, bukan.=
?force
Saya hampir selalu memutus baris sebelum operator biner untuk menjelaskan kepada pembaca kode bahwa ini adalah kelanjutan dari ekspresi dan bukan pernyataan berikutnya. Ini penting jika pernyataan berikutnya biasanya diindentasi. Misalnya, pertimbangkan pernyataan if yang memiliki ekspresi kondisional yang kompleks:
Bagian kedua dari ekspresi kondisional mudah dikacaukan dengan pernyataan pertama dari bagian tersebut. Ini bisa sangat membingungkan jika bagian pertama dari kondisinya panjang dan && berakhir dengan benar. Bandingkan ini dengan alternatifnya:
Ini terlihat agak aneh tetapi membuatnya cukup jelas bahwa bagian kedua dari kondisi bukanlah awal dari sebuah pernyataan.
Saya melakukan ini dalam konteks orang lain juga, tetapi pernyataan if adalah yang paling penting, karena lekukannya ambigu. Tentu saja, seseorang dapat mengubah indentasi atau penempatan brace, tetapi ini juga terlihat aneh.
tl; ujung kiri garis lebih penting untuk pemahaman bacaan cepat, sehingga menempatkan operator di ujung kiri adalah penanda yang lebih menonjol bahwa ini adalah ekspresi yang berkelanjutan, bukan pernyataan.
sumber
+
dan-
yang juga bisa dipahami sebagai operator awalan unary). Solusi yang biasa untuk membuat garis yang berkelanjutan menonjol adalah membuat indentasi lebih banyak (yaitu dengan dua tingkat).Saya selalu menggunakan yang pertama. Anda ingin menjadi jelas apa yang Anda lakukan dengan itu di sana. Jika saya melihat itu dan ada dinding teks di atas bahwa saya tidak akan tahu apa yang terjadi sejauh penggunaan 1 itu.
Tanda '+' di sebelah 1 memperjelas bahwa setidaknya saya melakukan sesuatu dengan 1 yang dimaksud daripada nongkrong, "Saya semua dalam kode Anda dude ..." tanpa alasan yang jelas.
sumber
Saya merasa itu sangat membantu membaca pemahaman ketika sebuah baris menunjukkan bahwa pernyataan berlanjut di baris berikutnya dengan memiliki operator biner pada akhirnya, dan dengan demikian membuat pernyataan itu tidak lengkap. Titik koma yang hilang tidak cukup bagi saya untuk segera memahami itu.
Ini mungkin hanya masalah kebiasaan tetapi kecuali jika Anda bekerja secara eksklusif dalam bahasa yang memerlukan tanda titik koma (yang menurut saya cukup tidak realistis mengingat merebaknya skrip shell, makefile dan bahasa seperti Python) Anda mungkin tidak akan memiliki kebiasaan itu juga.
EDIT: Giorgio membuat poin yang sangat baik dalam komentar: penggunaan ini menggemakan tanda baca umum , baik dalam matematika dan bahasa alami. Kamu akan menulis
Anda tidak akan menulis
sumber