Code Monkey home page Code Monkey logo

Comments (5)

index0h avatar index0h commented on May 20, 2024

Спасибо за комментарий, я все больше склоняюсь к тому, что конкретно этот пункт вовсе стоит удалить из рекомендаций. Этот пункт слишком спорен и субъективен. Ваш же пример в двух видах оформления, мне субъективно читать проще с отступами. Физически проще за счет того, что есть 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.

VladReshet avatar VladReshet commented on May 20, 2024

Я не автор, но попробую поспорить)

$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.

index0h avatar index0h commented on May 20, 2024

В принципе можно и дополнить этот пункт комментарием @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.

peter-gribanov avatar peter-gribanov commented on May 20, 2024

Физически проще за счет того, что есть 2 колонки, в зависимости от того, что мне надо (переменная/значение) - я читаю правую, или левую колонку.

Все верно. Именно поэтому этот способ и придумали и это основной аргумент в пользу использования этого способа форматирования. Но проблема в том, что нам не нужны отдельно названия переменных и не нужны отдельно абстрактные значения. Нам нужны связанные воедино переменные и их значения. Добавление отступов разрывают эту связь и усложняют чтение. Для того, что бы лучше видеть связь приходится ставить курсор на интересующую нас строку, что бы подсветить ее.

image

Аналогичная проблема есть и в классических таблицах и есть вполне распространенные решения этой проблемы.

image
image
image
image

from php-conventions.

index0h avatar index0h commented on May 20, 2024

@peter-gribanov убедили

from php-conventions.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.