Standar pengkodean untuk kode yang dihosting di drupal.org menyarankan untuk menggunakan dua spasi untuk membuat indentasi kode; situs lain menyarankan untuk menggunakan tab untuk indentasi kode.
Apa karakter lekukan yang tepat untuk semuanya, dan dalam setiap situasi? Tolong jelaskan jawaban yang Anda berikan.
coding-style
indentation
kiamlaluno
sumber
sumber
Jawaban:
Spaces
Tab bisa berupa jumlah kolom berbeda tergantung pada lingkungan Anda, tetapi spasi selalu satu kolom.
Dalam hal berapa banyak spasi (atau tab) yang membentuk lekukan, lebih penting untuk konsisten di seluruh kode Anda daripada menggunakan nilai penghentian tab tertentu.
sumber
Tab
Sekarang, tentu saja, konsistensi lebih penting daripada salah satunya, dan IDE yang bagus membuat perbedaan dapat diabaikan. Yang mengatakan, titik utas ini adalah menjadi perang suci, jadi:
Saya lebih suka tab:
sumber
Gunakan tab untuk membuat indentasi awal baris, satu tab per level indent, dan biarkan semua orang memilih seberapa lebar yang mereka inginkan.
Gunakan spasi jika Anda menyejajarkan karakter dalam satu baris, sehingga mereka selalu berbaris terlepas dari ukuran tab.
Dan temukan dan pukul semua pembuat perangkat lunak awal yang membiarkan hal bodoh ini menjadi masalah.
(Serius, mengapa ini bahkan sesuatu yang dibahas? Selanjutnya Anda akan memberi tahu saya bahwa Anda juga ingin menggunakan beberapa karakter untuk jeda baris!)
sumber
Tab
Spasi harus digunakan di mana tab sama sekali tidak berguna.
Bahkan untuk menyelaraskan parameter dan komentar, tab masih berfungsi lebih baik .
sumber
Semua argumen untuk tab bagus dalam teori. Tapi...
Ya, dengan tab Anda dapat menentukan tingkat lekukan Anda. Dan ya, Anda dapat menggunakan kombinasi tab dan spasi untuk menyelaraskan sesuatu. Dan di dunia yang ideal itu akan terjadi
Pada kenyataannya, Anda tidak dapat melihat perbedaan antara spasi dan tab, mereka selalu keliru ketika memindahkan kode, dan melihat kode di program lain yang memiliki tab yang diatur ke 8 kolom adalah gangguan.
Saya dulu menggunakan tab. Kemudian saya mulai bekerja sebagai bagian dari tim dan membagikan kode. Saya dengan cepat menjadi pendukung ruang. Jadi, sementara saya bisa bersimpati dengan utopia tab, saya tidak bisa membayangkan tidak menggunakan spasi.
sumber
public:
dalam deklarasi kelas C ++ sehingga mereka terlihat lebih cantik (terutama dengan kelas bersarang).Beberapa pendapat relevan yang mungkin menarik:
sumber
Tab untuk menang.
sumber
Saya benar-benar. benci. 4. spasi.
Mengapa? Terutama karena saya lelah menavigasi kode saya dengan keyboard dan harus terus menekan
left
left
left
left
untuk pergi ke satu lekukan. Ini lahir dari versi awal Notepad ++ dan bahkan notepad Windows biasa di mana tidak ada yang namanya tombol format. Saya memiliki begitu banyak masalah ketika orang hanya akan menggunakan 3 ketika saya telah menggunakan 4 di mana saja antara lain.Alasan lainnya adalah bahwa karakter tab ada secara khusus untuk lekukan , dan baru kemudian diadopsi untuk navigasi. Mengapa kita lakukan
space
space
space
space
ketika sederhanatab
akan berhasil? Mengapa IDE harus berurusan dengan 2-5 kode spasi dan format dengan benar ketika tab sederhana dan opsi preferensi akan berfungsi?Sayangnya saya adalah minoritas.
sumber
w
danb
(ataue
dange
) untuk melewati spasi putih dan token: PSaya pribadi suka menggunakan tab dalam segala hal, karena setiap pengembang dapat mengontrol jumlah lekukan per tab. Dengan begitu Anda mendapatkan fleksibilitas dalam tampilan.
Yang sedang berkata, saya biasanya meniru gaya pengkodean apa pun dalam file untuk memulai (karena saya menghabiskan banyak waktu melakukan pekerjaan pemeliharaan).
sumber
Saya tidak berpikir bahwa ada yang namanya lekukan yang tepat (setidaknya bukan tanpa perang kecil).
Secara pribadi saya suka empat ruang. Mereka memungkinkan saya untuk membaca kode lebih cepat dan mereka terlihat sama di setiap editor - bahkan Vi.
sumber
softtabstop
opsiretab
danretab!
perintah dan .Spaces, karena ketika Anda menyelaraskan komentar ke kanan kode, atau daftar parameter fungsi, atau ekspresi multiline kompleks, atau hal-hal semacam itu, Anda ingin karya indah Anda tampil tepat untuk semua orang . Jika Anda menggunakan tab dan memungkinkan orang untuk mengatur tabstop mereka secara berbeda, mereka akan memecah keselarasan untuk semua kecuali kasus indentasi kode yang paling sederhana.
Selain itu, sangat jelas bahwa setiap orang di dunia harus menggunakan vim, yang membuatnya sepele untuk indentasi, lekukan, dan menavigasi melalui "tab stops" bahkan dalam file yang diindentasi ruang.
sumber
Tab adalah pilihan alami dan ortodoks, karena menurut definisi digunakan untuk indentasi.
Sayangnya, tab diterapkan secara tidak merata, sehingga satu-satunya solusi dunia nyata adalah 4 ruang.
sumber
Anda jelas membutuhkan pendekatan kombinasi.
Jika Anda berbagi kode dengan pengembang lain, Anda perlu membuat standar, dan karena itu tidak mungkin (koff koff), Anda perlu membuat semua orang melakukan empat spasi.
Maka Anda memerlukan editor yang cukup pintar untuk tidak bodoh tentang hal itu, untuk mengetahui bahwa itu harus memperlakukan garis dengan empat spasi di depannya seperti itu indentasi. Editor IDE atau programmer modern dapat secara otomatis mengalirkan kode dengan spasi alih-alih tab.
sumber
Mengapa seseorang tidak dapat menerapkan ini:
Semua orang senang karena mereka semua melihat format 'sendiri'
Apakah itu sangat sulit?
sumber
indent
program ini.Spaces or Tabs - Apa yang benar-benar dikatakan Atwood adalah memilih satu hal dan konsisten dalam proyek Anda. Satu-satunya grail suci pemformatan kode adalah memastikan bahwa konsisten sehingga psikopat yang menjaga kode Anda setelah Anda tidak merasa terdorong untuk memperbaiki situasi secara permanen.
Yang mengatakan, jika Anda bekerja di Python atau bahasa lain di mana spasi putih adalah konstruksi pemrograman yang sebenarnya saya tidak bisa membayangkan menggunakan tab.
sumber
Saya tipe pria 4 ruang, tab saja tidak konsisten.
sumber
Rupanya tab mengacaukan hal-hal di Delphi jadi saya tidak menggunakan tab di Delphi.
Namun saya melakukan semua hal lain menggunakan Emacs dan selalu menggunakan tab karena tab saya tepat di tempat yang saya inginkan.
sumber
Jawabannya adalah tidak ada karakter indentasi tunggal yang tepat untuk setiap situasi. Memformat menggunakan karakter tidak fleksibel dan dapat menyebabkan konflik ketika gaya yang berbeda digunakan dalam tim.
Satu-satunya metode untuk memformat kode tanpa cacat dan fleksibel dengan gaya format yang berbeda adalah melakukannya secara virtual, yaitu tanpa karakter lekukan. Satu-satunya editor kode yang saya tahu mendukung ini adalah yang digunakan dalam contoh di bawah ini:
Untuk mendemonstrasikan pemformatan virtual , tangkapan layar di bawah ini dari editor XSLT * yang menggunakan metode indentasi ini (ada juga video pendek di sini ). Setiap karakter dalam XSLT telah disorot dengan warna kuning, untuk tujuan ilustrasi, untuk memungkinkan satu-satunya tab atau karakter spasi dalam konten yang terlihat jelas. Lekukan kode ditangani oleh sistem render editor menyesuaikan margin kiri (yang memiliki latar belakang putih).
Satu-satunya karakter spasi terkemuka mendahului baris Buku , karena ini adalah konten teks literal, bukan kode, karakter spasi ini harus dipertahankan.
Dengan pemformatan virtual, Anda memilih lebar lekukan yang sesuai dengan lingkungan dan gaya lekukan tanpa memengaruhi karakter apa pun di file sumber. Anda bahkan dapat mengatur lebar lekukan ke 0, jika Anda memerlukan tampilan kode yang rata seperti yang ditunjukkan di bawah ini:
Untuk membandingkan ini dengan pemformatan karakter spasi, XSLT yang sama dibuka di editor tanpa pemformatan virtual diubah oleh formatter editor otomatis untuk ini:
Blok kuning kosong yang lebih besar pada tangkapan layar di atas dengan jelas menunjukkan karakter spasi yang ditambahkan oleh formatter dari editor konvensional. Sayangnya, ini sekarang tidak dapat dibedakan dari konten nyata sehingga XSLT harus dimodifikasi untuk memperbaiki masalah ini.
Ringkasan
XSLT mungkin merupakan kasus ekstrem, tetapi prinsip ini berlaku untuk banyak bahasa pemrograman: Karakter harus digunakan untuk konten dan metode alternatif yang dicari ketika datang ke format.
** Pengungkapan: Editor XSLT dengan format virtual dikembangkan oleh perusahaan saya sendiri *
sumber
Tidak disebutkan sampai sekarang: Ada bahasa (Python, Haskell) di mana lekukan penting. Tapi 1 karakter dihitung sebagai 1 karakter, baik itu spasi atau tab sehingga lekukan yang dilihat oleh kompiler mungkin tidak sama dengan yang Anda lihat di layar jika Anda menggunakan tab.
Oleh karena itu, dalam bahasa seperti Haskell, spasi adalah suatu keharusan. Di Makefiles, TABS adalah suatu keharusan. Dalam semua yang lain, ini adalah masalah selera pribadi dan saat ini tidak banyak - setiap editor yang layak memiliki perintah "(memimpin) tab ke spasi" dan "(memimpin) spasi ke tab".
sumber
Saya dulu menggunakan spasi, tetapi saya telah menggunakan tab akhir-akhir ini semata-mata karena itulah yang diatur Eclipse ketika akhirnya saya perhatikan. Semua pengembang lain di tim saya menggunakan Eclipse, jadi masuk akal untuk melakukan standarisasi pada tab ketika kami menyadari bahwa kami sudah menggunakannya sejak lama dan tidak ada alasan untuk repot-repot beralih ke spasi. Saya terkejut dengan banyaknya masalah yang terjadi.
Mengatur ukuran tab yang ditampilkan ke 3 atau 5 karakter di IDE Anda sangat memudahkan membedakan antara bagian kode yang diindentasi oleh spasi (hampir selalu 4 hari ini) dan yang diindentasi oleh tab.
sumber
Banyak argumen telah diberikan, tetapi tidak ada yang menyebutkan di mana kita bisa menuju di masa depan .
Tab atau spasi!
Idealnya kode harus dianggap data, dan tidak disimpan dalam format teks tertentu. Setiap pengembang dapat menerapkan tampilan yang diinginkannya sendiri. Selain itu, tampilan ini tidak boleh terbatas pada teks saja , tetapi dapat mencakup tabel, pemilih warna dan rumus matematika.
Gagasan ini tidak terlalu dibuat-buat. Itu adalah editor Pemrograman Berorientasi Bahasa JetBrain, Meta Programming System (MPS) yang pertama kali membuat saya menyadari bahwa ini menyelesaikan seluruh diskusi, sekaligus menambahkan banyak kemungkinan tambahan. (Ya ini dimungkinkan dengan plugin editor, tetapi bekerja pada teks secara langsung menambahkan begitu banyak kerumitan yang tidak perlu, yang bertentangan dengan pendekatan yang dilakukan MPS.)
Berbeda dengan tab dan spasi, ada sedikit kerugian yang dapat disebutkan untuk bekerja secara langsung pada pohon sintaksis abstrak . Semua yang diperlukan adalah agar teknologi matang untuk produk yang layak secara komersial. Tanda-tanda pertama ini muncul. Sebagian besar dibangun di atas MPS, editor tindakan komersial, Realaxy telah dibuat.
Saya ingin melihat salah satu pemain besar melompat pada konsep teknologi ini dan melihat apa yang terjadi!
sumber
Tidak ada yang lebih baik, tidak ada yang lebih buruk. Satu-satunya hal yang penting adalah konsisten.
Jika Anda adalah tim yang terdiri dari satu, pilih apa pun yang Anda suka. Pertimbangkan perilaku default editor favorit Anda, tetapi pilih apa pun yang Anda suka.
Jika Anda berada dalam tim, lakukan apa yang dilakukan tim. Titik.
Dalam berbagai pekerjaan saya, saya telah menggunakan dua spasi, empat spasi, delapan spasi, tab, spasi-dan-tab, saya pikir saya mungkin juga menggunakan satu spasi. Saya memberi tahu editor saya apa yang harus dilakukan maka saya tidak memikirkannya lagi, editor mengerjakan perinciannya.
Satu-satunya hal lain adalah memastikan Anda memilih editor yang pintar. Emacs atau vi? Nah, itu perang suci yang ingin saya lawan :-)
sumber