Mengapa kode Wordpress sangat "luar angkasa"?

22

Inti WP, banyak plugin WP, dan standar pengkodean WP sendiri menggunakan sangat "aplikasi dermawan" dari Spacekarakter (bukan untuk lekukan, tetapi "di dalam" parens dan kurung). Ini tampaknya unik untuk Wordpress - gaya / filosofi ini tampaknya tidak hadir dalam proyek serupa lainnya, PHP atau lainnya.

Untuk informasi lebih lanjut tentang pendekatan ini, lihat: https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage

Contoh: foreach ( (array) $foo as $bar ) { ...

Saya mengacu pada spasi setelah foreach, setelah yang pertama (, dan sebelum final )(dan spasi serupa lainnya yang ditampilkan dalam "Space Usage" pada tautan di atas).

Gaya ini sepertinya tidak perlu bagi saya - ini membutuhkan lebih banyak pengetikan dan (pendapat) membuat kode parsing secara visual lebih sulit. (/ Pendapat)

Keinginan saya bukanlah untuk berdebat apakah gaya ini adalah ide yang baik atau tidak. Sebaliknya, saya hanya ingin memahami motif mengapa ini adalah gaya yang direkomendasikan. Bahkan komentator pada standar pengkodean WP penasaran:

masukkan deskripsi gambar di sini

Jawaban yang diberikan untuk pertanyaan MK Safi pada dasarnya adalah:

  1. Agar mudah dibaca
  2. Status quo (alias "Begitulah adanya")

Alasan saya untuk bertanya adalah bahwa secara pribadi saya tidak melihat banyak nilai dalam mengadopsi standar pengkodean WP (mengenai "Penggunaan Ruang") dalam proyek internal kami saja. Namun, saya ingin tahu apakah saya kehilangan sesuatu.

Apakah ada alasan di luar dua yang tercantum di atas, seolah-olah valid atau tidak, untuk mengikuti gaya "Penggunaan Ruang" Wordpress?

rinogo
sumber
2
Anda dapat melakukan apa yang Anda suka pada proyek internal Anda, selama Anda konsisten. Sebagai catatan tambahan, kami menggunakan tab daripada spasi, jadi kami mungkin memerlukan lebih sedikit pengetikan, bukan berarti ini penting jika Anda memiliki IDE modern yang melakukan semua pemformatan untuk Anda dan dapat memformat ulang untuk gaya yang berbeda untuk Anda (misalnya luhur) dengan paket, PHPStorm, dll.)
Tom J Nowell
Terima kasih atas komentar Anda, @ TomJNowell! Saya pikir mungkin saya salah berkomunikasi dalam "pertanyaan" - saya kurang bertanya tentang tab / spasi untuk indentasi, dan lebih banyak tentang aturan yang disebutkan di bawah "Space Usage" di make.wordpress.org/core/handbook/coding-standards/php / ... . Maaf saya tidak lebih jelas!
rinogo
5
Lebih mudah dibaca ketika Anda tidak memiliki penyorotan sintaksis. Setidaknya itulah mengapa saya menggunakan gaya itu dalam proyek internal. Saya harus mengedit PHP sering di konsol biasa dengan vi dalam konfigurasi minimal.
fuxia
2
FWIW, MediaWiki memiliki konvensi gaya yang sangat mirip , dan sebenarnya cukup ketat dalam menegakkannya (setidaknya pada intinya). Mereka bahkan memiliki skrip untuk secara otomatis menambahkan spasi yang hilang. Yang bisa saya katakan adalah bahwa seseorang sudah terbiasa dengannya, setelah beberapa saat.
Ilmari Karonen
1
@rinogo Saya tahu, komentar kadang-kadang hanya komentar, bukan jawaban :)
Tom J Nowell

Jawaban:

13

Resoning

Mengenai "ruang putih" (tidak peduli apakah tab atau spasi): Ini hanyalah preferensi pribadi yang terjebak dengan proyek.

Imo standar pengodean WP berantakan dan dapat diabaikan - selama Anda tidak berkontribusi pada inti

  • cerita yang berbeda dan
  • panduan gaya akan diabaikan di sana juga.

"[...] itu tidak berlaku surut dalam jumlah besar pada kode lama karena membuat sejarah svn / git sangat sulit untuk digunakan. Kebijakan resmi adalah bahwa kode baru harus mengikuti panduan gaya, tetapi jika Anda memformat kode yang berdekatan dengan benar maka jadilah itu, tetapi tambalan yang hanya kode format, atau melakukan bahwa kode format hanya dilarang. "

