Comments (5)
Спасибо за комментарий, я все больше склоняюсь к тому, что конкретно этот пункт вовсе стоит удалить из рекомендаций. Этот пункт слишком спорен и субъективен. Ваш же пример в двух видах оформления, мне субъективно читать проще с отступами. Физически проще за счет того, что есть 2 колонки, в зависимости от того, что мне надо (переменная/значение) - я читаю правую, или левую колонку. В случае, когда отступов нет - визуально нужно разделять каждую строку. Объективный минус отступов в том, что в коммит попадут помимо изменяемых строк еще и отформатированные, это усложняет code review.
Возможно вы сталкивались с плагинами для phpStorm, которые могут визуально добавлять отступы, при этом не менять исходный код?
$user_access_token = $user_access_token_storage->get();
$i = 1;
$has_promote_articles = false;
$result = [];
$ids = [];
$categories = [];
$user_access_token = $user_access_token_storage->get();
$i = 1;
$has_promote_articles = false;
$result = [];
$ids = [];
$categories = [];
from php-conventions.
Я не автор, но попробую поспорить)
$query = substr($query, 0, strrpos($query, '/')).
($isChild ? '/' : '//').$el;
// потребовалось сделать перенос так как уперлись в 120 символов
Тут плохое оформление - дело десятое, тут код: substr($query, 0, strrpos($query, '/')). ($isChild ? '/' : '//').$el - нечитаемый абсолютно. Отсюда и в 120 упёрлись
А вот тут - частично согласен. Не надо принудительно выравнивать сильно разные строки. Лучше наоборот разделить их пустой строкой, чтобы не слипалось визуально
// плохо
$varName = 'varName';
$secondVariableWithVeryLongNameHere =
'123456790123456790123456790123456790123456790123456790123456790123456790123456790';
// лучше
$varName = 'varName';
$secondVariableWithVeryLongNameHere = '123456790123456790123456790123456790123456790123456790123456790123456790123456790';
from php-conventions.
В принципе можно и дополнить этот пункт комментарием @VladReshet , получится что-то типа такого
$user_access_token = $user_access_token_storage->get();
$has_promote_articles = false;
$result = [];
$categories = [];
$i = 1;
$ids = [];
или такого
$user_access_token = $user_access_token_storage->get();
$has_promote_articles = false;
$i = 1;
$result = [];
$ids = [];
$categories = [];
from php-conventions.
Физически проще за счет того, что есть 2 колонки, в зависимости от того, что мне надо (переменная/значение) - я читаю правую, или левую колонку.
Все верно. Именно поэтому этот способ и придумали и это основной аргумент в пользу использования этого способа форматирования. Но проблема в том, что нам не нужны отдельно названия переменных и не нужны отдельно абстрактные значения. Нам нужны связанные воедино переменные и их значения. Добавление отступов разрывают эту связь и усложняют чтение. Для того, что бы лучше видеть связь приходится ставить курсор на интересующую нас строку, что бы подсветить ее.
Аналогичная проблема есть и в классических таблицах и есть вполне распространенные решения этой проблемы.
from php-conventions.
@peter-gribanov убедили
from php-conventions.
Related Issues (20)
- 3.4. Модификаторы доступа для свойств HOT 19
- 3.5. Именование методов HOT 1
- 3.7. Модификаторы доступа для методов HOT 5
- 4.4. Присвоения в условных операциях HOT 30
- 4.5. Ошибки HOT 4
- 4.13. Магические методы HOT 9
- 7.3. Разделение тест методов HOT 4
- Analyze roistat php-code-conventions
- Добавить оглавление HOT 2
- PhpStorm плагины HOT 1
- Добавить ссылки на принципы программирования
- Добавить настройки для Php Inspections (EA Extended)
- Добавить каталог с примерами
- Добавить шаблон соглашений, для конкретного проекта
- Добавить введение
- Не правильно HOT 1
- рекомендации по архитектуре HOT 21
- psalm vs phpstan vs phan vs (???) HOT 5
- Где взять такое же для js ;-) HOT 1
- Dependency Ingection HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from php-conventions.