Чому код Wordpress настільки "задоволений космосом"?


22

Ядро WP, багато плагінів WP і самі стандарти кодування WP використовують дуже «щедре застосування» Spaceсимволу (не для відступу, а «всередині» паронів і дужок). Це здається унікальним для Wordpress - такий стиль / філософія, схоже, не присутній в інших подібних проектах, PHP чи іншому.

Більш детальну інформацію про цей підхід див. На веб-сайті : https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage

Приклад: foreach ( (array) $foo as $bar ) { ...

Я маю на увазі пробіл після передбачення, після першого (та перед фіналом )(та інші подібні пробіли, показані у "Використання простору" за посиланням вище).

Цей стиль мені здається непотрібним - він вимагає більше вводити текст ((думку) робить візуально складніший аналіз коду. (/ Думка)

Моє бажання - не обговорювати, чи є цей стиль гарною ідеєю чи ні. Швидше, я просто хочу зрозуміти мотиви, чому це рекомендований стиль. Навіть коментатори щодо стандартів кодування WP цікаві:

введіть тут опис зображення

Відповіді на питання М. К. Сафі по суті:

  1. Для читабельності
  2. Статус кво (він же "Це просто так")

Моє міркування просити те, що я особисто не бачу великої користі у прийнятті стандартів кодування WP (щодо "Використання простору") у наших внутрішніх проектах. Однак мені цікаво, якщо я щось пропускаю.

Чи є причини, що випадають за двома перерахованими вище, нібито дійсними чи ні, для того, щоб дотримуватися стилю Word Space "Space Space"?


2
Ви можете робити те, що вам подобається у своїх внутрішніх проектах, якщо ви послідовні. Як бічна примітка, ми використовуємо вкладки, а не пробіли, тому ми, мабуть, вимагаємо менше вводити текст, але це не так важливо, якщо у вас є сучасний IDE, який робить все форматування для вас і може переформатуватися в різні для вас стилі (наприклад, піднесений з пакетами, PHPStorm тощо)
Том Дж. Ноуелл

Дякуємо за Ваш коментар, @TomJNowell! Я думаю, що, можливо, я не вдавав комунікації у своєму "питанні" - я запитую менше про вкладки / пробіли для відступу, а більше про правила, згадані в "Використання простору", на make.wordpress.org/core/handbook/coding-standards/php /… . Вибачте, що я не був більш зрозумілий!
rinogo

5
Це легше читати, коли у вас немає підсвічування синтаксису. Принаймні, тому я використовую цей стиль у внутрішніх проектах. Мені доводиться часто редагувати PHP на звичайній консолі з vi в мінімальній конфігурації.
fuxia

2
FWIW, MediaWiki має дуже схожу стильову конвенцію , і насправді досить суворо виконує її (принаймні в основному). Вони навіть мають сценарій для автоматичного додавання пропущених пробілів. Все, що я можу сказати, - це через деякий час звикати.
Ільмарі Каронен

1
@rinogo Я знаю, коментарі - це просто коментарі, а не відповіді :)
Tom J Nowell

Відповіді:


13

Резонансування

Щодо "білого простору" (незалежно від того, вкладки чи пробіли): це просто особисті переваги, які застрягли в проекті.

Стандарти кодування WP imo - це безлад і їх можна ігнорувати - до тих пір, поки ви не внесете в основу, що є

  • інша історія і
  • там також ігнорується посібник зі стилів.

"[...] він не застосовується заднім числом на більш старий код, оскільки це робить історію svn / git дуже важкою у використанні. Офіційна політика полягає в тому, що новий код повинен слідувати керівництву зі стилю, але якщо ви випадково правильно форматуєте сусідній код тож так і бути, але патчі, які лише форматують код, або виконуючи цей код лише формату, заборонені. "

- @TomJNowell в коментарях

Альтернативи

Вам краще дотримуватися стандартів PSR (а саме: 2) або таких предметів, як стандарти Symfony (або просто ваші власні).

Підвищення продуктивності та інструменти

Ви не отримаєте прибутку від того, щоб мати стандарт кодування (окрім того, щоб мати спільний доступ і меншість, яка його ненавидить, а решта диктує його) або мати більше або менше вкладок чи пробілів. Якщо ви турбуєтесь про зайве місце на диску або, можливо, повільніші програми, ви все одно можете стиснути свій код (див. Проект GitPHPHooks ) під час фіксації. Вигода, яку ви отримаєте, становитиме приблизно максимум 5% від вихідного файлового простору, майже приблизно тому, що стискає / мінімізує синтаксис HTML. Для цього є інструменти мінімізації Node.js, доступні через npm для цього.

Що я особисто вважаю корисним - це PHP Linter та _PHP Mess Detector. Я включив обидва в бібліотеку GitPHPHooks, тому мені не потрібно думати і не хвилюватись її запуском.


Посібник зі стилів не ігнорується для Core, але він не застосовується заднім числом на більш старий код, оскільки це робить історію svn / git дуже важкою у використанні. Офіційна політика полягає в тому, що новий код повинен слідувати керівництву зі стилів, але якщо у вас трапляється правильно форматувати сусідній код, то це нехай буде, але патчі, які лише форматують код, або вводять цей код лише формату, заборонені
Tom J Nowell

@TomJNowell І тому посібник зі стилів робить марним :) У будь-якому разі, будь ласка, подайте правки та додайте це до відповіді. Це примітна інформація.
кайзер

Я думаю, що мені було не дуже ясно в моєму питанні - я маю на увазі менше вкладки та пробіли, а більше - використання простору на make.wordpress.org/core/handbook/coding-standards/php/… . Я відредагую питання, щоб було зрозуміліше.
rinogo

1
@rinogo Я тебе зрозумів вперше, звідси і перший абзац. До речі, я вважаю це і більш читаним.
кайзер

7

Пробіли після крапок є нормальними, наприклад $baz . '-5', цей стиль використовується у багатьох стандартах кодування для операторів ( y + z).

Це робиться для поліпшення читабельності, наприклад, одна з них читабельніше, ніж інша.

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

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

Це стає ще більш очевидним, коли оточений іншим "кодом".

Щодо пробілів навколо дужок, ( 1, 2, 3 )то поняття не маю, мабуть, аргумент також для читабельності.

Це може бути заплутано, оскільки самі стандарти WordPress мають приклади з дужками в коментарях, у яких немає пробілів, а сама база коду плутає з деякими частинами пробіли, а в інших немає (див. Скріншот нижче) навіть у межах однієї функції.

Більшість стандартів PHP насправді робить зворотний виклик для .. круглі дужки повинні обняти їх вміст. Насправді більшість стандартів кодування для інших мов пишуть так: (1, 2, 3)так що це трохи таємниця, чому WP робить це саме так.

Ось приклад для порівняння з функцією WordPress.

введіть тут опис зображення

Більша версія для порівняння: http://i.imgur.com/nTEbV7v.jpg

Я вважаю за краще той, що праворуч, особливо коли я дивлюсь на повний екран коду, але це особисті переваги.


Дякую за вашу відповідь! .Інтервал має сенс для мене, так як .насправді просто бінарний оператор, так само , як +і -. Ваші думки щодо дужок, які "обіймають" їхній зміст, саме тому я задав це питання. Така поведінка, поряд із ще більш дивними правилами, такими як правила для квадратних дужок (WP каже, що використовувати $foo['bar']і $foo[ $bar ]), саме тому я задала це питання. :)
rinogo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.