Trailing whitespace cukup menjadi masalah bagi programmer yang editor seperti Emacs memiliki fungsi khusus yang menyorotnya atau menyingkirkannya secara otomatis, dan banyak standar pengkodean mengharuskan Anda untuk menghilangkan semua contohnya. Saya tidak sepenuhnya yakin mengapa. Saya dapat memikirkan satu alasan praktis untuk menghindari ruang putih yang tidak perlu, dan itu adalah jika orang tidak berhati-hati untuk menghindarinya, maka mereka mungkin mengubahnya di antara komitmen, dan kemudian kita mendapatkan difs tercemar dengan garis yang tampaknya tidak berubah, hanya karena seseorang dihapus atau menambahkan spasi.
Ini sudah terdengar seperti alasan yang cukup baik untuk menghindarinya, tetapi saya ingin melihat apakah ada lebih dari itu. Jadi, mengapa mengejar spasi putih adalah masalah besar?
sumber
Jawaban:
Alasan yang penting bagi saya:
Ketika saya menekan tombol "End", saya berharap kursor pergi ke akhir baris (tergantung editor apa yang saya gunakan dan bagaimana ini dikonfigurasi) dan saya berharap dapat mulai mengetik segera. Jika kursor sampai di sana dan saya harus menghapus 3 atau 4 karakter, itu menjengkelkan. Terutama jika tidak konsisten di seluruh file.
Ketika saya memiliki string literal yang menjangkau beberapa baris, mengeklik spasi putih dapat membuat string output terlihat salah saat digunakan.
Meskipun tidak sepenuhnya pemrograman, spasi putih dapat secara serius mengacaukan entri data, jika ada trailing / memimpin dalam file yang akan diuraikan dan digunakan sebagai input untuk sesuatu yang lain. Ini paling sering terjadi ketika file input yang bersih dan dihasilkan menjadi kotor oleh seseorang yang mengeditnya di Excel atau sesuatu dan kemudian mengekstrak spasi putih (dan masalah pemformatan lainnya) dapat menyusup.
sumber
Saya benar-benar membenci spasi putih, tapi alasan pastinya agak kabur.
Saya kira asal dari perasaan itu bukan dalam pemrograman, tetapi di bidang penerbitan desktop. Pernahkah Anda mendapatkan dokumen yang diketik oleh orang lain yang perlu diketik dalam publikasi? Dalam semua publikasi modern, terutama ketika menggunakan kolom, sudah lazimnya kalimat saling mengikuti secara berurutan dalam satu paragraf, bukan memulai baris baru untuk setiap kalimat. Nah, ketika ada spasi spasi tambahan, dibutuhkan lebih banyak upaya untuk memperbaikinya (banyak pencarian dan ganti tindakan yang menghilangkan spasi ganda, dll ...).
Alasan lain (dalam pemrograman), bukan alasan yang bagus, saya tahu, tetapi mereka mengganggu jiwa bawah sadar saya sedemikian kuatnya sehingga mereka memaksa saya untuk menghilangkannya:
Ya ya saya tahu! Saya tahu, ini adalah alasan sampah. Saya bukan perfeksionis, tapi ... yah mungkin saya?
Alasan terakhir yang bisa saya pikirkan adalah pergerakan kursor yang tidak konsisten. Rasanya seperti kursor menggantung di udara tipis di ujung garis, setiap langkah ke kanan dapat menyebabkannya jatuh atau melayang lebih jauh ke tingkat yang tidak diketahui, itu hanya terasa goyah (seperti blok yang tidak terlihat atau menghilang yang Super Mario digunakan untuk melompat).
Mungkin saya bisa didiagnosis menderita trailspacefobia?
sumber
Banyak dari jawaban ini hampir menyentuh alasan mengapa hal itu buruk bagi saya, tetapi pada dasarnya: Ini "merusak" editor teks. Pengalaman saya dengan vim.
Vim dirancang sedemikian rupa sehingga tindakan umum memetakan ke huruf begitu bersih sehingga Anda bahkan tidak perlu memikirkan kombinasi huruf atau tombol apa yang akan dipukul. Berbagai tombol cepat memungkinkan kursor untuk melompat-lompat di sekitar teks begitu cepat sehingga hanya perlu beberapa penekanan tombol untuk mendapatkannya di mana pun Anda inginkan. Bahkan hal-hal seperti melipat blok kode cepat, karena Anda dapat menekan END atau $ untuk melompat ke akhir baris, di mana kursor harus tumpang tindih {atau} atau (atau) atau sesuatu - tidak perlu memutus aliran pemikiran Anda untuk dapatkan ide di layar.
Tetapi kemudian muncul beberapa spasi putih, dan gerakan kursor tidak lagi dapat diprediksi. Proses mengetik Anda sedang terganggu karena sesuatu yang tidak dapat Anda lihat memengaruhi ke mana kursor pergi, jadi Anda harus mematahkan pemikiran Anda untuk mengirimnya ke tempat yang seharusnya.
Pernah perhatikan betapa jengkelnya orang ketika mereka benar-benar fokus pada suatu tugas dan seseorang menyela mereka? Ya, menemukan spasi spasi ketika itu paling tidak diharapkan persis seperti itu.
Sebagai seorang sidenote, saya juga memperhatikan bahwa orang-orang yang tidak peduli dengan trailing space putih adalah mereka yang menggunakan mouse untuk navigasi, dan cenderung menjadi juru ketik yang lebih lambat karena itu ...
sumber
%s/ *$//
Anehnya, jawaban yang paling jelas tidak ada: tertinggal spasi dapat dan akan menghasilkan bug yang sulit ditemukan.
Situasi yang paling jelas adalah string multiline. Python, JavaScript, dan Bash adalah beberapa contoh bahasa yang dapat dipengaruhi oleh ini:
menghasilkan:
yang entah bagaimana samar dan sulit dipecahkan jika editor tidak dikonfigurasi untuk menampilkan karakter spasi putih.
Meskipun highlight sintaksis dapat membantu menghindari kasus-kasus seperti itu, lebih mudah untuk tidak memiliki masalah di tempat pertama dengan tidak membiarkan spasi kosong di akhir baris. Inilah sebabnya mengapa beberapa pemeriksa gaya akan memunculkan peringatan ketika menemukan spasi tambahan, dan beberapa editor akan memotongnya secara otomatis.
Illustration: syntax highlight dapat membantu menghindari tertinggal spasi dalam situasi di mana ia dapat menyebabkan bug, tetapi jangan hanya mengandalkan itu.
Konteks lain, yang disebutkan secara singkat dalam jawaban sebelumnya , adalah data yang disimpan dalam file.
Sebagai contoh, file CSV yang berisi trailing whitespace dapat menyebabkan inkonsistensi data yang juga sangat sulit untuk dideteksi: parser yang memenuhi standar akan memangkas whitespace (standar menunjukkan bahwa memimpin atau trailing whitespace tidak relevan, kecuali dibatasi dengan tanda kutip ganda), tetapi beberapa parser mungkin berperilaku tidak benar dan menjaga spasi putih sebagai bagian dari nilai.
Format khusus lainnya mungkin secara khusus menganggap spasi putih adalah bagian dari nilai, yang mengarah ke situasi yang konsisten tetapi masih sulit untuk di-debug.
sumber
Saya baru-baru ini menghabiskan satu hari mencari bug yang ternyata merupakan spasi spasi data yang tidak terduga.
sumber
Ketika saya memilih kode sumber program untuk menyalin dan menempelnya (atau menghapusnya), saya merasa sedikit menjengkelkan melihat semua ruang putih ekstra yang tidak beraturan pada akhir baris: karena saya harus membaca kode ketika saya memilihnya , ruang putih yang tertinggal adalah suara yang tidak diperlukan. Contoh (titik mewakili spasi putih):
Contoh ini buatan, tetapi saya telah melihat banyak kode yang terlihat seperti ini.
sumber
Selain masalah yang jelas itu rusak parsing dalam kasus-kasus tertentu? Seperti yang dicatat poster lain, poster itu dapat menyebabkan kesalahan yang terselubung dan terselubung. Spasi tidak selalu tidak signifikan. Dalam beberapa kasus, trailing spasi putih dapat secara signifikan mengubah arti dari baris kode atau data.
Dalam kebanyakan kasus spasi putih ada untuk memformat kode untuk pembaca manusia. Trailing whitespace dapat mengindikasikan beberapa hal termasuk:
Dua di antaranya dapat menyebabkan kesalahan fungsi, dan yang lain membuatnya lebih sulit untuk memahami kode.
sumber
Ada bahasa pemrograman yang sensitif terhadap spasi putih end-line. Misalnya, skrip TCL akan memberikan kesalahan jika ada spasi kosong di akhir baris.
sumber