- @ TomJNkatakan dalam komentar

Alternatif

Anda lebih baik tetap dengan standar PSR (yaitu: 2) atau hal-hal seperti standar Symfony (atau hanya milik Anda sendiri).

Peningkatan Kinerja & Alat

Tidak ada keuntungan yang Anda peroleh dari memiliki standar pengkodean (selain memiliki satu untuk dibagikan dan minoritas yang membencinya, sementara sisanya mendikte itu) atau dari memiliki tab atau spasi lebih atau kurang. Jika Anda khawatir tentang ruang disk yang tidak perlu yang digunakan atau mungkin program yang lebih lambat, Anda masih dapat memampatkan kode Anda (lihat proyek GitPHPHooks ) di komit. Keuntungan yang akan Anda peroleh adalah sekitar 5% maks dari ruang file asli, hampir sama dengan apa yang diberikan oleh kompresi / minimalkan sintaksis HTML. Ada alat bantu Node.js yang tersedia melalui npm untuk itu.

Apa yang secara pribadi sangat bermanfaat bagi saya adalah PHP Linter dan _PHP Mess Detector. Saya memasukkan keduanya ke dalam Perpustakaan GitPHPHooks jadi saya tidak perlu berpikir atau peduli untuk menjalankannya.

kaisar
sumber
Panduan gaya tidak diabaikan untuk Core, tetapi tidak berlaku surut secara massal pada kode lama karena membuat sejarah svn / git sangat sulit untuk digunakan. Kebijakan resmi adalah bahwa kode baru harus mengikuti panduan gaya, tetapi jika Anda memformat kode yang berdekatan dengan benar maka jadilah itu, tetapi patch yang hanya memformat kode, atau melakukan bahwa hanya kode format yang dilarang
Tom J Nowell
@ TomJNowell Dan karena itu menjadikan panduan gaya tidak berguna :) Bagaimanapun, silakan ajukan suntingan dan tambahkan itu ke jawabannya. Ini info penting.
kaiser
Saya pikir saya tidak terlalu jelas dalam pertanyaan saya - saya kurang merujuk pada tab vs spasi, dan lebih banyak ke "Space Usage" di make.wordpress.org/core/handbook/coding-standards/php/… . Saya akan mengedit pertanyaan agar lebih jelas.
rinogo
1
@rinogo Aku membuatmu benar pertama kalinya, maka paragraf pertama. Btw, saya menganggap ini lebih mudah dibaca juga.
kaiser
7

Spasi setelah titik adalah normal, seperti $baz . '-5', gaya ini digunakan dalam banyak standar pengkodean untuk operator ( y + z).

Ini dilakukan untuk meningkatkan keterbacaan, misalnya salah satunya lebih mudah dibaca daripada yang lain.

$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo

$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo

Ini menjadi lebih jelas ketika dikelilingi dengan "kode" lainnya.

Adapun ruang di sekitar tanda kurung ( 1, 2, 3 )saya tidak tahu, saya kira argumennya adalah untuk keterbacaan juga.

Ini dapat membingungkan karena standar WordPress sendiri memiliki contoh dengan tanda kurung di komentar yang tidak memiliki spasi dan basis kode itu sendiri membingungkan dengan beberapa bagian memiliki ruang dan yang lainnya tidak (lihat tangkapan layar di bawah) bahkan dalam fungsi yang sama.

Sebagian besar standar PHP sebenarnya melakukan panggilan sebaliknya. Tanda kurung harus memeluk kontennya. Bahkan kebanyakan standar pengkodean untuk bahasa lain menuliskannya seperti: (1, 2, 3)jadi ini sedikit misteri mengapa WP melakukannya dengan cara ini.

Berikut adalah contoh untuk membandingkan dari fungsi WordPress.

masukkan deskripsi gambar di sini

Versi yang lebih besar untuk dibandingkan: http://i.imgur.com/nTEbV7v.jpg

Saya lebih suka yang di sebelah kanan terutama ketika melihat kode layar penuh, tapi itu pilihan pribadi.

Wyck
sumber
Terima kasih atas jawaban anda! The .spasi masuk akal bagi saya, karena .benar-benar hanya operator biner, seperti +atau -. Pikiran Anda tentang tanda kurung "memeluk" isinya persis mengapa saya mengajukan pertanyaan ini. Perilaku ini, bersama dengan aturan yang bahkan lebih aneh seperti untuk tanda kurung (WP mengatakan untuk menggunakan $foo['bar']dan $foo[ $bar ]) adalah persis mengapa saya menanyakan pertanyaan ini. :)
rinogo