Re: Нет
От: Qbit86 Кипр
Дата: 11.07.16 08:01
Оценка: +13
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>А вы выравниваете код?


В середине строки — никогда.

UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.


Такое искусственное выравнивание требует сопровождения: изменения одной строки нуждается в ручном перевёрстывании всех остальных. Как следствие, это не diff friendly.
Глаза у меня добрые, но рубашка — смирительная!
Re[3]: Ignore whitespaces
От: Qbit86 Кипр
Дата: 11.07.16 08:48
Оценка: +7
Здравствуйте, Don Reba, Вы писали:

Q>>Такое искусственное выравнивание требует сопровождения: изменения одной строки нуждается в ручном перевёрстывании всех остальных. Как следствие, это не diff friendly.

DR>Решается опцией ignore whitespace в диффе.

А зачем их ignore? Их не надо ignore. Кроме того, это не спасёт от конфликтов. Скажем, в такой табличке кто-то в одной строке изменил тип, увеличив его на пару символов; кто-то другой исправил имя в другой строке, уменьшив самую длинную строку. Оба переверстали.

Изменения должны быть максимально локальными. А навязывание выравнивания вводит неявные зависимости между несвязанными строками.
Глаза у меня добрые, но рубашка — смирительная!
Re: А вы выравниваете код?
От: 0x7be СССР  
Дата: 11.07.16 08:00
Оценка: +6
Здравствуйте, UberPsychoSvin, Вы писали:


UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.

Выравнивал до распространения автоформатилок, которые плевать хотели на моё выравнивание
В итоге удобство автоформата в целом перевесило читабельность "табулированного" кода.
Плюс, не все коллеги разделяли мою страстью к выравниванию.
Re[9]: Тот чувак, который юзает таб в 8 пробелов
От: seregaa Ниоткуда http://blogtani.ru
Дата: 11.07.16 23:15
Оценка: +4 :)
Здравствуйте, Qbit86, Вы писали:

S>>Может дофига пустого места — это именно то, что ему нужно?

Q>Нет, дофига пустого места — это настройки по умолчанию: в Google Chrome, Unity 3D, Total Commander, etc, etc, etc.

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

S>>А если это у вас такой таб, что мешает просматривать отформатированный код, то ссзс, предлагаю еще и цвет текста сделать белым по белому.

Q>Видишь ли, для такого таба не надо что-то специально делать. Достаточно просто не найти настройку «ширина табуляции в <pre>» в Google Chrome.
Q>Кстати, где она? Расскажи, как ты убеждаешь ГитХаб отображать тебе исходный код с табами шириной в 4 символа, а не 8, например?

Вот если бы мне это действительно было нужно, я бы не поленился и погуглил. И нашел бы такой способ:
https://github.com/tiimgreen/github-cheat-sheet#adjust-tab-space

Пример отображения с 4 пробелами: https://github.com/jquery/jquery/blob/master/src/core.js?ts=4

Но по мне так для код и с 8 символами выглядит терпимо, что на c#, что на java.
https://github.com/linq2db/linq2db/blob/master/Source/Data/DataConnection.cs
https://github.com/osmdroid/osmdroid/blob/master/osmdroid-android/src/main/java/org/osmdroid/views/MapView.java
Во всяком случае недостаточно плохо, чтобы заставлять авторов менять свои предпочтения.
Особенно с учетом того, что основная работа с кодом происходит не в браузере.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[7]: А вы выравниваете код?
От: CreatorCray  
Дата: 19.07.16 09:27
Оценка: +2 -3
Здравствуйте, Don Reba, Вы писали:

DR>Смысл табов в том, что они могут быть произвольной ширины.


Смысл табов — один широкий пробел с автоматической переменной длиной: с выровненной по сетке шага табуляции правой границей и flexible левой. Который визуально может быть длинный а вставить/удалить/перескочить его можно одним нажатием.
Применяется для выравнивания чего либо по общей границе.

Ни один вменяемый девелопер размер таба в процессе работы не меняет. Он выставляется один раз при конфигурировании environment и больше не трогается. Все проекты точатся под единый размер tab.

DR>>>Фиксировать ширину таба было бы очень странно.

CC>>Вот как раз прописывают размер таба.
DR>Наверное, всякое бывает, но никогда не встречал.

Видимо просто не пересекался с теми, где табами умеют пользоваться правильно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Остроконечники vs. тупоконечники
От: Qbit86 Кипр
Дата: 19.07.16 09:37
Оценка: +1 :))) :)
Здравствуйте, Don Reba, Вы писали:

DR>Наверное, всякое бывает, но никогда не встречал.


Вон же, выше откопали ссылку на гайдлайн из прошлого века. Там не просто используются табы, но ещё и предписывают отображение в 8 знакомест.

Выше пробельщикам вменяли разделение на лагеря двухпробельщиков и четырёхпробельщиков; но никто не мог предположить, что начнётся *рач между гибкими табуляторщиками и жёсткими табуляторщиками :)
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Нет
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 11.07.16 08:39
Оценка: +4
Здравствуйте, Qbit86, Вы писали:

Q>Такое искусственное выравнивание требует сопровождения: изменения одной строки нуждается в ручном перевёрстывании всех остальных. Как следствие, это не diff friendly.


Решается опцией ignore whitespace в диффе.
Ce n'est que pour vous dire ce que je vous dis.
Re[4]: Ignore whitespaces
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 11.07.16 08:55
Оценка: +4
Здравствуйте, Qbit86, Вы писали:

Q>А зачем их ignore? Их не надо ignore. Кроме того, это не спасёт от конфликтов. Скажем, в такой табличке кто-то в одной строке изменил тип, увеличив его на пару символов; кто-то другой исправил имя в другой строке, уменьшив самую длинную строку. Оба переверстали.


Я считаю редкие, легко разрешимые конфликты приемлемой ценой за повышение читаемости кода.
Ce n'est que pour vous dire ce que je vous dis.
Re[2]: Табуляция
От: Qbit86 Кипр
Дата: 11.07.16 08:59
Оценка: +2 -2
Здравствуйте, Sinatr, Вы писали:

S>Вместо пробелов используют символы табуляции.


Даже в начале строки не стоит использовать табуляцию, а уж в середине и подавно. При чтении в IDE, браузере, текстовом просмотрщике табуляция отображается разной ширины. Если табуляция в начале строки, то исходный текст будет всегда выглядеть по-разному, но хотя бы единообразно внутри файла. А если табуляция внутри строки, то вёрстка скорее всего будет сломана напрочь.
Глаза у меня добрые, но рубашка — смирительная!
Re[6]: Табуляция
От: Qbit86 Кипр
Дата: 11.07.16 12:26
Оценка: +4
Здравствуйте, Lexey, Вы писали:

Q>>Что такое «форматирование, для которого некритична ширина таба», и за счёт чего гарантируется его несъезжание?

L>Любые начальные отступы блоков кода. Несъезжание гарантируется тем, что в этих отступах нет ничего, кроме табов.

Я это отдельно оговаривал. Похоже, ты просто не читаешь собощения, лепишь минус по ключевым словам.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: Табуляция
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 11.07.16 18:09
Оценка: +4
Здравствуйте, Qbit86, Вы писали:

L>>Не стоит лепить такое форматирование, для которого критична ширина таба. Тогда и съезжать ничего не будет при изменении его размера.


Q>Что такое «форматирование, для которого некритична ширина таба», и за счёт чего гарантируется его несъезжание?


На практике, это использование табов только для отступов и избежание такого форматирования параметров функций:

Color.FromArgb(red,
               green,
               blue);
Ce n'est que pour vous dire ce que je vous dis.
Re[22]: Both
От: Qbit86 Кипр
Дата: 14.07.16 21:02
Оценка: :))) :)
Здравствуйте, Sinclair, Вы писали:

S>Правильный вариант — это в каждой из строчек одинаковое количество табов в начале, а межстрочное выравнивание добито пробелами.

S>
S>    someTerribleFunction(aaa,               // indent level 1
S>                         bbb,               // indent level 1 + 21 spaces
S>                         ccc,               // indent level 1 + 21 spaces
S>                         ddd);              // indent level 1 + 21 spaces
S>


Глаза у меня добрые, но рубашка — смирительная!
Re[10]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 11.07.16 23:37
Оценка: 3 (1) +1 -1
Здравствуйте, seregaa, Вы писали:

Q>>например?

S>Вот если бы мне это действительно было нужно, я бы не поленился и погуглил. И нашел бы такой способ:

«This does not work on Gists, or raw file views»

S>Ну вы пробельщики и эгоисты. Вместо того, чтобы изучить и настроить под себя свой инструмент, вы хотите насадить свои стандарты всем вокруг.


Олол. Табуляторщикам проще допустить, все вокруг должны настраивать по несколько программ на всех своих рабочих компах, просто чтобы три с половиной табуляторщика наслаждались своей табуляцией. Невзирая на гайдлайны и рекомендации.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: А вы выравниваете код?
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 11.07.16 08:46
Оценка: +3
Здравствуйте, Sinatr, Вы писали:

S>Вместо пробелов используют символы табуляции.


Табуляция только для отступов. Иначе всё поедет при изменении ширины таба.
Ce n'est que pour vous dire ce que je vous dis.
Re[4]: А вы выравниваете код?
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 19.07.16 08:40
Оценка: +2 :)
Здравствуйте, CreatorCray, Вы писали:

CC>А кто его когда меняет в здравом рассудке. "Приказои по части" АКА Coding guidelines ставится фиксированная величина, обычно 3-4 пробела и всё. Все у кого иначе ССЗБ и грызут болт.


В гайдлайне могут быть прописаны отступы пробелами фиксированной ширины, либо табами произвольной. Фиксировать ширину таба было бы очень странно.
Ce n'est que pour vous dire ce que je vous dis.
Re: А вы выравниваете код?
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 11.07.16 08:36
Оценка: 3 (2)
Да, плагином Align в Виме.
Ce n'est que pour vous dire ce que je vous dis.
Re[14]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 10:59
Оценка: 3 (1) +1
Здравствуйте, ·, Вы писали:

·>С четырмя пробелами соглашаются далеко не все.


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

·>Иметь ширину 4 пробела в глубоковложенных форматах типа html или xml — многовато, желательно один или два.


Прекрасно, когда XML свёрстан в два прообела, ты увидишь именно их, никаких проблем. А если он свёрстан с табами, то в нотпаде ты увидишь то, как настроена табуляция была в последний раз. В IDE ещё можно настраивать ширины табов по-разному для разных типов файлов. А во многих других просмотрщиках текста — нельзя. XML с отступами шириной 8 символов, Карл!

·>сразу после того, как пробельщики побеждают табберов


Ещё раз: использование табов объективно вызывает у людей проблемы, с просмотром и редактированием. На что табберы говорят: ваши проблемы, ставьте себе аддоны и не используйте богомерзкую Unity 3D. Да, для нас это становится проблемой. «Считай что код написан восьмипробельщиком» — спасибо за заботу о читателе, бро!
Глаза у меня добрые, но рубашка — смирительная!
Re: А вы выравниваете код?
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 19.07.16 08:08
Оценка: 3 (1) :)
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.

Только в сезон обострения.
Sic luceat lux!
Re[21]: Тот чувак, который юзает таб в 8 пробелов
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.07.16 10:04
Оценка: 2 (1) +1
Здравствуйте, netch80, Вы писали:
N>Если нужно несколько сходных записей одна под другой, и удобно сделать их на одном отступе, разрешать ли такой отступ для первой? Например: (во всех примерах 4 пробела за таб)

N>Какой выберешь и почему? Как докажешь свой выбор соседу по комнате?

Я правильно понял, что во всех примерах строчки-продолжения отбиты табами? Это — наркомания, которую надо лечить лоботомией.
Правильный вариант — это в каждой из строчек одинаковое количество табов в начале, а межстрочное выравнивание добито пробелами.
Потому что табы — это уровень nesting-а кода, который тут везде одинаков:
    someTerribleFunction(aaa,               // indent level 1
                         bbb,               // indent level 1 + 21 spaces
                         ccc,               // indent level 1 + 21 spaces
                         ddd);              // indent level 1 + 21 spaces



Единственный вариант с использованием табов — это когда блок параметров indent-ится целиком:
    someTerribleFunction(  // indent level 1
        aaa,               // indent level 2
        bbb,               // indent level 2
        ccc,               // indent level 2
        ddd                // indent level 2
    );                     // indent level 1

Он не нравится лично мне тем, что переход между "короткий список аргументов" и "длинный список аргументов" слишком резкий:
    someNiceFunction(aaa); // так?
    someNiceFunction(      // или так?
        aaa,               
    );
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[22]: Тот чувак, который юзает таб в 8 пробелов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.07.16 04:53
Оценка: 1 (1) +1
Здравствуйте, Don Reba, Вы писали:

DR>Здравствуйте, netch80, Вы писали:


N>>Какой выберешь и почему?


DR>
DR>    someTerribleFunction
DR>        ( aaa
DR>        , bbb
DR>        , ccc
DR>        , ddd
DR>        );
DR>

DR>Не зависит от ширины таба и наглядно показывает структуру кода.

И самый ужасный для огромной доли пишущих.
UPD: ещё и требующих настолько много усилий для создания всего этого форматирования, что будешь послан нафиг всеми, кто (справедливо) считает, что форматирование должно быть как можно проще, в идеале — само выполняться без тебя по настроенным правилам. Автомат же для подобного явно не будут писать
The God is real, unless declared integer.
Отредактировано 13.07.2016 4:55 netch80 . Предыдущая версия .
Re[2]: А вы выравниваете код?
От: UberPsychoSvin  
Дата: 11.07.16 11:02
Оценка: +1 -1
Здравствуйте, Sinatr, Вы писали:
S>P.S.: на StackOverflow такие вопросы оффтоп, т.к. ну реально — opinion based ведь.
Это объективная вещь.

В +ах.
1. Чуть лучше читается.

В -ах.
1. Добавление одной строчки в коммитах может затрагивать целый блок кода, за счёт переформатирования.
2. Дополнительные телодвижения для форматирования.

Минусов больше чем плюсов — значит в рабочих проектах не надо этой фигнёй страдать.
А во всяких одноразовых скриптах можно и выровнять, что бы лучше читались, пока пишутся.
Отредактировано 11.07.2016 11:02 UberPsychoSvin . Предыдущая версия .
Re[6]: Табуляция
От: mDmitriy Россия  
Дата: 11.07.16 14:47
Оценка: +2
Здравствуйте, Lexey, Вы писали:
L>Любые начальные отступы блоков кода. Несъезжание гарантируется тем, что в этих отступах нет ничего, кроме табов.
например, просмотр в редакторе с табом по умолчанию 8 не гарантирует несъезжание за пределы экрана
зато точно покажет немеряно пустого места
Re[7]: Табуляция
От: seregaa Ниоткуда http://blogtani.ru
Дата: 11.07.16 17:33
Оценка: +1 :)
Здравствуйте, mDmitriy, Вы писали:

D>например, просмотр в редакторе с табом по умолчанию 8 не гарантирует несъезжание за пределы экрана

D>зато точно покажет немеряно пустого места

А зачем вы так переживаете за того чувака, который юзает таб в 8 пробелов? Может дофига пустого места — это именно то, что ему нужно?

А если это у вас такой таб, что мешает просматривать отформатированный код, то ссзс, предлагаю еще и цвет текста сделать белым по белому.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re: А вы выравниваете код?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 12.07.16 07:20
Оценка: +2
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>-- ВЫРОВНЕННАЯ ВЕРСИЯ.

UPS>CREATE TABLE DocStream (
UPS> Id BIGINT NOT NULL,
UPS> MD5 CHAR(32) NULL,
UPS> SHA1 CHAR(40) NULL,
UPS> Status INT NOT NULL
UPS>);

UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.


Есть местами. BSD'шный style(9) явно такое рекомендует:

     When declaring variables in structures, declare them sorted by use, then
     by size (largest to smallest), and then in alphabetical order.  The first
     category normally does not apply, but there are exceptions.  Each one
     gets its own line.  Try to make the structure readable by aligning the
     member names using either one or two tabs depending upon your judgment.
     You should use one tab only if it suffices to align at least 90% of the
     member names.  Names following extremely long types should be separated
     by a single space.

     struct foo {
             struct foo      *next;          /* List of active foo. */
             struct mumble   amumble;        /* Comment for mumble. */
             int             bar;            /* Try to align the comments. */
             struct verylongtypename *baz;   /* Won't fit in 2 tabs. */
     };
     struct foo *foohead;                    /* Head of global foo list. */
(подчёркивание — моё)

Тут, правда, явно требуют табы. Не влезая в уже состоявшуюся тут дискуссию, замечу, что никто не мешает заменить это на выравнивание пробелами по позициям, соответствующим обычным табуляциям.

Хуже то, что большинство сейчас ориентируется на автоформатирование в IDE, а в нём я такое ещё не видел ни разу. Вообще, это автоформатирование очень часто слишком тупое.
The God is real, unless declared integer.
style indentation
Re[9]: Табуляция
От: Lexey Россия  
Дата: 12.07.16 16:38
Оценка: +2
Здравствуйте, mDmitriy, Вы писали:

D>ну, может вам и нравится подстраивать свой код под сторонних табуляторщиков... мне вот нет


Мне, как раз, незачем его подстраивать. Ибо ни разу не видел реальной проблемы с шириной настоящего таба. А вот кривое форматирование, которое получаются из-за разной ширины заменяемого пробелами таба у разных людей, работающих с кодом, видел не раз.
"Будь достоин победы" (c) 8th Wizard's rule.
Отредактировано 12.07.2016 16:40 Lexey . Предыдущая версия .
Re[26]: Скайп
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.07.16 12:15
Оценка: +1 -1
Здравствуйте, ·, Вы писали:
·>А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?
Я тем временем смеюсь с темы разговора. Вы вообще пробовали код в Скайпе отправлять? В контексте замены комментариев смайликами всерьёз рассуждать о важности табов или пробелов может только шизофреник.
На всякий случай напомню, что в скайпе вообще нельзя сделать ширину разговора больше захардкоженной производителем. ЛЮБОЙ код превращается в скайпе в нечитаемое месиво.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Tabs versus Spaces
От: Evgeny.Panasyuk Россия  
Дата: 19.09.16 23:04
Оценка: :))
https://www.youtube.com/watch?v=SsoOG6ZeyUI
Re[27]: Скайп
От: Evgeny.Panasyuk Россия  
Дата: 15.07.16 12:22
Оценка: 70 (1)
Здравствуйте, Sinclair, Вы писали:

S>·>А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?

S>Я тем временем смеюсь с темы разговора. Вы вообще пробовали код в Скайпе отправлять? В контексте замены комментариев смайликами всерьёз рассуждать о важности табов или пробелов может только шизофреник.

Добавь в начало сообщения то что в кавычках "!! ", потом код — там и смайлки не подставляются, и шрифт моноширинный.

S>На всякий случай напомню, что в скайпе вообще нельзя сделать ширину разговора больше захардкоженной производителем.


Ширина разговора меняется мышкой, за край области "Type a message here".

S>ЛЮБОЙ код превращается в скайпе в нечитаемое месиво.


Ты просто не умеешь его готовить.
Re[8]: Табуляция
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 11.07.16 21:31
Оценка: 5 (1)
Здравствуйте, seregaa, Вы писали:

S>А зачем вы так переживаете за того чувака, который юзает таб в 8 пробелов?

S>А если это у вас такой таб, что мешает просматривать отформатированный код, то ссзс

Это размер таба по умолчанию. Используется многими инструментами, которые, зачастую, нет возможности настроить или настраиваются они исключительно ректально. Например, всякие веб-приложения для просмотра исходного кода, diff-merge утилиты, консольные утилиты и пр.

Да, большая часть из них так или иначе настраивается. Но частенько с косяками. Например, WinMerge не может иметь разную величину табов для разных типов файлов, а где настраивать ширину таба в интерфейсе github'а я что-то сходу не нашёл.
С уважением, Artem Korneev.
Re[17]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 12.07.16 12:10
Оценка: 5 (1)
Здравствуйте, Qbit86, Вы писали:

Q>·>Сишарпом вселенная не ограничивается.

Q>Я приводил ссылки также на некоторые гайды по стилю C++ и Питон. Конечно, они расходятся во многих аспектах с рекомендациями для C#, единогласия нет. Только в отношении неиспользования табов они единодушны, это о чём-то говорит.
Это говорит лишь о том, что ты аккуратно подбираешь удобные и отбрасываешь неудобные факты для доказательства своей т.з.
Вот, скажем https://www.kernel.org/doc/Documentation/CodingStyle — ширина 8 символов.

Q>·>Почему ты выбираешь только удобные тебе ситуации? Представь, что XML свёрстан с восемью пробелами.

Q>Потому что исхожу из своего опыта, в котором количество встреченных XML-документов, свёрстанных с 8 пробелами, равно нулю.
Т.е. опять confirmation bias вместо разумных доводов.

Q>·>Поставь свои любимые четыре в этих многих.

Q>Не любой софт позволяет настраивать ширину отображаемой табуляции.
Можно примеры? Особенно интересно услышать в свете confirmation bias — чем ты регулярно пользуешься лично что не позволяет настраивать размеры табов?

Q>·>И нет проблемы, будешь везде видеть свои любимые четыре пробела.

Q>Я не хочу везде видеть четыре пробела. В XML иногда удобно два, в C# всегда четыре.
Не понял, это вообще-то говорит в пользу табов. Это именно табы позволят видеть столько пробелов сколько хочешь, пробелы — нет. Со сколькими пробелами XML набран — со столькими ты и будешь видеть. Если человек набирал XML на 26" мониторе с четырмя пробелами, а тебе с этим же кодом надо повозиться на 13" ноуте — что делать?

Q>·>Что такое Unity 3D я не знаю, но вот вроде тоже что-то есть: http://docs.unity3d.com/ScriptReference/GUIText-tabSize.html

Q>Это не о том вообще.
А о чём? Можно ссылку о том, что в некой Unity 3D невозможно поменять размер таба?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[2]: А вы выравниваете код?
От: Evgeny.Panasyuk Россия  
Дата: 13.07.16 20:36
Оценка: 5 (1)
Здравствуйте, Osaka, Вы писали:

O>21й век на дворе, а до сих пор никто не приделал в редактор исходников поддержку вордовых таблиц. Вместо этого всё какие-то птичьи языки никому не нужные изобретают, и иконки обесцвечивают.


В Emacs есть редактор таблиц. И даже есть электронные таблицы в Org-Mode (заметки, Outliner, Reproducible Research а-ля Ipython/Jupyter, Literate Programming).
Re[8]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 11.07.16 21:01
Оценка: 3 (1)
Здравствуйте, seregaa, Вы писали:

S>Может дофига пустого места — это именно то, что ему нужно?


Нет, дофига пустого места — это настройки по умолчанию: в Google Chrome, Unity 3D, Total Commander, etc, etc, etc.

S>А если это у вас такой таб, что мешает просматривать отформатированный код, то ссзс, предлагаю еще и цвет текста сделать белым по белому.


Видишь ли, для такого таба не надо что-то специально делать. Достаточно просто не найти настройку «ширина табуляции в <pre>» в Google Chrome.

Кстати, где она? Расскажи, как ты убеждаешь ГитХаб отображать тебе исходный код с табами шириной в 4 символа, а не 8, например?
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: Нет
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 19.07.16 11:36
Оценка: 2 (1)
Здравствуйте, LuciferSaratov, Вы писали:

LS>а как оно работает? изменение количества пробелов внутри строкового литерала оно тоже проигнорирует?


--ignore-space-change
Ignore changes in amount of whitespace. This ignores whitespace at line end, and considers all other sequences of one or more whitespace characters to be equivalent.


Видимо, да.
Ce n'est que pour vous dire ce que je vous dis.
Re[10]: Табуляция
От: mDmitriy Россия  
Дата: 12.07.16 16:47
Оценка: 1 (1)
Здравствуйте, ·, Вы писали:

·>Здравствуйте, mDmitriy, Вы писали:


L>>>Это не съезжание форматирования. Это несоответствие максимальной длины строки кода размеру окна редактора. Если тебе критичен просмотр с таким размером таба в маленьком окне, то разбивай код на более короткие строки.

D>>ну, может вам и нравится подстраивать свой код под сторонних табуляторщиков... мне вот нет
·>Ты не читаешь что-ли на что отвечаешь? Если не критичен — уменьши размер таба при просмотре. В этом случае подстраивать код ты не должен. А если критичен — то подстраивать ты будешь код и с пробелами. В этом и профит.
найти код с 8-ю пробелами отступа — задача не из простых...
а получить тот же отступ на табе — легче легкого
вместе с геморроем "где то место, уменьшающее таб"
код с пробелами подстраивать не надо — больше 4-х вменяемые люди обычно не используют
Re[4]: А вы выравниваете код?
От: Gattaka Россия  
Дата: 12.07.16 17:50
Оценка: 1 (1)
Здравствуйте, Don Reba, Вы писали:

DR>Я чаще работаю в Виме, чем в Студии. А Решарпер умеет делать табличное форматирование?


Не знаю, я бы запретил...
А вы выравниваете код?
От: UberPsychoSvin  
Дата: 11.07.16 07:57
Оценка: +1
-- НЕ ВЫРОВНЕННАЯ ВЕРСИЯ.
CREATE TABLE DocStream (
    Id BIGINT NOT NULL,
    MD5 CHAR(32) NULL,
    SHA1 CHAR(40) NULL,
    Status INT NOT NULL
);

-- ВЫРОВНЕННАЯ ВЕРСИЯ.
CREATE TABLE DocStream (
    Id     BIGINT   NOT NULL,
    MD5    CHAR(32) NULL,
    SHA1   CHAR(40) NULL,
    Status INT      NOT NULL
);


Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.
Re[2]: А вы выравниваете код?
От: UberPsychoSvin  
Дата: 11.07.16 08:32
Оценка: :)
Здравствуйте, Gattaka, Вы писали:
G>Вобще то это код на SQL, а вы находитесь в форуме по .Net .
А и правда, не обратил внимания. У меня постоянно так, начинаю писать на .NET а заканчиваю на SQL.

Здравствуйте, Qbit86, Вы писали:
Q>Такое искусственное выравнивание требует сопровождения: изменения одной строки нуждается в ручном перевёрстывании всех остальных. Как следствие, это не diff friendly.
Вот! Теперь я понял, что меня в этом выравнивании смущало.
Re[5]: Читаемость
От: Qbit86 Кипр
Дата: 11.07.16 09:03
Оценка: -1
Здравствуйте, Don Reba, Вы писали:

Q>>А зачем их ignore? Их не надо ignore. Кроме того, это не спасёт от конфликтов. Скажем, в такой табличке кто-то в одной строке изменил тип, увеличив его на пару символов; кто-то другой исправил имя в другой строке, уменьшив самую длинную строку. Оба переверстали.


DR>Я считаю редкие, легко разрешимые конфликты приемлемой ценой за повышение читаемости кода.


Это не колонка с цифрами, выравненными по разрядам. Тут сканирование чаще происходит построчно. Искусственное выравнивание не очень тут улучшает читаемость. Возможно даже ухудшает, так как внутри строки появляются нерегулярные разрывы.
Глаза у меня добрые, но рубашка — смирительная!
Re[3]: Табуляция
От: Lexey Россия  
Дата: 11.07.16 09:57
Оценка: -1
Здравствуйте, Qbit86, Вы писали:

Q>Даже в начале строки не стоит использовать табуляцию, а уж в середине и подавно. При чтении в IDE, браузере, текстовом просмотрщике табуляция отображается разной ширины.


Не стоит лепить такое форматирование, для которого критична ширина таба. Тогда и съезжать ничего не будет при изменении его размера.
"Будь достоин победы" (c) 8th Wizard's rule.
Re: А вы выравниваете код?
От: Икс Россия  
Дата: 11.07.16 10:52
Оценка: +1
Здравствуйте, UberPsychoSvin, Вы писали:

Специально — нет, вижуал асист всё равно всё ломает, но иногда получается как побочный продукт работы в режиме Column Mode над кучей строк

Да, читается лучше, но оно не стоит чтобы этим специально заморачиваться.
Re: А вы выравниваете код?
От: mDmitriy Россия  
Дата: 11.07.16 14:49
Оценка: +1
Здравствуйте, UberPsychoSvin, Вы писали:
UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.
невыравненный код вообще не имеет права на существование...
Re[4]: Табуляция
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 12.07.16 07:22
Оценка: +1
Здравствуйте, Lexey, Вы писали:

L>Здравствуйте, Qbit86, Вы писали:


Q>>Даже в начале строки не стоит использовать табуляцию, а уж в середине и подавно. При чтении в IDE, браузере, текстовом просмотрщике табуляция отображается разной ширины.


L>Не стоит лепить такое форматирование, для которого критична ширина таба. Тогда и съезжать ничего не будет при изменении его размера.


Реально на сейчас табуляция в коде просто вредна — экономия ничтожна, а проблемы из-за разной ширины значительно существеннее.
The God is real, unless declared integer.
Re[12]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 09:20
Оценка: +1
Здравствуйте, seregaa, Вы писали:

Q>>...просто чтобы три с половиной табуляторщика наслаждались своей табуляцией. Невзирая на гайдлайны и рекомендации.

S>Посмотри на количество проголосовавших за табы и пробелы http://stackoverflow.com/research/developer-survey-2015#tech-tabsspaces

Прекрасная ссылка; по ней говорится: «Upon closer examination of the data, a trend emerges: Developers increasingly prefer spaces as they gain experience. Stack Overflow reputation correlates with a preference for spaces, too: users who have 10,000 rep or more prefer spaces to tabs at a ratio of 3 to 1.»
Глаза у меня добрые, но рубашка — смирительная!
Re[9]: Табуляция
От: Lexey Россия  
Дата: 12.07.16 10:06
Оценка: +1
Здравствуйте, Qbit86, Вы писали:

Q>Microsoft, Google и PEP единодушны в этом вопросе: табуляцию использовать не нужно.


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

Я много использовал пробелы там, где это было оговорено внутренним стандартом, но, при наличии выбора, предпочитаю табы.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[9]: Табуляция
От: · Великобритания  
Дата: 12.07.16 16:16
Оценка: +1
Здравствуйте, mDmitriy, Вы писали:

L>>Это не съезжание форматирования. Это несоответствие максимальной длины строки кода размеру окна редактора. Если тебе критичен просмотр с таким размером таба в маленьком окне, то разбивай код на более короткие строки.

D>ну, может вам и нравится подстраивать свой код под сторонних табуляторщиков... мне вот нет
Ты не читаешь что-ли на что отвечаешь? Если не критичен — уменьши размер таба при просмотре. В этом случае подстраивать код ты не должен. А если критичен — то подстраивать ты будешь код и с пробелами. В этом и профит.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 12.07.2016 16:21 · . Предыдущая версия .
Re[21]: Тот чувак, который юзает таб в 8 пробелов
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 13.07.16 04:50
Оценка: +1
Здравствуйте, netch80, Вы писали:

N>Какой выберешь и почему?


    someTerribleFunction
        ( aaa
        , bbb
        , ccc
        , ddd
        );

Не зависит от ширины таба и наглядно показывает структуру кода. Или более привычно:

    someTerribleFunction(
        aaa,
        bbb,
        ccc,
        ddd);
Ce n'est que pour vous dire ce que je vous dis.
Отредактировано 13.07.2016 4:55 Don Reba . Предыдущая версия . Еще …
Отредактировано 13.07.2016 4:53 Don Reba . Предыдущая версия .
Re[23]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 14.07.16 10:06
Оценка: +1
Здравствуйте, netch80, Вы писали:

N>>>Какой отступ на продолжения многострочного оператора? 0, 1, 2 таба? Я видел все эти варианты.

N>·>Ты с темы не слезай.
N>Это я, оказывается, слезаю с темы?
Ты хочешь сказать, что я слезаю? В каком месте?

N>·> Ты расскажи вначале решение этой проблемы в вселенной с пробелами.

N>Во-первых, не указывай другим, что делать, и они не скажут, куда тебе пойти.
N>Я потому и не хочу зацикливаться на одном твоём вопросе
Я решаю один вопрос, а ты вносишь другие. Притом они вообще никак не связаны с изначальным. Как делать _отступы_ (не выравнивание!) в многострочных выражениях от табов/пробелов никак не зависит.

N>именно потому, что считаю его малосущественным по сравнению со многими другими в оформлении кода.

Это и называется слезать с темы. Вопросы оформления кода так же малосущественны по сравнению с многими другими, которые могут возникнуть в жизни программиста. Например, как вылечить рак.

N>Во-вторых, если уж ты хочешь в первую очередь прямого ответа на это — я просто не считаю, что это проблема. В моих краях это обычно решается тем, что нажатие Tab вставляет нужное количество пробелов,

Ты мне точно скажи какое количество пробелов нужное? И объясни почему все не используют именно это количество.

N>а нажатие BS на пустом месте его съедает, и этого достаточно, чтобы поддерживать согласованный вариант. Я просто не вижу глубокого смысла в желании иметь какой-то плавный ползунок, которым регулировать эти отступы, расширяя и сжимая текст; но если кому-то это нужно — это реализуется и на пробелах. Да, пожалуй, ещё нельзя сказать "элементарно реализуется" — проблема в продолжениях операторов.

Не реализуется это на пробелах. Как мне такое реализовать на пробелах, если в окне редактора я хочу видеть четыре пробела, т.к. удобнее читать, а в окне мержа с тремя столбиками мне нужно 1 или два пробела, т.к. иначе в ширину экрана не помещается?

N>И вот тут как раз видно, что это ты "слезаеш с темы" — ты, а не я.

N>Потому что мои примеры ты поскипал и не ответил. А между тем примеры 5 и 6
(5) и (6) вообще страх какой-то. Я думал ты по приколу их предложил. Они кстати разъедутся и при простом переименовании функции например. Если тебе и правда интересно моё мнение, то я предпочту (2) или может быть (3), а (1) может сгодиться если первый параметр функции какой-то особый.

N>как раз на тему того, как испортится выравнивание при табуляциях, меняющих длину.

Опять двадцать пять. Не надо путать выравниваение (alignment) и отступ (indent).

N>·>Я не утверждал, что табы решают все проблемы, рак, думаю, они не вылечат. Они решают проблему размера отступов.

N>Ещё и ёрничаешь на ровном месте.
Не люблю тупую софистику.

N>·>Так себе поддерживают, ибо задача не имеет простого алгоритмического решения. Никогда не попадались файлы с разным количеством пробелов в отступе в разных строках?

N>В смысле — часть табами, часть пробелами? Попадались. И что?
Нет, часть двумя пробелами, часть четырьмя, а местами случайно вставлено три.

N>Там, где отступы принципиально важны для интерпретации (как в Python или Makefile), это вызывает просто ошибку компиляции. Там, где не важны (C с компанией), там нет проблем для машины; а для человека — один лишний раз дочистить.

N>Выдержка единого средства (табы или пробелы) тут важнее, чем выбор между ними; но при выборе уже между ними я предпочту пробелы из-за заведомо меньшей конфликтности для таких ситуаций.
Так с пробелами возникнет конфликт с их количеством. Поэтому я выбираю табы.

N>И тут же — я участвовал в разработке софтин, в стиле которых было принято tabstop=8, но shiftwidth=4. Отступ кратный 8 делался только табами, а кратный 4, но не 8 — табы плюс 4 пробела. Между прочим, такой стиль ну очень распространён. И ты его своими "плавными" регулированиями сломаешь на корню

Жуть конечно. Но если ставить ширину таба больше 4, то проблем не будет.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[21]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 18.07.16 07:45
Оценка: +1
Здравствуйте, Artem Korneev, Вы писали:

AK>Но при этом разделителем остался таб, т.е. фактически там было:

AK>
AK>SomeClass.SomeMethod(Argument1,\tArgument2);
AK>

Таб тут причём? Та же грустная история произошла бы, если бы был не таб, а два пробела. Мораль одна: пишите юнит-тесты. Без них за рефакторинг лучше не браться, особенно если используется примитивная IDE.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Отредактировано 18.07.2016 7:52 · . Предыдущая версия .
Re: А вы выравниваете код?
От: alexsmirnoff  
Дата: 18.07.16 20:10
Оценка: +1
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>
UPS>-- ВЫРОВНЕННАЯ ВЕРСИЯ.
UPS>CREATE TABLE DocStream (
UPS>    Id     BIGINT   NOT NULL,
UPS>    MD5    CHAR(32) NULL,
UPS>    SHA1   CHAR(40) NULL,
UPS>    Status INT      NOT NULL
UPS>);
UPS>


UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.


Под настроение...
Re[8]: Остроконечники vs. тупоконечники
От: CreatorCray  
Дата: 19.07.16 23:21
Оценка: :)
Здравствуйте, Qbit86, Вы писали:

Q>но никто не мог предположить, что начнётся *рач между гибкими табуляторщиками и жёсткими табуляторщиками


People are awesome!
Креативность в темах для срача прёт фонтаном!

"Больше ада! Больше угара! Внесите чучело козла!" (С) Belnetmon
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: А вы выравниваете код?
От: Evgeny.Panasyuk Россия  
Дата: 19.07.16 23:45
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

EP>>>>А зачем тогда вообще использовать табы в таком случае, если при изменении отображаемой ширины всё поедет?

CC>>>Для начала объясните зачем её менять, эту ширину?
EP>>Кому-то/где-то удобнее 4, где-то 8 и т.п. В Vim например по-умолчанию 8.
CC>Есть проект и жёстко заданные guidelines для проекта. Вопрос "а мне так удобнее" не стоит в принципе.

Речь о том почему в эти жёстко заданные guidelines попала ширина отображения таба, точнее насколько это вообще оправданно, и стоит ли применять в других проектах.

EP>>Вот выше Skype обсуждали — в нём поедет в том числе.

CC>Затачиваться на смотрение кода скайпом — странный use case.

Это лишь один из примеров.
Re: А вы выравниваете код?
От: CreatorCray  
Дата: 20.07.16 00:32
Оценка: :)
Здравствуйте, UberPsychoSvin, Вы писали:



... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: А вы выравниваете код?
От: trop Россия  
Дата: 20.07.16 11:01
Оценка: +1
Здравствуйте, UberPsychoSvin, Вы писали:
UPS>
UPS>-- ВЫРОВНЕННАЯ ВЕРСИЯ.
UPS>CREATE TABLE DocStream (
UPS>    Id     BIGINT   NOT NULL,
UPS>    MD5    CHAR(32) NULL,
UPS>    SHA1   CHAR(40) NULL,
UPS>    Status INT      NOT NULL
UPS>);
UPS>

UPS>Вторая вроде бы лучше читается

imho
create table docstream
( id      bigint not null
          ...
, md5     char(32)
, sha1    char(32)
, status  int not null
);
-
Отредактировано 20.07.2016 11:04 trop . Предыдущая версия .
Re[2]: А вы выравниваете код?
От: Философ Ад http://vk.com/id10256428
Дата: 20.07.16 19:00
Оценка: +1
Здравствуйте, vsb, Вы писали:

vsb>....Больше ничего ни в каких языках так не выравниваю.


Это ты ни с чем подобным не сталкивался просто.

#define F(x,y,z) (z ^ (x & (y ^ z)))

    P( A, B, C, D,  0,  7, 0xD76AA478 );
    P( D, A, B, C,  1, 12, 0xE8C7B756 );
    P( C, D, A, B,  2, 17, 0x242070DB );
    P( B, C, D, A,  3, 22, 0xC1BDCEEE );
    P( A, B, C, D,  4,  7, 0xF57C0FAF );
    P( D, A, B, C,  5, 12, 0x4787C62A );
    P( C, D, A, B,  6, 17, 0xA8304613 );
    P( B, C, D, A,  7, 22, 0xFD469501 );
    P( A, B, C, D,  8,  7, 0x698098D8 );
    P( D, A, B, C,  9, 12, 0x8B44F7AF );
    P( C, D, A, B, 10, 17, 0xFFFF5BB1 );
    P( B, C, D, A, 11, 22, 0x895CD7BE );
    P( A, B, C, D, 12,  7, 0x6B901122 );
    P( D, A, B, C, 13, 12, 0xFD987193 );
    P( C, D, A, B, 14, 17, 0xA679438E );
    P( B, C, D, A, 15, 22, 0x49B40821 );

#undef F

#define F(x,y,z) (y ^ (z & (x ^ y)))

    P( A, B, C, D,  1,  5, 0xF61E2562 );
    P( D, A, B, C,  6,  9, 0xC040B340 );
    P( C, D, A, B, 11, 14, 0x265E5A51 );
    P( B, C, D, A,  0, 20, 0xE9B6C7AA );
    P( A, B, C, D,  5,  5, 0xD62F105D );
    P( D, A, B, C, 10,  9, 0x02441453 );
    P( C, D, A, B, 15, 14, 0xD8A1E681 );
    P( B, C, D, A,  4, 20, 0xE7D3FBC8 );
    P( A, B, C, D,  9,  5, 0x21E1CDE6 );
    P( D, A, B, C, 14,  9, 0xC33707D6 );
    P( C, D, A, B,  3, 14, 0xF4D50D87 );
    P( B, C, D, A,  8, 20, 0x455A14ED );
    P( A, B, C, D, 13,  5, 0xA9E3E905 );
    P( D, A, B, C,  2,  9, 0xFCEFA3F8 );
    P( C, D, A, B,  7, 14, 0x676F02D9 );
    P( B, C, D, A, 12, 20, 0x8D2A4C8A );

#undef F
Всё сказанное выше — личное мнение, если не указано обратное.
Re[13]: Тот чувак, который юзает таб в 8 пробелов
От: Lexey Россия  
Дата: 31.08.16 16:08
Оценка: :)
Здравствуйте, Qbit86, Вы писали:

Q>Google: «We use spaces for indentation. Do not use tabs in your code. You should set your editor to emit spaces when you hit the tab key.»


Решил тут на Go посмотреть, и вот что прочитал:

Some formatting details remain. Very briefly:

Indentation
We use tabs for indentation and gofmt emits them by default. Use spaces only if you must.


Так что, не все с Гуглом так однозначно.
"Будь достоин победы" (c) 8th Wizard's rule.
Re: А вы выравниваете код?
От: Gattaka Россия  
Дата: 11.07.16 08:00
Оценка:
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>
UPS>-- НЕ ВЫРОВНЕННАЯ ВЕРСИЯ.
UPS>CREATE TABLE DocStream (
UPS>    Id BIGINT NOT NULL,
UPS>    MD5 CHAR(32) NULL,
UPS>    SHA1 CHAR(40) NULL,
UPS>    Status INT NOT NULL
UPS>);
UPS>

UPS>
UPS>-- ВЫРОВНЕННАЯ ВЕРСИЯ.
UPS>CREATE TABLE DocStream (
UPS>    Id     BIGINT   NOT NULL,
UPS>    MD5    CHAR(32) NULL,
UPS>    SHA1   CHAR(40) NULL,
UPS>    Status INT      NOT NULL
UPS>);
UPS>


UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.

Вобще то это код на SQL, а вы находитесь в форуме по .Net . Что касается выравнивания — есть в R# такая опция как Code Clean. Один раз настраиваете и при нажатии одной кнопки весь файл у вас сам выравнивается
Re: А вы выравниваете код?
От: Sinatr Германия  
Дата: 11.07.16 08:42
Оценка:
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.


В C# приходится иногда выравнивать ручками то, что автоформат (ctr+k/ctr+d) не распознал. К примеру инициализаторы вложенных структур.

Вы правы, второй вариант читается лучше. Если таких обьявлений будет несколько страниц, то читать будет проще за счет дополнительных телодвижений при написании (добавили новое поле с длинным именем — нужно переформатировать). Вместо пробелов используют символы табуляции. На первых порах программирования в C# у меня была манера форматировать после-строчные комментарии (//..дофига пробелов..комментарий), вылечился, теперь по большому счету пофиг, комментарии читаются легко из-за характерного стиля в VS.

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

P.S.: на StackOverflow такие вопросы оффтоп, т.к. ну реально — opinion based ведь.
---
ПроГLамеры объединяйтесь..
Re[4]: Табуляция
От: Qbit86 Кипр
Дата: 11.07.16 10:41
Оценка:
Здравствуйте, Lexey, Вы писали:

Q>>Даже в начале строки не стоит использовать табуляцию, а уж в середине и подавно. При чтении в IDE, браузере, текстовом просмотрщике табуляция отображается разной ширины.

L>Не стоит лепить такое форматирование, для которого критична ширина таба. Тогда и съезжать ничего не будет при изменении его размера.

Что такое «форматирование, для которого некритична ширина таба», и за счёт чего гарантируется его несъезжание?
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: Табуляция
От: Lexey Россия  
Дата: 11.07.16 12:20
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Что такое «форматирование, для которого некритична ширина таба», и за счёт чего гарантируется его несъезжание?


Любые начальные отступы блоков кода. Несъезжание гарантируется тем, что в этих отступах нет ничего, кроме табов.
"Будь достоин победы" (c) 8th Wizard's rule.
Re: А вы выравниваете код?
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 11.07.16 21:36
Оценка:
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.


Я выравниваю по возможности. Но без фанатизма.

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

Да и.. только пробелами.
С уважением, Artem Korneev.
Re[9]: Табуляция
От: seregaa Ниоткуда http://blogtani.ru
Дата: 11.07.16 23:15
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Это размер таба по умолчанию. Используется многими инструментами, которые, зачастую, нет возможности настроить или настраиваются они исключительно ректально. Например, всякие веб-приложения для просмотра исходного кода, diff-merge утилиты, консольные утилиты и пр.

AK>Да, большая часть из них так или иначе настраивается. Но частенько с косяками. Например, WinMerge не может иметь разную величину табов для разных типов файлов, а где настраивать ширину таба в интерфейсе github'а я что-то сходу не нашёл.

Ответил в предыдущем сообщении.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[2]: Нет
От: мыщъх США http://nezumi-lab.org
Дата: 12.07.16 00:29
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q> Такое искусственное выравнивание требует сопровождения: изменения одной

Q> строки нуждается в ручном перевёрстывании всех остальных. Как следствие, это не diff friendly.
где вы такой diff откопали? кошерный diff кушает опцию: --ignore-space-change
google://diff ignore whitespace
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[11]: Тот чувак, который юзает таб в 8 пробелов
От: seregaa Ниоткуда http://blogtani.ru
Дата: 12.07.16 08:57
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Здравствуйте, seregaa, Вы писали:


Q>>>например?

S>>Вот если бы мне это действительно было нужно, я бы не поленился и погуглил. И нашел бы такой способ:
Q>«This does not work on Gists, or raw file views»

А почему цитату до конца не привел? "This does not work on Gists, or raw file views, but a Chrome or Opera extension can automate this."

S>>Ну вы пробельщики и эгоисты. Вместо того, чтобы изучить и настроить под себя свой инструмент, вы хотите насадить свои стандарты всем вокруг.

Q>Олол. Табуляторщикам проще допустить, все вокруг должны настраивать по несколько программ на всех своих рабочих компах, просто чтобы три с половиной табуляторщика наслаждались своей табуляцией.

С табами всегда есть альтернатива — можно смотреть как есть, а можно настроить инструмент под себя.
В случае с пробелами такой альтернативы нет — ты полностью зависим от прихоти автора кода.

Q>Невзирая на гайдлайны и рекомендации.

Гайды и рекомендации разные, и если проходится участвовать в разных проектах, то приходится перенастраивать инструменты и работать с разношерстным выравниванием.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[11]: Тот чувак, который юзает таб в 8 пробелов
От: seregaa Ниоткуда http://blogtani.ru
Дата: 12.07.16 09:08
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Олол. Табуляторщикам проще допустить, все вокруг должны настраивать по несколько программ на всех своих рабочих компах, просто чтобы три с половиной табуляторщика наслаждались своей табуляцией. Невзирая на гайдлайны и рекомендации.


Посмотри на количество проголосовавших за табы и пробелы http://stackoverflow.com/research/developer-survey-2015#tech-tabsspaces
45% предпочитают табы, 33% — пробелы. Не похоже на "три с половиной" табуляторщика. Поэтому твой аргумент работает против тебя.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[12]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 09:17
Оценка:
Здравствуйте, seregaa, Вы писали:

Q>>«This does not work on Gists, or raw file views»

S>А почему цитату до конца не привел?

Так и ты до конца все пункты не рассмотрел. Где настраивается отображаемый размер табуляции в инспекторе Unity 3D или в текст. просмотрщике Total Commander?

S>"This does not work on Gists, or raw file views, but a Chrome or Opera extension can automate this."


То есть ты считаешь нормальным навязывать всему миру установку каких-то сторонних экстеншнов под разные браузеры (а что насчёт Edge и Firefox?), а если кто не хочет, «то ссзс, предлагаю еще и цвет текста сделать белым по белому.»

S>С табами всегда есть альтернатива — можно смотреть как есть, а можно настроить инструмент под себя.


Не просто «настроить инструмент под себя», а перебрать все установленные на компе мерджилки, текстовые просмотрщики и браузеры, не говоря уже о каких-то консольных утилитах.

S>В случае с пробелами такой альтернативы нет — ты полностью зависим от прихоти автора кода.


А ещё, представь, ты зависим о того, переносит ли автор скобку { на новую строку или пишет в конце предыдущей. Может, стоит перед скобкой тоже вставлять какой-нибудь специальный неотображаемый символ, чтоб читатель мог настроить в своём окружении, переносить ли по этому символу скобку или нет?

Q>>Невзирая на гайдлайны и рекомендации.


Microsoft: «Use the default Code Editor settings (smart indenting, four-character indents, tabs saved as spaces).»
Google: «We use spaces for indentation. Do not use tabs in your code. You should set your editor to emit spaces when you hit the tab key.»
PEP 8: «Spaces are the preferred indentation method. Tabs should be used solely to remain consistent with code that is already indented with tabs.»

S>Гайды и рекомендации разные, и если проходится участвовать в разных проектах, то приходится перенастраивать инструменты и работать с разношерстным выравниванием.


Я сейчас как раз работаю в проекте, где «исторически сложилась» табуляция, будь она проклята.
Глаза у меня добрые, но рубашка — смирительная!
Отредактировано 12.07.2016 9:28 Qbit86 . Предыдущая версия .
Re[13]: Тот чувак, который юзает таб в 8 пробелов
От: seregaa Ниоткуда http://blogtani.ru
Дата: 12.07.16 09:29
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>>>...просто чтобы три с половиной табуляторщика наслаждались своей табуляцией. Невзирая на гайдлайны и рекомендации.

S>>Посмотри на количество проголосовавших за табы и пробелы http://stackoverflow.com/research/developer-survey-2015#tech-tabsspaces
Q>Прекрасная ссылка; по ней говорится: «Upon closer examination of the data, a trend emerges: Developers increasingly prefer spaces as they gain experience. Stack Overflow reputation correlates with a preference for spaces, too: users who have 10,000 rep or more prefer spaces to tabs at a ratio of 3 to 1.»

Так и знал, что ты обратишь на это внимание. Однако изначально ты говорил только о количестве. Так до бесконечности перескакивать (что то мне это напоминает...)
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[13]: Тот чувак, который юзает таб в 8 пробелов
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 12.07.16 09:33
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>То есть ты считаешь нормальным навязывать всему миру установку каких-то сторонних экстеншнов под разные браузеры (а что насчёт Edge и Firefox?), а если кто не хочет, «то ссзс, предлагаю еще и цвет текста сделать белым по белому.»


Просто представь, что автор напечатал восемь пробелов, и не надо ничего настраивать.
Ce n'est que pour vous dire ce que je vous dis.
Re[14]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 09:37
Оценка:
Здравствуйте, seregaa, Вы писали:

Q>>Прекрасная ссылка; по ней говорится: «Upon closer examination of the data, a trend emerges: Developers increasingly prefer spaces as they gain experience. Stack Overflow reputation correlates with a preference for spaces, too: users who have 10,000 rep or more prefer spaces to tabs at a ratio of 3 to 1.»

S>Так и знал, что ты обратишь на это внимание. Однако изначально ты говорил только о количестве.

Вполне вероятно, что у меня искажённая оценка количества табуляторщиков, потому что стараюсь оставаться в среде experienced developers. Если же тебя окружают вчерашние студенты, то вполне возможно они фигачат табы как в дельфи.
Глаза у меня добрые, но рубашка — смирительная!
Re[7]: Табуляция
От: Lexey Россия  
Дата: 12.07.16 09:39
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Я это отдельно оговаривал. Похоже, ты просто не читаешь собощения, лепишь минус по ключевым словам.


Я минус тебе влепил за "Даже в начале строки не стоит использовать табуляцию". Ибо именно в начале строки ее и желательно использовать. Твои дальнейшие оговорки никак не отменяют первое утверждение.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[14]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 09:41
Оценка:
Здравствуйте, Don Reba, Вы писали:

Q>>То есть ты считаешь нормальным навязывать всему миру установку каких-то сторонних экстеншнов под разные браузеры (а что насчёт Edge и Firefox?), а если кто не хочет, «то ссзс, предлагаю еще и цвет текста сделать белым по белому.»

DR>Просто представь, что автор напечатал восемь пробелов, и не надо ничего настраивать.

И кому это нужно?
Глаза у меня добрые, но рубашка — смирительная!
Re[8]: Табуляция
От: Qbit86 Кипр
Дата: 12.07.16 09:46
Оценка:
Здравствуйте, Lexey, Вы писали:

L>Ибо именно в начале строки ее и желательно использовать.


Microsoft, Google и PEP единодушны в этом вопросе: табуляцию использовать не нужно.
Глаза у меня добрые, но рубашка — смирительная!
Re[7]: Табуляция
От: Lexey Россия  
Дата: 12.07.16 09:46
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>например, просмотр в редакторе с табом по умолчанию 8 не гарантирует несъезжание за пределы экрана


Это не съезжание форматирования. Это несоответствие максимальной длины строки кода размеру окна редактора. Если тебе критичен просмотр с таким размером таба в маленьком окне, то разбивай код на более короткие строки.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[15]: Тот чувак, который юзает таб в 8 пробелов
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 12.07.16 09:46
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>И кому это нужно?


Автору кода или другим пользователям редактора. Ты же сам ратуешь за отсутствие возможности подстроить под себя. Не устанавливай никаких расширений, не настраивай редакторы, просто смотри, как за тебя решили.
Ce n'est que pour vous dire ce que je vous dis.
Отредактировано 12.07.2016 9:47 Don Reba . Предыдущая версия .
Re[16]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 09:52
Оценка:
Здравствуйте, Don Reba, Вы писали:

Q>>И кому это нужно?

DR>Автору кода или другим пользователям редактора.

Может, автору кода удобно вообще в одну строку писать. Ну а что, настройте под себя расширение браузера для автоформатирования.
Глаза у меня добрые, но рубашка — смирительная!
Re[5]: Табуляция
От: Lexey Россия  
Дата: 12.07.16 09:55
Оценка:
Здравствуйте, netch80, Вы писали:

N>Реально на сейчас табуляция в коде просто вредна — экономия ничтожна, а проблемы из-за разной ширины значительно существеннее.


Кому вредна? Мне она очень удобна. Никаких проблем нет, если код не начинают править любители замены табов на пробелы.
Вот тогда начинается геморрой с переформатированием, ибо у одного стоит таб = 4 пробела, у другого 2, etc.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[17]: Тот чувак, который юзает таб в 8 пробелов
От: seregaa Ниоткуда http://blogtani.ru
Дата: 12.07.16 10:00
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>>>И кому это нужно?

DR>>Автору кода или другим пользователям редактора.
Q>Может, автору кода удобно вообще в одну строку писать. Ну а что, настройте под себя расширение браузера для автоформатирования.

Это не аргумент — в этом случае не помогут ни табы ни пробелы.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[18]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 10:04
Оценка:
Здравствуйте, seregaa, Вы писали:

S>в этом случае не помогут ни табы ни пробелы.


Зато поможет экстеншн для форматирования! Зачем кому-то навязывать стиль переноса фигурных скобок или аргументов функции? Пусть каждый сам настроит инструмент под себя.
Глаза у меня добрые, но рубашка — смирительная!
Re[10]: Табуляция
От: Qbit86 Кипр
Дата: 12.07.16 10:35
Оценка:
Здравствуйте, Lexey, Вы писали:

Q>>Microsoft, Google и PEP единодушны в этом вопросе: табуляцию использовать не нужно.

L>И что? Это их внутренние стандарты, которые редко меняют из-за бюрократии и того, что уже тонны кода в таком формате написаны.

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

L>Я много использовал пробелы там, где это было оговорено внутренним стандартом, но, при наличии выбора, предпочитаю табы.


Да я понял уже: несовместимые с оющепринятыми самопальные соглашения и прочий дельфи-стайл лучше рекомендаций от авторов платформы.
Глаза у меня добрые, но рубашка — смирительная!
Re[13]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 12.07.16 10:44
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Прекрасная ссылка; по ней говорится: «Upon closer examination of the data, a trend emerges: Developers increasingly prefer spaces as they gain experience. Stack Overflow reputation correlates with a preference for spaces, too: users who have 10,000 rep or more prefer spaces to tabs at a ratio of 3 to 1.»

Кстати, что характерно, сразу после того, как пробельщики побеждают табберов, начинается война о количестве пробелов. Я видел 1, 2, 3, 4, 5, 8 штук. С четырмя пробелами соглашаются далеко не все.
Иметь ширину 4 пробела в глубоковложенных форматах типа html или xml — многовато, желательно один или два.
А в форматах с небольшой вложенностью, css или sql, например, можно и 8 поставить.

А ещё табы удобнее тем, что их можно настраивать. Скажем, когда редактируешь — удобно поставить ширину 8, а когда делаешь трёхколоночный merge, то ужимаешь до двух или даже до одного.

Насчёт браузеров — ширина табов тоже меняется, через css или адд-оны.

ЗЫЖ Если тебе лень искать как настроить в некой тулзе ширину табов, считай что код написан восьмипробельщиком.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[11]: Табуляция
От: Lexey Россия  
Дата: 12.07.16 11:28
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Да я понял уже: несовместимые с оющепринятыми самопальные соглашения и прочий дельфи-стайл лучше рекомендаций от авторов платформы.


На общепринятые они никак не тянут (судя по той статистике, которую в теме приводили). В чем заключается дельфи-стайл, понятия не имею.
"Будь достоин победы" (c) 8th Wizard's rule.
Re[15]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 12.07.16 11:35
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Четыре пробела общеприняты для C#, это соответствует официальным рекомендациям и для совместимости с другими разработчиками имеет смысл придерживаться этого соглашения. Для других языков могут быть другие соглашения, там лучше придерживаться их. Все табберы, которы я встречал, используют эту ширину для отображения.

Сишарпом вселенная не ограничивается.

Q>·>Иметь ширину 4 пробела в глубоковложенных форматах типа html или xml — многовато, желательно один или два.

Q>Прекрасно, когда XML свёрстан в два прообела, ты увидишь именно их, никаких проблем.
Почему ты выбираешь только удобные тебе ситуации? Представь, что XML свёрстан с восемью пробелами.

Q>А если он свёрстан с табами, то в нотпаде ты увидишь то, как настроена табуляция была в последний раз. В IDE ещё можно настраивать ширины табов по-разному для разных типов файлов. А во многих других просмотрщиках текста — нельзя. XML с отступами шириной 8 символов, Карл!

Поставь свои любимые четыре в этих многих. И нет проблемы, будешь везде видеть свои любимые четыре пробела.

Q>·>сразу после того, как пробельщики побеждают табберов

Q>Ещё раз: использование табов объективно вызывает у людей проблемы, с просмотром и редактированием. На что табберы говорят: ваши проблемы, ставьте себе аддоны и не используйте богомерзкую Unity 3D. Да, для нас это становится проблемой. «Считай что код написан восьмипробельщиком» — спасибо за заботу о читателе, бро!
У меня вызывает проблемы мерж html с четырмя пробелами, хочу видеть один пробел. И эта проблема _вообще никак_ не решается, даже в супернавороченных IDE.
Если стандартная ширина таба 8 вызывает трудности — две минуты гугленья проблему решают практически всегда. Что такое Unity 3D я не знаю, но вот вроде тоже что-то есть: http://docs.unity3d.com/ScriptReference/GUIText-tabSize.html
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[16]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 11:48
Оценка:
Здравствуйте, ·, Вы писали:

·>Сишарпом вселенная не ограничивается.


Я приводил ссылки также на некоторые гайды по стилю C++ и Питон. Конечно, они расходятся во многих аспектах с рекомендациями для C#, единогласия нет. Только в отношении неиспользования табов они единодушны, это о чём-то говорит.

·>Почему ты выбираешь только удобные тебе ситуации? Представь, что XML свёрстан с восемью пробелами.


Потому что исхожу из своего опыта, в котором количество встреченных XML-документов, свёрстанных с 8 пробелами, равно нулю.

·>Поставь свои любимые четыре в этих многих.


Не любой софт позволяет настраивать ширину отображаемой табуляции.

·>И нет проблемы, будешь везде видеть свои любимые четыре пробела.


Я не хочу везде видеть четыре пробела. В XML иногда удобно два, в C# всегда четыре.

·>Что такое Unity 3D я не знаю, но вот вроде тоже что-то есть: http://docs.unity3d.com/ScriptReference/GUIText-tabSize.html


Это не о том вообще.
Глаза у меня добрые, но рубашка — смирительная!
Re[18]: Тот чувак, который юзает таб в 8 пробелов
От: Qbit86 Кипр
Дата: 12.07.16 12:46
Оценка:
Здравствуйте, ·, Вы писали:

Q>>Я приводил ссылки также на некоторые гайды по стилю C++ и Питон. Конечно, они расходятся во многих аспектах с рекомендациями для C#, единогласия нет. Только в отношении неиспользования табов они единодушны, это о чём-то говорит.

·>Вот, скажем https://www.kernel.org/doc/Documentation/CodingStyle — ширина 8 символов.

«Addison-Wesley, Inc., 1999.» Подождите, а кто там наверху говорил про легаси? Что-нибудь из нашего века есть?

Q>>Потому что исхожу из своего опыта, в котором количество встреченных XML-документов, свёрстанных с 8 пробелами, равно нулю.

·>Т.е. опять confirmation bias вместо разумных доводов.

Остаётся только предоставить читателям самим судить насчёт разумности доводов про теоретический 8-пробельный XML.

·>Можно примеры? Особенно интересно услышать в свете confirmation bias — чем ты регулярно пользуешься лично что не позволяет настраивать размеры табов?


Unity 3D, Total Commander (просмотр по F3), Google Chrome. Про GitHub выше привели хак, но ещё есть Bitbucket и просто бложеки, где приводят код в <pre>.

Q>>Я не хочу везде видеть четыре пробела. В XML иногда удобно два, в C# всегда четыре.

·>Не понял, это вообще-то говорит в пользу табов.

Подождите, вы же говорили, что достаточно всего один раз настроить инструментарий под себя?

·>Со сколькими пробелами XML набран — со столькими ты и будешь видеть. Если человек набирал XML на 26" мониторе с четырмя пробелами, а тебе с этим же кодом надо повозиться на 13" ноуте — что делать?


Если исключить случай злонамеренности автора, то проблем с пробелами никогда не возникает. Даже при разных соглашениях, будь то XAML, или AndroidManifest.xml, или другие конфиги; часть из них удобнее с нормальными отступами, часть с компактными.

·>А о чём? Можно ссылку о том, что в некой Unity 3D невозможно поменять размер таба?


Unity 3D — это инструментарий для кроссплатформенной разработки игр; в его редакторе есть окошко Инспектора (обычно небольшое), которое показывает содержимое разных ассетов (модельки, текстурки, скрипты, etc). Он показывает текст как есть, без вычурных настроек; длинный текст обрывает и переносит. При использовании табов получается таже не куча пустого места, а просто месиво разорванных строк.
Глаза у меня добрые, но рубашка — смирительная!
Re[19]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 12.07.16 14:47
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>>>Я приводил ссылки также на некоторые гайды по стилю C++ и Питон. Конечно, они расходятся во многих аспектах с рекомендациями для C#, единогласия нет. Только в отношении неиспользования табов они единодушны, это о чём-то говорит.

Q>·>Вот, скажем https://www.kernel.org/doc/Documentation/CodingStyle — ширина 8 символов.
Q>«Addison-Wesley, Inc., 1999.» Подождите, а кто там наверху говорил про легаси? Что-нибудь из нашего века есть?
Некоторые проекты просто ссылаются на linux kernel style. Copyright © 2005‒2014 The GNOME Project.

Q>>>Потому что исхожу из своего опыта, в котором количество встреченных XML-документов, свёрстанных с 8 пробелами, равно нулю.

Q>·>Т.е. опять confirmation bias вместо разумных доводов.
Q>Остаётся только предоставить читателям самим судить насчёт разумности доводов про теоретический 8-пробельный XML.
Кстати, о теории. В теории пробелы тоже критику не выдерживают.
Представь себе альтернативную вселенную, где пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует. Ты видишь какие-нибудь проблемы в этой вселенной?

А теперь представь другую вселенную: табы запрещены, или их вообще не существовало, и кнопки такой нет. Будут ли проблемы — по-моему да. Как минимум будут войны на тему сколько пробелов должно быть в отступах — 2, 4 или 8 или 13. Притом, даже если законодательно закрепят какое-то число, например 4, то возникнет вопрос — а почему бы не заменить стандартные четыре символа на специальный символ со специальным кодом, и кнопку бы неплохо добавить... ведь нажимать четырежды сложнее? Придётся комбинацию клавиш добавлять или специальную кнопку в клавиатуры, текстовые редакторы должны будут поддерживать вставку/удаление четырех пробелов.

Q>·>Можно примеры? Особенно интересно услышать в свете confirmation bias — чем ты регулярно пользуешься лично что не позволяет настраивать размеры табов?

Q>Unity 3D,
Ок, никогда это не видел, но можно поверить, что одна такая прога есть. Патч уже постили? Разрабы наотрез отказались мержить?

Q>Total Commander (просмотр по F3),

"Tab width may be specified by parameter TabWidth in section [Lister] of wincmd.ini file." Или оно не работает?

Q>Google Chrome. Про GitHub выше привели хак, но ещё есть Bitbucket и просто бложеки, где приводят код в <pre>.

С бразуерами всё просто: http://stackoverflow.com/questions/6686763/setting-pre-tab-width-in-different-web-browsers
Как сделать user style css думаю сам разберёшься.

Q>>>Я не хочу везде видеть четыре пробела. В XML иногда удобно два, в C# всегда четыре.

Q>·>Не понял, это вообще-то говорит в пользу табов.
Q>Подождите, вы же говорили, что достаточно всего один раз настроить инструментарий под себя?
Каждый настраивает под себя как и где ему удобно. Проблема с пробелами возникает когда разные люди с разными настройками начинают работать над одними и теми же файлами. С табами проблем нет, т.к. они учитывают "настойки под себя".

Q>·>Со сколькими пробелами XML набран — со столькими ты и будешь видеть. Если человек набирал XML на 26" мониторе с четырмя пробелами, а тебе с этим же кодом надо повозиться на 13" ноуте — что делать?

Q>Если исключить случай злонамеренности автора, то проблем с пробелами никогда не возникает. Даже при разных соглашениях, будь то XAML, или AndroidManifest.xml, или другие конфиги; часть из них удобнее с нормальными отступами, часть с компактными.
И кто как договаривается какие в данном файле в данном проекте отступы делать?

Q>·>А о чём? Можно ссылку о том, что в некой Unity 3D невозможно поменять размер таба?

Q>Unity 3D — это инструментарий для кроссплатформенной разработки игр; в его редакторе есть окошко Инспектора (обычно небольшое), которое показывает содержимое разных ассетов (модельки, текстурки, скрипты, etc). Он показывает текст как есть, без вычурных настроек; длинный текст обрывает и переносит. При использовании табов получается таже не куча пустого места, а просто месиво разорванных строк.
А при использовании восьми пробелов что происходит?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[14]: Тот чувак, который юзает таб в 8 пробелов
От: mDmitriy Россия  
Дата: 12.07.16 15:26
Оценка:
Здравствуйте, Don Reba, Вы писали:
DR>Просто представь, что автор напечатал восемь пробелов, и не надо ничего настраивать.
от таких авторов умные люди и изобрели автоформаттеры...
Re[8]: Табуляция
От: mDmitriy Россия  
Дата: 12.07.16 15:45
Оценка:
Здравствуйте, Lexey, Вы писали:
L>Это не съезжание форматирования. Это несоответствие максимальной длины строки кода размеру окна редактора. Если тебе критичен просмотр с таким размером таба в маленьком окне, то разбивай код на более короткие строки.
ну, может вам и нравится подстраивать свой код под сторонних табуляторщиков... мне вот нет
Re[2]: А вы выравниваете код?
От: Gattaka Россия  
Дата: 12.07.16 16:50
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>Да, плагином Align в Виме.

А почему именно им? Почему не Resharper?
Re[11]: Табуляция
От: · Великобритания  
Дата: 12.07.16 17:24
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>>>ну, может вам и нравится подстраивать свой код под сторонних табуляторщиков... мне вот нет

D>·>Ты не читаешь что-ли на что отвечаешь? Если не критичен — уменьши размер таба при просмотре. В этом случае подстраивать код ты не должен. А если критичен — то подстраивать ты будешь код и с пробелами. В этом и профит.
D>найти код с 8-ю пробелами отступа — задача не из простых...
Зато часто попадается с одним, или с двумя, и иногда с тремя. Подстраиваться всё равно приходится.

D>а получить тот же отступ на табе — легче легкого

Это как? Отступ на табе всегда ровно один таб.

D>вместе с геморроем "где то место, уменьшающее таб"

Если это доставляет хоть малейшее неудобство, то вылечить этот гемморой занимает минуту. А если тебе попался код не с твоим любимым количеством пробелов, то это вообще практически не лечится.

D>код с пробелами подстраивать не надо — больше 4-х

Зато меньше используют довольно часто.

D>вменяемые люди обычно не используют

Если так заявлять, то проще заявить что вменяемые люди пробелы не используют.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[3]: А вы выравниваете код?
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 12.07.16 17:25
Оценка:
Здравствуйте, Gattaka, Вы писали:

G>А почему именно им? Почему не Resharper?


Я чаще работаю в Виме, чем в Студии. А Решарпер умеет делать табличное форматирование?
Ce n'est que pour vous dire ce que je vous dis.
Re[5]: Ignore whitespaces
От: Gattaka Россия  
Дата: 12.07.16 17:52
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>Здравствуйте, Qbit86, Вы писали:


Q>>А зачем их ignore? Их не надо ignore. Кроме того, это не спасёт от конфликтов. Скажем, в такой табличке кто-то в одной строке изменил тип, увеличив его на пару символов; кто-то другой исправил имя в другой строке, уменьшив самую длинную строку. Оба переверстали.


DR>Я считаю редкие, легко разрешимые конфликты приемлемой ценой за повышение читаемости кода.

Ничего себе легко разрешимые, а у вас методы в классах как отсортированы? По модификатором доступа? А внутри по алфавиту отсортированы?
Re[20]: Наследие времён Телетайпа
От: Qbit86 Кипр
Дата: 12.07.16 21:50
Оценка:
·>Некоторые проекты просто ссылаются на linux kernel style.

«The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.» Серьёзно, три уровня? Там код только начинается, если в языке есть пространства имён и классы.

«Это их внутренние стандарты, которые редко меняют из-за бюрократии и того, что уже тонны кода в таком формате написаны.» Гайдлайны из прошлого тысячелетия, Карл.

Приведённые же выше гайдлайны от Гугла эволюционировали на глазах за последние несколько лет, с постепенным осторожным внедрением C++11.


·>...пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует. Ты видишь какие-нибудь проблемы в этой вселенной?


Конечно вижу, я даже собственный код не смогу видеть единообразным в разных просмотрщиках. Не говоря уже о том, что сетка канваса редактора (при моноширинном шрифте) становится фейком. Символы занимают не те колонки, какие кажутся. Грубо говоря, управляющие символы ломают plain text. В создаваемую с нуля вселенную не стоит тащить наследие времён Телетайпа сорокалетней давности.


·>Как минимум будут войны на тему сколько пробелов должно быть в отступах — 2, 4 или 8 или 13.


Как-то же получается договариваться насчёт египетских скобок, `SNAKE_CASE` и транслита в идентификаторах?


·>а почему бы не заменить стандартные четыре символа на специальный символ со специальным кодом, и кнопку бы неплохо добавить... ведь нажимать четырежды сложнее?


Кнопку конечно, не плохо бы добавить, чтоб выравнивала пробелами по настроенному количеству знакомест. Но отдельный управляющий символ со специальным кодом? В современном мире не нужен.


·>Патч уже постили? Разрабы наотрез отказались мержить?


Это проприетарный редактор. И никто не будет тратить время на то, чтобы вместо простой вставки текста файла в стандартный компонент какого-нибудь фреймфорка а-ля `myLabel.SetText("File content")` тратить ресурсы на предварительную обработку содержимого, умную замену табуляции, etc.


·>Ок, никогда это не видел, но можно поверить, что одна такая прога есть.


Чувак, да их тысячи — программ, содержащих label'ы и textedit'ы с пользовательским текстом. Мессенджеры всякие (кстати, Скайп вставляет _один_ пробел вместо табуляции), заметки типа Google Keep, мобильные браузеры, книгочиталки. Чтобы иметь предсказуемый вид для своего же текста в случае табуляции нужно затратить слишком много усилий.


·>С бразуерами всё просто.

·>Как сделать user style css думаю сам разберёшься.

Да ты троллишь просто, да? У меня нет времени на кормёжку.


Q>>Unity 3D... При использовании табов получается таже не куча пустого места, а просто месиво разорванных строк.

·>А при использовании восьми пробелов что происходит?

Восемь порбелов, кстати, занимают меньше места, чем табулированный отступ. В окошке Инспектора текст отображается не моноширинным шрифтом.
Глаза у меня добрые, но рубашка — смирительная!
Отредактировано 12.07.2016 21:57 Qbit86 . Предыдущая версия .
Re[20]: Тот чувак, который юзает таб в 8 пробелов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.07.16 04:21
Оценка:
Здравствуйте, ·, Вы писали:

·>Кстати, о теории. В теории пробелы тоже критику не выдерживают.

·>Представь себе альтернативную вселенную, где пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует. Ты видишь какие-нибудь проблемы в этой вселенной?

"Тысячи их" (c).
Какой отступ на продолжения многострочного оператора? 0, 1, 2 таба? Я видел все эти варианты.
Если нужно несколько сходных записей одна под другой, и удобно сделать их на одном отступе, разрешать ли такой отступ для первой? Например: (во всех примерах 4 пробела за таб)

    someTerribleFunction(aaa,
        bbb,
        ccc,
        ddd);
(1)


    someTerribleFunction(
        aaa,
        bbb,
        ccc,
        ddd);
(2)

    someTerribleFunction(
            aaa,
            bbb,
            ccc,
            ddd
        );
(3)

    someTerribleFunction
        (   aaa,
            bbb,
            ccc,
            ddd
        );
(4)

    someTerribleFunction(   aaa,
                            bbb,
                            ccc,
                            ddd);
(5)

    someTerribleFunction    (  aaa,
                               bbb,
                               ccc,
                               ddd
                            );
(6)

Какой выберешь и почему? Как докажешь свой выбор соседу по комнате?

·>А теперь представь другую вселенную: табы запрещены, или их вообще не существовало, и кнопки такой нет. Будут ли проблемы — по-моему да. Как минимум будут войны на тему сколько пробелов должно быть в отступах — 2, 4 или 8 или 13. Притом, даже если законодательно закрепят какое-то число, например 4, то возникнет вопрос — а почему бы не заменить стандартные четыре символа на специальный символ со специальным кодом, и кнопку бы неплохо добавить... ведь нажимать четырежды сложнее? Придётся комбинацию клавиш добавлять или специальную кнопку в клавиатуры, текстовые редакторы должны будут поддерживать вставку/удаление четырех пробелов.


Они и так это давно поддерживают. Кроме ну самых примитивных.

·>Каждый настраивает под себя как и где ему удобно. Проблема с пробелами возникает когда разные люди с разными настройками начинают работать над одними и теми же файлами. С табами проблем нет, т.к. они учитывают "настойки под себя".


Не учитывают, см. выше.
The God is real, unless declared integer.
Отредактировано 13.07.2016 4:26 netch80 . Предыдущая версия .
tabs
Re[6]: Табуляция
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 13.07.16 04:32
Оценка:
Здравствуйте, Lexey, Вы писали:

N>>Реально на сейчас табуляция в коде просто вредна — экономия ничтожна, а проблемы из-за разной ширины значительно существеннее.


L>Кому вредна? Мне она очень удобна.


Угу, пока работаешь "без ансамбля".

L> Никаких проблем нет, если код не начинают править любители замены табов на пробелы.


Для затравки: тут
Автор: netch80
Дата: 13.07.16
примеры оператора, который в любом варианте выглядит для кого-то криво. И я там не упомянул один вариант, несовместимый с табами: bbb ровно под aaa, но aaa выровнен без лишних табов. Это возможно только при определённой сетке значений длины имени функции.
Что, будешь подгонять все имена функций под стандарт "кратно ширине таба, и минус 1"?
А потом и имена классов, если надо написать в виде ${class}.${method}?

L>Вот тогда начинается геморрой с переформатированием, ибо у одного стоит таб = 4 пробела, у другого 2, etc.


Нет, не начинается. Потому что есть общий стиль для файла, который нормальные люди не ломают, и пишут в modeline.
The God is real, unless declared integer.
Отредактировано 13.07.2016 4:32 netch80 . Предыдущая версия .
Re[22]: RuboCop
От: Qbit86 Кипр
Дата: 13.07.16 06:26
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>
DR>    someTerribleFunction
DR>        ( aaa
DR>        , bbb
DR>        , ccc
DR>        , ddd
DR>        );
DR>


Господи, какой ужас.


DR>Или более привычно:


Могу только догадываться, что за RuboCop по ссылке выше, но к табам он относится подозрительно: http://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/Tab

«RuboCop is a Ruby static code analyzer. Out of the box it will enforce many of the guidelines outlined in the community Ruby Style Guide

«Use two spaces per indentation level (aka soft tabs). No hard tabs.»
Глаза у меня добрые, но рубашка — смирительная!
Re[12]: Табуляция
От: mDmitriy Россия  
Дата: 13.07.16 07:56
Оценка:
Здравствуйте, ·, Вы писали:
·>Зато часто попадается с одним, или с двумя, и иногда с тремя. Подстраиваться всё равно приходится.
не-а... 1-2-3 лишних пробела обычно читабельность не нарушают, в отличии от 1-3 табов по 8
а если с кодом надо работать — это проблема форматтера его выровнять так, как я его настроил

D>>а получить тот же отступ на табе — легче легкого

·>Это как? Отступ на табе всегда ровно один таб.
на первом уровне вложения 1, на втором — 2, дальше продолжать?

D>>вместе с геморроем "где то место, уменьшающее таб"

·>Если это доставляет хоть малейшее неудобство, то вылечить этот гемморой занимает минуту.
даю вам минуту, чтобы вылечить просмотрщик/редактор Far Manager

·>А если тебе попался код не с твоим любимым количеством пробелов, то это вообще практически не лечится.

для чтения — и не надо, для работы — любой форматтер
D>>код с пробелами подстраивать не надо — больше 4-х
·>Зато меньше используют довольно часто.
не мешает
·>Если так заявлять, то проще заявить что вменяемые люди пробелы не используют.
используют... сам видел
Re: А вы выравниваете код?
От: Osaka  
Дата: 13.07.16 08:53
Оценка:
UPS>-- ВЫРОВНЕННАЯ ВЕРСИЯ.
UPS>CREATE TABLE DocStream (
UPS> Id BIGINT NOT NULL,
UPS> MD5 CHAR(32) NULL,
UPS> SHA1 CHAR(40) NULL,
UPS> Status INT NOT NULL
UPS>);
UPS>[/sql]
21й век на дворе, а до сих пор никто не приделал в редактор исходников поддержку вордовых таблиц. Вместо этого всё какие-то птичьи языки никому не нужные изобретают, и иконки обесцвечивают.
Отредактировано 13.07.2016 8:54 Osaka . Предыдущая версия .
Re[21]: Наследие времён Телетайпа
От: · Великобритания  
Дата: 13.07.16 09:33
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>·>Некоторые проекты просто ссылаются на linux kernel style.

Q>«The answer to that is that if you need more than 3 levels of indentation, you're screwed anyway, and should fix your program.» Серьёзно, три уровня? Там код только начинается, если в языке есть пространства имён и классы.
Q>«Это их внутренние стандарты, которые редко меняют из-за бюрократии и того, что уже тонны кода в таком формате написаны.» Гайдлайны из прошлого тысячелетия, Карл.
Допустим. Суть в том, что 4 пробела — не единственный вариант с пробелами, пробельщики договориться друг с другом не могут. В ruby афаир 2 пробела. Да ты сам с собой договриться не можешь — какие-то уже "нормальные" и "компактные" отступы придумал, притом в зависимости от желания левой пятки.

Q>Приведённые же выше гайдлайны от Гугла эволюционировали на глазах за последние несколько лет, с постепенным осторожным внедрением C++11.

По-моему, просто сложилось исторически. Замена пробелов-табов не настолько критична, чтобы заморачиваться изменением гайдлайнов.

Q>·>...пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует. Ты видишь какие-нибудь проблемы в этой вселенной?

Q>Конечно вижу, я даже собственный код не смогу видеть единообразным в разных просмотрщиках. Не говоря уже о том, что сетка канваса редактора (при моноширинном шрифте) становится фейком. Символы занимают не те колонки, какие кажутся. Грубо говоря, управляющие символы ломают plain text. В создаваемую с нуля вселенную не стоит тащить наследие времён Телетайпа сорокалетней давности.
Не понял почему. Что становится фейком? Что именно ломают? Почему у меня не ломают? У меня везде стоит ширина таба 4 по дефолту, кроме kdiff3 и xml/html-файлов — 2.

Q>·>Как минимум будут войны на тему сколько пробелов должно быть в отступах — 2, 4 или 8 или 13.

Q>Как-то же получается договариваться насчёт египетских скобок, `SNAKE_CASE` и транслита в идентификаторах?
Так не получается же. А так хотя бы одной проблемой было бы меньше.

Q>·>а почему бы не заменить стандартные четыре символа на специальный символ со специальным кодом, и кнопку бы неплохо добавить... ведь нажимать четырежды сложнее?

Q>Кнопку конечно, не плохо бы добавить, чтоб выравнивала пробелами по настроенному количеству знакомест.
И как бы редакторы поддерживали разные настройки у разных пользователей? Кому-то нравится два, кому-то четыре, кому-то восемь.

Q>Но отдельный управляющий символ со специальным кодом? В современном мире не нужен.

Расскажи это консорциуму Unicode.

Q>·>Патч уже постили? Разрабы наотрез отказались мержить?

Q>Это проприетарный редактор. И никто не будет тратить время на то, чтобы вместо простой вставки текста файла в стандартный компонент какого-нибудь фреймфорка а-ля `myLabel.SetText("File content")` тратить ресурсы на предварительную обработку содержимого, умную замену табуляции, etc.
Т.е. я понял. Главная проблема в том, что дефолтный размер таба — 8 символов. Было бы 4 — проблем бы не было.

Q>·>Ок, никогда это не видел, но можно поверить, что одна такая прога есть.

Q>Чувак, да их тысячи — программ, содержащих label'ы и textedit'ы с пользовательским текстом. Мессенджеры всякие (кстати, Скайп вставляет _один_ пробел вместо табуляции), заметки типа Google Keep, мобильные браузеры, книгочиталки. Чтобы иметь предсказуемый вид для своего же текста в случае табуляции нужно затратить слишком много усилий.
Вид текста от размера табуляции не зависит. Мы же говорим об отступах (indent) табуляцией, а не о выравнивании (alignment).

Собственно почему люди не могут договориться о размере отступа, потому что нет единственного "правильного" значения. Слишком маленький отступ ухудшает читаемость, а слишком большой отступ — увеличивает горизонтальный размер текста и он не влазит в окно, поэтому любое конкретное значение — компромисс. А значит единственный разумный подход — сделать размер отступа изменяемым, а это можно сделать только используя специальный символ табуляции для обозначения отступов, чтобы по месту можно было варьировать его величину. С пробелами эта задача решения не имеет.

Q>·>С бразуерами всё просто.

Q>·>Как сделать user style css думаю сам разберёшься.
Q>Да ты троллишь просто, да? У меня нет времени на кормёжку.
Ээ.. Это ты троллишь про "почти все программы". Как начинаю разбираться — так выясняется, таких программ одна штука, притом довольно специфичная.

Q>>>Unity 3D... При использовании табов получается таже не куча пустого места, а просто месиво разорванных строк.

Q>·>А при использовании восьми пробелов что происходит?
Q>Восемь порбелов, кстати, занимают меньше места, чем табулированный отступ. В окошке Инспектора текст отображается не моноширинным шрифтом.
Эээ.. По-моему бага какая-то.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[21]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 13.07.16 09:39
Оценка:
Здравствуйте, netch80, Вы писали:

N>·>Кстати, о теории. В теории пробелы тоже критику не выдерживают.

N>·>Представь себе альтернативную вселенную, где пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует. Ты видишь какие-нибудь проблемы в этой вселенной?

N>"Тысячи их" (c).

N>Какой отступ на продолжения многострочного оператора? 0, 1, 2 таба? Я видел все эти варианты.
Ты с темы не слезай. Ты расскажи вначале решение этой проблемы в вселенной с пробелами.
Я не утверждал, что табы решают все проблемы, рак, думаю, они не вылечат. Они решают проблему размера отступов.

N>Они и так это давно поддерживают. Кроме ну самых примитивных.

Так себе поддерживают, ибо задача не имеет простого алгоритмического решения. Никогда не попадались файлы с разным количеством пробелов в отступе в разных строках?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[13]: Табуляция
От: · Великобритания  
Дата: 13.07.16 09:47
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>·>Зато часто попадается с одним, или с двумя, и иногда с тремя. Подстраиваться всё равно приходится.

D>не-а... 1-2-3 лишних пробела обычно читабельность не нарушают, в отличии от 1-3 табов по 8
Ну поставь размер таба в 4.

D>а если с кодом надо работать — это проблема форматтера его выровнять так, как я его настроил

А ещё проблема мержа, диффа, патча, ревьювера и т.п.

D>>>а получить тот же отступ на табе — легче легкого

D>·>Это как? Отступ на табе всегда ровно один таб.
D>на первом уровне вложения 1, на втором — 2, дальше продолжать?
Продолжай.

D>>>вместе с геморроем "где то место, уменьшающее таб"

D>·>Если это доставляет хоть малейшее неудобство, то вылечить этот гемморой занимает минуту.
D>даю вам минуту, чтобы вылечить просмотрщик/редактор Far Manager
Для установки дефолтного значения: F9 -> Options -> Viewer Settings -> Tab size
Для временного изменения в открытом просмотрщике: Alt+Shift+F9 -> Tab size

D>>>код с пробелами подстраивать не надо — больше 4-х

D>·>Зато меньше используют довольно часто.
D>не мешает
Т.е. тебе просто тупо не нравится дефолт в 8 пробелов. Можешь себе локальный рай устроить — поменяй дефолт в 4 пробела.

D>·>Если так заявлять, то проще заявить что вменяемые люди пробелы не используют.

D>используют... сам видел
Рыбак рыбака...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[7]: Табуляция
От: Lexey Россия  
Дата: 13.07.16 10:21
Оценка:
Здравствуйте, netch80, Вы писали:

N>Для затравки: тут
Автор: netch80
Дата: 13.07.16
примеры оператора, который в любом варианте выглядит для кого-то криво. И я там не упомянул один вариант, несовместимый с табами: bbb ровно под aaa, но aaa выровнен без лишних табов. Это возможно только при определённой сетке значений длины имени функции.


Ключевое слово я выделил. ИМХО, вменяемые там только варианты 1 — 3. Для меня они будут нормально выглядеть и с другим размером таба.
Хотя, предпочту я такой стиль:
        public void SomeFunction(int a
            , int b
            , string c)
        {
            
        }

В общем, опять получается спор о вкусе фломастеров.

L>>Вот тогда начинается геморрой с переформатированием, ибо у одного стоит таб = 4 пробела, у другого 2, etc.

N>Нет, не начинается. Потому что есть общий стиль для файла, который нормальные люди не ломают, и пишут в modeline.

Начинается. Потому что новый человек лезет в старый код с другими настройками редактора. И может даже не замечать, что форматирование съехало. Результаты такого редактирования видел неоднократно.
Что такое "modeline", понятия не имею.
"Будь достоин победы" (c) 8th Wizard's rule.
Отредактировано 13.07.2016 10:28 Lexey . Предыдущая версия .
Re[8]: Табуляция
От: UberPsychoSvin  
Дата: 13.07.16 14:41
Оценка:
Здравствуйте, Lexey, Вы писали:
L>Хотя, предпочту я такой стиль:
L>
L>        public void SomeFunction(int a
L>            , int b
L>            , string c)
L>        {
            
L>        }
L>

Запятая в начале строки, для того, что бы, при добавлении строки, нужно было изменить одну строчку вместо двух? )

Задолбали эти стили, если честно. По одному гайду надо так скобку ставить, по другому сяк, по третьему наперекосяк.
Нет бы, делали так, что-бы компилятор, только один вариант синтаксиса переваривал.
Re[21]: Тот чувак, который юзает таб в 8 пробелов
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.07.16 17:51
Оценка:
Здравствуйте, netch80, Вы писали:

N>Какой выберешь и почему? Как докажешь свой выбор соседу по комнате?


А зачем это нужно доказывать соседу по комнате?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[22]: Скайп
От: Qbit86 Кипр
Дата: 13.07.16 19:34
Оценка:
Здравствуйте, ·, Вы писали:

·>В ruby афаир 2 пробела.


Так и есть, выше была ссылка на style guide. Два пробела, и никаких табов.

Q>>...сетка канваса редактора (при моноширинном шрифте) становится фейком. Символы занимают не те колонки, какие кажутся. Грубо говоря, управляющие символы ломают plain text.

·>Не понял почему. Что становится фейком? Что именно ломают? Почему у меня не ломают? У меня везде стоит ширина таба 4 по дефолту.

Посмотри на статус-строку в Visual Studio под открытым файлол. Видишь там цифры типа «Col 17» и «Ch 17»? При честных пробелах эти цифры одинаковые; у тебя — нет.

·>Так не получается же. А так хотя бы одной проблемой было бы меньше.


По факту, с табуляцией одной проблемой больше.

·>И как бы редакторы поддерживали разные настройки у разных пользователей? Кому-то нравится два, кому-то четыре, кому-то восемь.


С табуляцией даже для одного пользователя тяжело добиться одинакового отображения.

·>Ээ.. Это ты троллишь про "почти все программы". Как начинаю разбираться — так выясняется, таких программ одна штука, притом довольно специфичная.


Так что насчёт Скайпа? Слишком специфичная?
Глаза у меня добрые, но рубашка — смирительная!
Re[9]: Delimiter vs. separator
От: Qbit86 Кипр
Дата: 13.07.16 19:39
Оценка:
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>Запятая в начале строки, для того, что бы, при добавлении строки, нужно было изменить одну строчку вместо двух? )


Если добавляемая строка не становится первой или последней, то (в смысле минимальности диффа) всё равно, где запятая.

Иногда встречаются контексты, где запятую можно использовать как delimiter, а не separator. Скажем, в C# можно хвостовую запятую ставить в enum'ах или инициализации списков. Но в таких случаях запятая всегда справа от элемента, и никогда слева (как буллит в списке).
Глаза у меня добрые, но рубашка — смирительная!
Re[3]: А вы выравниваете код?
От: Osaka  
Дата: 14.07.16 00:24
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Osaka, Вы писали:


O>>21й век на дворе, а до сих пор никто не приделал в редактор исходников поддержку вордовых таблиц. Вместо этого всё какие-то птичьи языки никому не нужные изобретают, и иконки обесцвечивают.


EP>В Emacs есть редактор таблиц. И даже есть электронные таблицы в Org-Mode (заметки, Outliner, Reproducible Research а-ля Ipython/Jupyter, Literate Programming).


Отдельно я и excel могу запустить. А вот чтобы название функции текстом, дальше таблица с параметрами {тип, имя, размер}, дальше снова текстом код. И чтобы компилятор это понимал, и diff бы отображался.
Re[8]: Табуляция
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.07.16 05:49
Оценка:
Здравствуйте, Lexey, Вы писали:

L>Ключевое слово я выделил. ИМХО, вменяемые там только варианты 1 — 3. Для меня они будут нормально выглядеть и с другим размером таба.


Ну то есть, что aaa отрывается от выравнивания с остальными, тебя устраивает. Понятно.

L>В общем, опять получается спор о вкусе фломастеров.


Вопрос в том, что ряд особенностей "вкуса фломастера" устраивает почти всех, а некоторые — слишком радикальны, чтобы кого-то устроить.

Стили, которые отработаны в большом проекте, тем и интересны, что обычно уже являются результатами консенсуса между совершенно разными людьми.

L>Начинается. Потому что новый человек лезет в старый код с другими настройками редактора. И может даже не замечать, что форматирование съехало. Результаты такого редактирования видел неоднократно.


Если у редактора нет желания переконвертить под себя всё, включая то, что не трогалось, а у человека — элементарный опыт писать более-менее похоже на то, что он видит вокруг — больших проблем не будет. На отдельные незамеченные детальки есть peer review, а если последнего нет — то и не так страшно.

L>Что такое "modeline", понятия не имею.


Механизм vim и emacs по указанию параметров форматирования для конкретного файла, задаётся строчкой из первых или последних 3 строк файла.
Как минимум предпочтение табов или пробелов там задаётся (et/noet), ширина таба (ts), стандартный отступ (sw) — это всё в названиях vim.
The God is real, unless declared integer.
Re[22]: Тот чувак, который юзает таб в 8 пробелов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.07.16 06:36
Оценка:
Здравствуйте, ·, Вы писали:

N>>·>Кстати, о теории. В теории пробелы тоже критику не выдерживают.

N>>·>Представь себе альтернативную вселенную, где пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует. Ты видишь какие-нибудь проблемы в этой вселенной?

N>>"Тысячи их" (c).

N>>Какой отступ на продолжения многострочного оператора? 0, 1, 2 таба? Я видел все эти варианты.
·>Ты с темы не слезай.

Это я, оказывается, слезаю с темы?

·> Ты расскажи вначале решение этой проблемы в вселенной с пробелами.


Во-первых, не указывай другим, что делать, и они не скажут, куда тебе пойти.
Я потому и не хочу зацикливаться на одном твоём вопросе именно потому, что считаю его малосущественным по сравнению со многими другими в оформлении кода.

Во-вторых, если уж ты хочешь в первую очередь прямого ответа на это — я просто не считаю, что это проблема. В моих краях это обычно решается тем, что нажатие Tab вставляет нужное количество пробелов, а нажатие BS на пустом месте его съедает, и этого достаточно, чтобы поддерживать согласованный вариант. Я просто не вижу глубокого смысла в желании иметь какой-то плавный ползунок, которым регулировать эти отступы, расширяя и сжимая текст; но если кому-то это нужно — это реализуется и на пробелах. Да, пожалуй, ещё нельзя сказать "элементарно реализуется" — проблема в продолжениях операторов.

И вот тут как раз видно, что это ты "слезаеш с темы" — ты, а не я.
Потому что мои примеры ты поскипал и не ответил. А между тем примеры 5 и 6 как раз на тему того, как испортится выравнивание при табуляциях, меняющих длину.

·>Я не утверждал, что табы решают все проблемы, рак, думаю, они не вылечат. Они решают проблему размера отступов.


Ещё и ёрничаешь на ровном месте.

N>>Они и так это давно поддерживают. Кроме ну самых примитивных.

·>Так себе поддерживают, ибо задача не имеет простого алгоритмического решения. Никогда не попадались файлы с разным количеством пробелов в отступе в разных строках?

В смысле — часть табами, часть пробелами? Попадались. И что?
Там, где отступы принципиально важны для интерпретации (как в Python или Makefile), это вызывает просто ошибку компиляции. Там, где не важны (C с компанией), там нет проблем для машины; а для человека — один лишний раз дочистить.
Выдержка единого средства (табы или пробелы) тут важнее, чем выбор между ними; но при выборе уже между ними я предпочту пробелы из-за заведомо меньшей конфликтности для таких ситуаций.

И тут же — я участвовал в разработке софтин, в стиле которых было принято tabstop=8, но shiftwidth=4. Отступ кратный 8 делался только табами, а кратный 4, но не 8 — табы плюс 4 пробела. Между прочим, такой стиль ну очень распространён. И ты его своими "плавными" регулированиями сломаешь на корню
The God is real, unless declared integer.
Re[22]: Тот чувак, который юзает таб в 8 пробелов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 14.07.16 06:40
Оценка:
Здравствуйте, AndrewVK, Вы писали:

N>>Какой выберешь и почему? Как докажешь свой выбор соседу по комнате?


AVK>А зачем это нужно доказывать соседу по комнате?


Извини, я всё время забываю про существование openspace.
The God is real, unless declared integer.
Re[23]: Тот чувак, который юзает таб в 8 пробелов
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 14.07.16 08:07
Оценка:
Здравствуйте, netch80, Вы писали:

AVK>>А зачем это нужно доказывать соседу по комнате?

N>Извини, я всё время забываю про существование openspace.

При чем тут openspace?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[4]: А вы выравниваете код?
От: Evgeny.Panasyuk Россия  
Дата: 14.07.16 09:01
Оценка:
Здравствуйте, Osaka, Вы писали:

EP>>В Emacs есть редактор таблиц. И даже есть электронные таблицы в Org-Mode (заметки, Outliner, Reproducible Research а-ля Ipython/Jupyter, Literate Programming).

O>Отдельно я и excel могу запустить.

В Org-Mode электронные таблицы (+ формулы, + изображения) вперемешку с кодом. Они могут вводится вручную, быть результатом блока кода (на разных языках), и подаваться в качестве переменной в другой блок кода.

O>А вот чтобы название функции текстом, дальше таблица с параметрами {тип, имя, размер}, дальше снова текстом код. И чтобы компилятор это понимал, и diff бы отображался.


Если нужно чтобы компилятор понимал, то придётся делать либо дополнительный препроцессинг, либо не вставлять разметку таблицы в код, а только отображать её визуально. То есть в редакторе ты будешь видеть список параметров как таблицу, а в самом исходнике всё будет по обычному. На подобную технику есть режим GlassesMode:

GlassesMode changes the way StudlyCaps/CamelCase is displayed so you can see the difference. The default setting is to separate the Capped bits with an underscore, so EmacsIsStudly shows as Emacs_Is_Studly.

При необходимости подобное можно сделать и для таблиц.
Re[23]: Скайп
От: · Великобритания  
Дата: 14.07.16 09:24
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>·>В ruby афаир 2 пробела.

Q>Так и есть, выше была ссылка на style guide. Два пробела, и никаких табов.
Сочувствую.

Q>>>...сетка канваса редактора (при моноширинном шрифте) становится фейком. Символы занимают не те колонки, какие кажутся. Грубо говоря, управляющие символы ломают plain text.

Q>·>Не понял почему. Что становится фейком? Что именно ломают? Почему у меня не ломают? У меня везде стоит ширина таба 4 по дефолту.
Q>Посмотри на статус-строку в Visual Studio под открытым файлол. Видишь там цифры типа «Col 17» и «Ch 17»? При честных пробелах эти цифры одинаковые; у тебя — нет.
Эээ... И что? Почему это проблема?

Q>·>Так не получается же. А так хотя бы одной проблемой было бы меньше.

Q>По факту, с табуляцией одной проблемой больше.
Объясни вначале что это проблема. Какие неудобства создаёт?

Q>·>И как бы редакторы поддерживали разные настройки у разных пользователей? Кому-то нравится два, кому-то четыре, кому-то восемь.

Q>С табуляцией даже для одного пользователя тяжело добиться одинакового отображения.
Не надо повторять это. Лучше объясни что значит добиться одинакового и в чём тяжесть.

Q>·>Ээ.. Это ты троллишь про "почти все программы". Как начинаю разбираться — так выясняется, таких программ одна штука, притом довольно специфичная.

Q>Так что насчёт Скайпа? Слишком специфичная?
А что не так в скайпе? Пусть рисует табы шириной в один пробел, что в общем-то логично для узкого окна чата. Считай что в коде отступы сделаны одним пробелом.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[14]: Табуляция
От: mDmitriy Россия  
Дата: 15.07.16 09:52
Оценка:
Здравствуйте, ·, Вы писали:
D>>не-а... 1-2-3 лишних пробела обычно читабельность не нарушают, в отличии от 1-3 табов по 8
·>Ну поставь размер таба в 4.
и в каком волшебном месте это можно сделать один раз на все?
D>>а если с кодом надо работать — это проблема форматтера его выровнять так, как я его настроил
·>А ещё проблема мержа, диффа, патча, ревьювера и т.п.
нет у меня такой проблемы... "ignore spaces" рулит
D>>на первом уровне вложения 1, на втором — 2, дальше продолжать?
·>Продолжай.
продолжаю — количество видимых на экране уровней обратно пропорционально размеру таба
D>>даю вам минуту, чтобы вылечить просмотрщик/редактор Far Manager
·>Для установки дефолтного значения: F9 -> Options -> Viewer Settings -> Tab size
·>Для временного изменения в открытом просмотрщике: Alt+Shift+F9 -> Tab size
раз
даю еще минуту для Notepada
ну и чтобы два раза не вставать — для просмотрщика строк в отладчике студии (и для текста, для и xml)

·>Т.е. тебе просто тупо не нравится дефолт в 8 пробелов. Можешь себе локальный рай устроить — поменяй дефолт в 4 пробела.

мне тупо не нравится/лень/нет времени ползать по настройкам разных программных продуктов и устанавливать у них размер таба
был приятно удивлен, что есть любители подобного времяпровождения

·>Рыбак рыбака...

вменяемых людей не так мало как кажется, %username%...
Re[24]: Скайп
От: Qbit86 Кипр
Дата: 15.07.16 11:00
Оценка:
Здравствуйте, ·, Вы писали:

Q>>·>Так не получается же. А так хотя бы одной проблемой было бы меньше.

Q>>По факту, с табуляцией одной проблемой больше.

...Как в комик-стрипе про N+1 стандарт.

Q>>С табуляцией даже для одного пользователя тяжело добиться одинакового отображения.


·>Не надо повторять это. Лучше объясни что значит добиться одинакового и в чём тяжесть.

·>Объясни вначале что это проблема. Какие неудобства создаёт?
·>А что не так в скайпе? Пусть рисует табы шириной в один пробел, что в общем-то логично для узкого окна чата. Считай что в коде отступы сделаны одним пробелом.

Допустим, ты расшариваешь код-сниппет с кем-то через Битбакет или Скайп. Твой адресат ожидает увидеть нормально отформатированный код. Вместо этого видит отступы шириной 8 знакомест, в другом месте шириной 1 (а в случае пропорционального шрифта вообще непонятно какого размера). Что ты ему скажешь? «Твои проблемы: настроить экстеншны и css-стили в браузере плёвое дело. И вообще считай, что я изначально набирал с восьмерными или одинарными отступами. Шли реквест в Майкрософт чтобы добавили настройку табуляции в Скайпе!»
Глаза у меня добрые, но рубашка — смирительная!
Re[25]: Скайп
От: · Великобритания  
Дата: 15.07.16 12:07
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Допустим, ты расшариваешь код-сниппет с кем-то через Битбакет или Скайп. Твой адресат ожидает увидеть нормально отформатированный код. Вместо этого видит отступы шириной 8 знакомест, в другом месте шириной 1 (а в случае пропорционального шрифта вообще непонятно какого размера). Что ты ему скажешь? «Твои проблемы: настроить экстеншны и css-стили в браузере плёвое дело. И вообще считай, что я изначально набирал с восьмерными или одинарными отступами. Шли реквест в Майкрософт чтобы добавили настройку табуляции в Скайпе!»

Ты так говоришь, как будто это что-то плохое. Допустим видит. И что?
Нормальность нормально отформатированного кода от ширины таба не зависит.
А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[26]: Скайп
От: Qbit86 Кипр
Дата: 15.07.16 12:20
Оценка:
Здравствуйте, ·, Вы писали:

·>А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?


Это хотя бы предсказуемо и надёжно. Не то что настраивать CSS-стили в мобильном браузере на планшете, чтобы у тебя восьмизнаковый таб не превращал ширину документа в шесть экранов.
Глаза у меня добрые, но рубашка — смирительная!
Re[28]: Скайп
От: Qbit86 Кипр
Дата: 15.07.16 12:31
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Добавь в начало сообщения то что в кавычках "!! ", потом код — там и смайлки не подставляются, и шрифт моноширинный.


Причём, табы по прежнему отображаются одним пробелом (тестовый гист).
Глаза у меня добрые, но рубашка — смирительная!
Re[22]: Тот чувак, который юзает таб в 8 пробелов
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 15.07.16 13:07
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Он не нравится лично мне тем, что переход между "короткий список аргументов" и "длинный список аргументов" слишком резкий.


Закрывающую скобку не обязательно переносить на новую строку.

    someNiceFunction(aaa); // так?
    someNiceFunction(      // или так?
        aaa);
Ce n'est que pour vous dire ce que je vous dis.
Re[24]: Тот чувак, который юзает таб в 8 пробелов
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 15.07.16 13:16
Оценка:
Здравствуйте, ·, Вы писали:

N>>>>Какой отступ на продолжения многострочного оператора? 0, 1, 2 таба? Я видел все эти варианты.

N>>·>Ты с темы не слезай.
N>>Это я, оказывается, слезаю с темы?
·>Ты хочешь сказать, что я слезаю? В каком месте?

То есть ты отвечаешь, не прочитав всё письмо.

N>>·> Ты расскажи вначале решение этой проблемы в вселенной с пробелами.

N>>Во-первых, не указывай другим, что делать, и они не скажут, куда тебе пойти.
N>>Я потому и не хочу зацикливаться на одном твоём вопросе
·>Я решаю один вопрос, а ты вносишь другие. Притом они вообще никак не связаны с изначальным. Как делать _отступы_ (не выравнивание!) в многострочных выражениях от табов/пробелов никак не зависит.

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

N>>Во-вторых, если уж ты хочешь в первую очередь прямого ответа на это — я просто не считаю, что это проблема. В моих краях это обычно решается тем, что нажатие Tab вставляет нужное количество пробелов,

·>Ты мне точно скажи какое количество пробелов нужное? И объясни почему все не используют именно это количество.

Согласно канону. Который в каждом месте может быть свой.
Точно так же и с табами. Почему ты считаешь, что обычный отступ вложенности — один таб? Я встречал традицию, где это — два таба.
А один используется под полуотступ для некоторых особых случаев.
Так что твоё представление, что один таб это универсальный закон программного бытия, как минимум поспешно.

N>>а нажатие BS на пустом месте его съедает, и этого достаточно, чтобы поддерживать согласованный вариант. Я просто не вижу глубокого смысла в желании иметь какой-то плавный ползунок, которым регулировать эти отступы, расширяя и сжимая текст; но если кому-то это нужно — это реализуется и на пробелах. Да, пожалуй, ещё нельзя сказать "элементарно реализуется" — проблема в продолжениях операторов.

·>Не реализуется это на пробелах. Как мне такое реализовать на пробелах, если в окне редактора я хочу видеть четыре пробела, т.к. удобнее читать, а в окне мержа с тремя столбиками мне нужно 1 или два пробела, т.к. иначе в ширину экрана не помещается?

А если у тебя и с 1 пробелом на таб не поместится? У меня именно так, потому что я предпочитаю крупные шрифты, а писать вообще в 25x80.
Какой-то у тебя ну очень частный случай для оправдания.

N>>И вот тут как раз видно, что это ты "слезаеш с темы" — ты, а не я.

N>>Потому что мои примеры ты поскипал и не ответил. А между тем примеры 5 и 6
·>(5) и (6) вообще страх какой-то. Я думал ты по приколу их предложил.

Не-а, полностью серьёзно.

·>ни кстати разъедутся и при простом переименовании функции например.


Переименование обычно включает в себя и изменение роли, аргументов, etc?

·> Если тебе и правда интересно моё мнение, то я предпочту (2) или может быть (3), а (1) может сгодиться если первый параметр функции какой-то особый.


Мне оно интересно, но исключительно в контексте данного обсуждения
OK, понятно.

N>>как раз на тему того, как испортится выравнивание при табуляциях, меняющих длину.

·>Опять двадцать пять. Не надо путать выравниваение (alignment) и отступ (indent).

Так если и то, и другое делают табами в тех стандартах, где применяются табы, то зачем мне их различать?
Это если ты утверждаешь, что indentation делаешь табами, а alignment пробелами, то твой подход заметно другой, чем стандартный.
См. я приводил пример с отступами табами для полей структуры. Вот там у тебя вообще всё съедет к лешим.

N>>·>Я не утверждал, что табы решают все проблемы, рак, думаю, они не вылечат. Они решают проблему размера отступов.

N>>Ещё и ёрничаешь на ровном месте.
·>Не люблю тупую софистику.

Тогда зачем сам её применяешь, причём первым?

N>>·>Так себе поддерживают, ибо задача не имеет простого алгоритмического решения. Никогда не попадались файлы с разным количеством пробелов в отступе в разных строках?

N>>В смысле — часть табами, часть пробелами? Попадались. И что?
·>Нет, часть двумя пробелами, часть четырьмя, а местами случайно вставлено три.

Ну так будет точно так же неровное количество табов. Тому, кто так делает, пофиг на выравнивание при любом подходе.
(Собственно, я сам такой, когда ну очень спешно что-то делаю... хотя я такое не коммичу)

N>>Там, где отступы принципиально важны для интерпретации (как в Python или Makefile), это вызывает просто ошибку компиляции. Там, где не важны (C с компанией), там нет проблем для машины; а для человека — один лишний раз дочистить.

N>>Выдержка единого средства (табы или пробелы) тут важнее, чем выбор между ними; но при выборе уже между ними я предпочту пробелы из-за заведомо меньшей конфликтности для таких ситуаций.
·>Так с пробелами возникнет конфликт с их количеством. Поэтому я выбираю табы.

И там тот же конфликт. А рекомендованное количество пробелов обычно соответствует духу языка, насколько его можно сформулировать

N>>И тут же — я участвовал в разработке софтин, в стиле которых было принято tabstop=8, но shiftwidth=4. Отступ кратный 8 делался только табами, а кратный 4, но не 8 — табы плюс 4 пробела. Между прочим, такой стиль ну очень распространён. И ты его своими "плавными" регулированиями сломаешь на корню

·>Жуть конечно. Но если ставить ширину таба больше 4, то проблем не будет.

Так это ж нетипичный вариант. Типичные — 8, 4, 3, 2 — и из них под твоё условие подходит только 8.
The God is real, unless declared integer.
Re[27]: Скайп
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 15.07.16 13:29
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, ·, Вы писали:

S>·>А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?
S>Я тем временем смеюсь с темы разговора. Вы вообще пробовали код в Скайпе отправлять? В контексте замены комментариев смайликами всерьёз рассуждать о важности табов или пробелов может только шизофреник.

Это выключается в настройках.

S>На всякий случай напомню, что в скайпе вообще нельзя сделать ширину разговора больше захардкоженной производителем. ЛЮБОЙ код превращается в скайпе в нечитаемое месиво.


Из линуксового скайпа, по крайней мере, код копируется так, что после каждой строки кода появляется дополнительная пустая строка.
Вот этот эффект более выдающийся, чем табы
The God is real, unless declared integer.
Re[27]: Скайп
От: · Великобритания  
Дата: 15.07.16 17:17
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>·>А что ты ему скажешь если ты ему посылаешь xml набранный с четырмя пробелами на 26", а на его 10" планшетике он занимает в ширину в три экрана?

Q>Это хотя бы предсказуемо и надёжно. Не то что настраивать CSS-стили в мобильном браузере на планшете, чтобы у тебя восьмизнаковый таб не превращал ширину документа в шесть экранов.
А восьмипробельный отступ не превращает?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[25]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 15.07.16 18:16
Оценка:
Здравствуйте, netch80, Вы писали:

N>>>Во-первых, не указывай другим, что делать, и они не скажут, куда тебе пойти.

N>>>Я потому и не хочу зацикливаться на одном твоём вопросе
N>·>Я решаю один вопрос, а ты вносишь другие. Притом они вообще никак не связаны с изначальным. Как делать _отступы_ (не выравнивание!) в многострочных выражениях от табов/пробелов никак не зависит.
N>Именно что напрямую зависит, потому что эти отступы делаются по многим канонам именно табами, и твоё свободное варьирование их ширины сломает форматирование.
Ну да, отступы — табами. Почему это ломает форматирование?

N>·>Ты мне точно скажи какое количество пробелов нужное? И объясни почему все не используют именно это количество.

N>Согласно канону. Который в каждом месте может быть свой.
И что приводит к полному бардаку.

N>Точно так же и с табами. Почему ты считаешь, что обычный отступ вложенности — один таб? Я встречал традицию, где это — два таба.

N>А один используется под полуотступ для некоторых особых случаев.
Эээ.. "- Так не делайте так!"(с)

N>Так что твоё представление, что один таб это универсальный закон программного бытия, как минимум поспешно.

Понятно что можно извратить любую идею.

N>·>Не реализуется это на пробелах. Как мне такое реализовать на пробелах, если в окне редактора я хочу видеть четыре пробела, т.к. удобнее читать, а в окне мержа с тремя столбиками мне нужно 1 или два пробела, т.к. иначе в ширину экрана не помещается?

N>А если у тебя и с 1 пробелом на таб не поместится? У меня именно так, потому что я предпочитаю крупные шрифты, а писать вообще в 25x80.
Код значит плохой. Он и с пробельными отступами плохой будет. Причём тут табы?

N>Какой-то у тебя ну очень частный случай для оправдания.

Частный?? Ты хочешь сказать, что на самом деле, в общем случае — код с отступом в один пробел и плохо помещается. Я правильно понял?!

N>·>(5) и (6) вообще страх какой-то. Я думал ты по приколу их предложил.

N>Не-а, полностью серьёзно.
Ну тогда выравнивай такую каку пробелами, сделав отступ табами.

N>·>ни кстати разъедутся и при простом переименовании функции например.

N>Переименование обычно включает в себя и изменение роли, аргументов, etc?
Нет. Просто переименование.
Да даже если происходит изменение аргументов, то явно не всех, а выравнивание едет у всех.
А ещё чаще встречается такая конструкция:
SomeType result = someTerribleMethod(aaa,
                                     bbb);

Т.е. выравнивание портиться будет не только при переименовании метода, но и переменной "result" или её типа "SomeType", а если тип ещё и с параметром "SomeType<ArgType>", то такое спагетти начинается...

N>·> Если тебе и правда интересно моё мнение, то я предпочту (2) или может быть (3), а (1) может сгодиться если первый параметр функции какой-то особый.

N>Мне оно интересно, но исключительно в контексте данного обсуждения
N>OK, понятно.
На самом деле если пойти дальше, то выравнивание тоже надо запретить вообще везде. Ну может только в каких-то особых частях кода такое ещё имеет смысл... Но это не должно быть повседневно используемым способом форматирования.

N>>>как раз на тему того, как испортится выравнивание при табуляциях, меняющих длину.

N>·>Опять двадцать пять. Не надо путать выравниваение (alignment) и отступ (indent).
N>Так если и то, и другое делают табами в тех стандартах, где применяются табы, то зачем мне их различать?
Затем, что они — совершенно разные по смыслу. Отступ показывает иерархию вложенности, а выравнивание — вертикальную структуру, табличное отображение.

N>Это если ты утверждаешь, что indentation делаешь табами, а alignment пробелами, то твой подход заметно другой, чем стандартный.

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

N>См. я приводил пример с отступами табами для полей структуры. Вот там у тебя вообще всё съедет к лешим.

А табами и не надо выравнивать. Да и, как мне кажется, выравнивать вообще не надо. По мне такое читается проще:
struct foo
{
    /* List of active foo. */
    struct foo *next;

    /* Comment for mumble. and you could write really big comments, not reinventing a new special formatting for them.
       And even multiline.
    */
    struct mumble amumble;

    /* Try to align the comments. */
    int bar;

    /* Won't fit in 2 tabs. */
    struct verylongtypename *baz;
};

/* Head of global foo list. */
struct foo *foohead;


N>>>·>Так себе поддерживают, ибо задача не имеет простого алгоритмического решения. Никогда не попадались файлы с разным количеством пробелов в отступе в разных строках?

N>>>В смысле — часть табами, часть пробелами? Попадались. И что?
N>·>Нет, часть двумя пробелами, часть четырьмя, а местами случайно вставлено три.
N>Ну так будет точно так же неровное количество табов. Тому, кто так делает, пофиг на выравнивание при любом подходе.
N>(Собственно, я сам такой, когда ну очень спешно что-то делаю... хотя я такое не коммичу)
Нет, просто файл редактируется разными людьми, у которых стоит разное количество пробелов (или даже одним человеком, который решил, что 2 пробела мало, настройки поменял, но сразу весь код менять лениво). Или куски кода кочуют из других файлов, с другими отступами.
А три пробела — часто простая опечатка. Трудно заметить через 11 или 12 пробелов ты тыкнул мышой для начала правки, а с соседними строками разница не заметна.
С табами ошибиться практически невозможно.

N>>>Выдержка единого средства (табы или пробелы) тут важнее, чем выбор между ними; но при выборе уже между ними я предпочту пробелы из-за заведомо меньшей конфликтности для таких ситуаций.

N>·>Так с пробелами возникнет конфликт с их количеством. Поэтому я выбираю табы.
N>И там тот же конфликт. А рекомендованное количество пробелов обычно соответствует духу языка, насколько его можно сформулировать
Не видел я таких конфликтов. Отступ — 1 таб всегда.
Кстати, даже если тот твой упомянутый стиль с двумя табами — он, конечно, очень странный, но можно поставить размер таба "2" и видеть код в привычном виде. С пробелами же — только мучиться.

N>>>И тут же — я участвовал в разработке софтин, в стиле которых было принято tabstop=8, но shiftwidth=4. Отступ кратный 8 делался только табами, а кратный 4, но не 8 — табы плюс 4 пробела. Между прочим, такой стиль ну очень распространён. И ты его своими "плавными" регулированиями сломаешь на корню

N>·>Жуть конечно. Но если ставить ширину таба больше 4, то проблем не будет.
N>Так это ж нетипичный вариант. Типичные — 8, 4, 3, 2 — и из них под твоё условие подходит только 8.
Так с табами типичность варианта никого не колышет. Поставю себе таб размером 5 — моё дело, никого не касается.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[15]: Табуляция
От: · Великобритания  
Дата: 15.07.16 18:55
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>>>не-а... 1-2-3 лишних пробела обычно читабельность не нарушают, в отличии от 1-3 табов по 8

D>·>Ну поставь размер таба в 4.
D>и в каком волшебном месте это можно сделать один раз на все?
В том, в котором ты пользуешься. Зачем тебе все?

D>>>а если с кодом надо работать — это проблема форматтера его выровнять так, как я его настроил

D>·>А ещё проблема мержа, диффа, патча, ревьювера и т.п.
D>нет у меня такой проблемы... "ignore spaces" рулит
Оно не рулит. Оно делает менее информативный дифф, что может запутать ревьювера.
Т.к. когда отступы меняются не по прихоти очередного ре-формата, а реально — это должно означать, что меняется структура кода. Т.е. если у тебя было
if(a)
    b;
c;

а стало
if(a)
{
    b;
    c;
}

строчка "c;" не появится в диффе. Скрывать из диффа изменение "незначащих" пробелов около "c;" — чревато, ревьювер может не заметить изменение логики.

Мало того, вылезает эта же проблема: "и в каком волшебном месте это можно сделать один раз на все?".

D>·>Для установки дефолтного значения: F9 -> Options -> Viewer Settings -> Tab size

D>·>Для временного изменения в открытом просмотрщике: Alt+Shift+F9 -> Tab size
D>раз
Т.е. ты будешь меня мучить пока на найдёшь кривые проги, которые настроить нормально нельзя?

D>даю еще минуту для Notepada

Фтопку notepad, кто им пользуется?!

D>ну и чтобы два раза не вставать — для просмотрщика строк в отладчике студии (и для текста, для и xml)

Отладчик Студии отображает не код (или ты компиляторы пишешь?).

D>·>Т.е. тебе просто тупо не нравится дефолт в 8 пробелов. Можешь себе локальный рай устроить — поменяй дефолт в 4 пробела.

D>мне тупо не нравится/лень/нет времени ползать по настройкам разных программных продуктов и устанавливать у них размер таба
D>был приятно удивлен, что есть любители подобного времяпровождения
Один раз настраивается и забывается.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[16]: Табуляция
От: mDmitriy Россия  
Дата: 16.07.16 07:45
Оценка:
Здравствуйте, ·, Вы писали:
D>>и в каком волшебном месте это можно сделать один раз на все?
·>В том, в котором ты пользуешься. Зачем тебе все?
потому что я пользуюсь всем, что наиболее удобно в данный момент
вот понадобился просмотрщик огромных логов — ох, пля...
какой-то сумрачный гений кододизайна решил, что оформлять лог табами — это и есть реализация вековой мечты человечества
"и места меньше занимает"(с), ага...

·>Оно не рулит. Оно делает менее информативный дифф, что может запутать ревьювера.

·>Т.к. когда отступы меняются не по прихоти очередного ре-формата, а реально — это должно означать, что меняется структура кода. Т.е. если у тебя было
·>Мало того, вылезает эта же проблема: "и в каком волшебном месте это можно сделать один раз на все?".
не вылезает... форматтер, который сам меняет логику кода, отправляется в корзину и заносится в черный список один раз и навсегда

·>Фтопку notepad, кто им пользуется?!

я пользуюсь... очень удобный для моих задач
основной недостаток — запускается только один процесс
итак, с notepad вы не справились

D>>ну и чтобы два раза не вставать — для просмотрщика строк в отладчике студии (и для текста, для и xml)

·>Отладчик Студии отображает не код (или ты компиляторы пишешь?).
если я в переменной передаю код, который должен быть динамически скомпилирован, то отладчик отобразит код, как это ни странно
итак, студию вы тоже не победили

·>Один раз настраивается и забывается.

я так и делаю — один раз настраиваю в коде запрет табуляции
Re[17]: Табуляция
От: · Великобритания  
Дата: 16.07.16 08:49
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>·>В том, в котором ты пользуешься. Зачем тебе все?

D>потому что я пользуюсь всем, что наиболее удобно в данный момент
D>вот понадобился просмотрщик огромных логов — ох, пля...
D>какой-то сумрачный гений кододизайна решил, что оформлять лог табами — это и есть реализация вековой мечты человечества
D>"и места меньше занимает"(с), ага...
less умеет размер табов. bash тоже. В любом случае, ты не пользуешься всеми инструментами, ты повседневно пользуешься максиум десятком. А если даже и изредка приходится воспользоваться каким-то новым — 8 табов выглядят непривычно, но не смертельно. Больше проблем обычно доставляет другие отличия — размер/цвет/тип шрифтов.

D>·>Оно не рулит. Оно делает менее информативный дифф, что может запутать ревьювера.

D>·>Т.к. когда отступы меняются не по прихоти очередного ре-формата, а реально — это должно означать, что меняется структура кода. Т.е. если у тебя было
D>·>Мало того, вылезает эта же проблема: "и в каком волшебном месте это можно сделать один раз на все?".
D>не вылезает...
Как это? Ты сходу назовёшь как в github/gerrit/gitlab/kdiff3/diff/vmdiff/tortoisemerge включить игнорирование пробелов?

А вообще, если ты постоянно переформатируешь количество пробелов, то наличие табов проблемой не будет.

D>форматтер, который сам меняет логику кода, отправляется в корзину и заносится в черный список один раз и навсегда

Ты не понял. Логику меняет программист, а ревьювер, по привычке игнорировния пробелов, т.к. код постоянно переформатируется, не замечает это изменение.

D>·>Фтопку notepad, кто им пользуется?!

D>я пользуюсь... очень удобный для моих задач
D>основной недостаток — запускается только один процесс
Это не единственный недостаток. В любом случае, даже в нём лучше использовать табы. Выглядят они конечно, не очень приятно, но терпимо, а вот редактировать с табами гораздо проще. Стирать/набирть/навигировать по 4 пробела сложнее, чем один таб. А auto-indent он не умеет.

D>итак, с notepad вы не справились

С notepad справляются просто — используют notepad++ или чего угодно другое более вменяемое.

D>>>ну и чтобы два раза не вставать — для просмотрщика строк в отладчике студии (и для текста, для и xml)

D>·>Отладчик Студии отображает не код (или ты компиляторы пишешь?).
D>если я в переменной передаю код, который должен быть динамически скомпилирован, то отладчик отобразит код, как это ни странно
D>итак, студию вы тоже не победили
Я Студию последний раз больше 10 лет назад видел, понятия не имею. С современными IDE проблем нет.

D>·>Один раз настраивается и забывается.

D>я так и делаю — один раз настраиваю в коде запрет табуляции
Каким образом можно настроить запрет табуляции или запрет использования неправильного количества пробелов? Притом один раз?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[18]: Табуляция
От: mDmitriy Россия  
Дата: 17.07.16 18:10
Оценка:
Здравствуйте, ·, Вы писали:
·>less умеет размер табов. bash тоже. В любом случае, ты не пользуешься всеми инструментами, ты повседневно пользуешься максиум десятком. А если даже и изредка приходится воспользоваться каким-то новым — 8 табов выглядят непривычно, но не смертельно. Больше проблем обычно доставляет другие отличия — размер/цвет/тип шрифтов.
вы путаете теплое с мягким: шрифты и пр. — это особенности дефолтовых настроек конкретного инструмента, а табы — часть контента

·>Как это? Ты сходу назовёшь как в github/gerrit/gitlab/kdiff3/diff/vmdiff/tortoisemerge включить игнорирование пробелов?

не назову... но точно знаю, что эту галку я исправно ставлю в визарде мержинга, как и игнор регистра
запоминается она в постоянных настройки или нет — не знаю
поскольку галка доступна в процессе, меня не напрягает ее поставить

·>А вообще, если ты постоянно переформатируешь количество пробелов, то наличие табов проблемой не будет.

потому что я сохраняю код уже без них — поэтому и не будет

·>Ты не понял. Логику меняет программист, а ревьювер, по привычке игнорировния пробелов, т.к. код постоянно переформатируется, не замечает это изменение.

не встречал ревьюера, чтобы сам расставлял блоки кода по отступам

·>Это не единственный недостаток. В любом случае, даже в нём лучше использовать табы. Выглядят они конечно, не очень приятно, но терпимо, а вот редактировать с табами гораздо проще. Стирать/набирть/навигировать по 4 пробела сложнее, чем один таб. А auto-indent он не умеет.

а я в нем ничего и не набираю — только смотрю

·>С notepad справляются просто — используют notepad++ или чего угодно другое более вменяемое.

пардон, я и имел ввиду notepad++, разумеется...

·>Я Студию последний раз больше 10 лет назад видел, понятия не имею. С современными IDE проблем нет.

VS 2015 считается вроде как вполне себе современное IDE

·>Каким образом можно настроить запрет табуляции или запрет использования неправильного количества пробелов? Притом один раз?

VS, Решарпер и автоформат без фанатизма при сохранении
Re[19]: Табуляция
От: · Великобритания  
Дата: 17.07.16 18:33
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>·>less умеет размер табов. bash тоже. В любом случае, ты не пользуешься всеми инструментами, ты повседневно пользуешься максиум десятком. А если даже и изредка приходится воспользоваться каким-то новым — 8 табов выглядят непривычно, но не смертельно. Больше проблем обычно доставляет другие отличия — размер/цвет/тип шрифтов.

D>вы путаете теплое с мягким: шрифты и пр. — это особенности дефолтовых настроек конкретного инструмента, а табы — часть контента
_Ширина_ табов — это особенности дефолтовых настроек конкретного инструмента.

D>·>Как это? Ты сходу назовёшь как в github/gerrit/gitlab/kdiff3/diff/vmdiff/tortoisemerge включить игнорирование пробелов?

D>не назову... но точно знаю, что эту галку я исправно ставлю в визарде мержинга, как и игнор регистра
D>запоминается она в постоянных настройки или нет — не знаю
D>поскольку галка доступна в процессе, меня не напрягает ее поставить
Чем галка принципиально отличается от поля с циферкой "размер таба"?

D>·>А вообще, если ты постоянно переформатируешь количество пробелов, то наличие табов проблемой не будет.

D>потому что я сохраняю код уже без них — поэтому и не будет
Да и с ними не будет.

D>·>Ты не понял. Логику меняет программист, а ревьювер, по привычке игнорировния пробелов, т.к. код постоянно переформатируется, не замечает это изменение.

D>не встречал ревьюера, чтобы сам расставлял блоки кода по отступам
Перечитай ещё раз на что отвечаешь. Ты в смысл фразы не вникаешь что-ли? Или я как-то непонятно пишу? Каким образом из моих слов можно вывести, что ревьювер что-то расставляет?

D>·>Это не единственный недостаток. В любом случае, даже в нём лучше использовать табы. Выглядят они конечно, не очень приятно, но терпимо, а вот редактировать с табами гораздо проще. Стирать/набирть/навигировать по 4 пробела сложнее, чем один таб. А auto-indent он не умеет.

D>а я в нем ничего и не набираю — только смотрю
Хых, даже less и то лучше для просмотра файлов.

D>·>С notepad справляются просто — используют notepad++ или чего угодно другое более вменяемое.

D>пардон, я и имел ввиду notepad++, разумеется...
Ээээ... Ну тогда и проблем нет: http://stackoverflow.com/questions/23181724/how-i-can-increase-tab-width-in-notepad-v6-5

D>·>Я Студию последний раз больше 10 лет назад видел, понятия не имею. С современными IDE проблем нет.

D>VS 2015 считается вроде как вполне себе современное IDE
Я её не видел, последнюю я видел вроде 2003 что-ли, проблем с табами не помню. Поковыряйся в настройках, должно быть.

D>·>Каким образом можно настроить запрет табуляции или запрет использования неправильного количества пробелов? Притом один раз?

D>VS, Решарпер и автоформат без фанатизма при сохранении
_запрет_? Т.е. если я файлик поредактирую в notepad какая магия заставит поставить правильное количество пробелов?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[10]: Табуляция
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 18.07.16 00:28
Оценка:
Здравствуйте, seregaa, Вы писали:

S>Ответил в предыдущем сообщении.


Только про github.
Что делать с WinMerge и прочим зоопарком инструментов? WinMerge имеет ровно одну глобальную настройку — табы, либо пробелы. Нельзя настроить пробелы для C# и табы для JS. У нас везде кроме фронт-енда используются пробелы, а архитектор фронтенда любит табы и каждые две-три недели ругается что чей-то коммит ему опять всю разметку испортил.
С уважением, Artem Korneev.
Re[20]: Тот чувак, который юзает таб в 8 пробелов
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 18.07.16 01:23
Оценка:
Здравствуйте, ·, Вы писали:

·> пробелы запрещены для отступов законодательно, высшая мера наказания и кода с пробелами не существует.


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

SomeClass.SomeMethod(
    Argument1,
    Argument2,
    Argument3,
    Argument4,
    Argument5,
    Argument6,
);


Таких вызовов было почти с десяток, разбросанных по коду.
Потом этот код отрефакторили, убрали большую часть аргументов и переформатировали, переписав в одну строчку

SomeClass.SomeMethod(Argument1, Argument2);


Но при этом разделителем остался таб, т.е. фактически там было:

SomeClass.SomeMethod(Argument1,\tArgument2);


А ещё через пару недель один разработчик решил поменять параметры местами и сделал это через поиск и замену. И, разумеется, он поменял строку "Argument1, Argument2" на "Argument2, Argument1", но в одном месте, где между аргументами попался таб, аргументы так и остались в том же порядке.
С уважением, Artem Korneev.
Отредактировано 18.07.2016 1:29 Artem Korneev . Предыдущая версия .
Re[11]: Табуляция
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 18.07.16 02:49
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Что делать с WinMerge и прочим зоопарком инструментов? WinMerge имеет ровно одну глобальную настройку — табы, либо пробелы. Нельзя настроить пробелы для C# и табы для JS. У нас везде кроме фронт-енда используются пробелы, а архитектор фронтенда любит табы и каждые две-три недели ругается что чей-то коммит ему опять всю разметку испортил.


Но виноват, разумеется, не зоопарк у вас в проекте, а табы.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[20]: Табуляция
От: mDmitriy Россия  
Дата: 18.07.16 08:04
Оценка:
Здравствуйте, ·, Вы писали:
·>_Ширина_ табов — это особенности дефолтовых настроек конкретного инструмента.
что при отсутствии табов вообще не имеет значения

·>Чем галка принципиально отличается от поля с циферкой "размер таба"?

еще раз — галка попадается по ходу мержинга, ее не надо отдельно искать в настройках

·>Да и с ними не будет.

если бы их не было, не было бы всего этого треда вообще

·>Перечитай ещё раз на что отвечаешь. Ты в смысл фразы не вникаешь что-ли? Или я как-то непонятно пишу? Каким образом из моих слов можно вывести, что ревьювер что-то расставляет?

·>Т.к. когда отступы меняются не по прихоти очередного ре-формата, а реально — это должно означать, что меняется структура кода. Т.е. если у тебя было
·>if(a)
·> b;
·>c;

·>а стало

·>if(a)
·>{
·> b;
·> c;
·>}

а это кто писал? или это не изменение структуры кода?

D>>а я в нем ничего и не набираю — только смотрю

·>Хых, даже less и то лучше для просмотра файлов.
может быть... но не попадался пока

·>Ээээ... Ну тогда и проблем нет: http://stackoverflow.com/questions/23181724/how-i-can-increase-tab-width-in-notepad-v6-5

итак, 2 программных продукта победили, ура

·>Я её не видел, последнюю я видел вроде 2003 что-ли, проблем с табами не помню. Поковыряйся в настройках, должно быть.

опять 25... зачем мне ковыряться в настройках, если у меня табов нет и не будет7

·>_запрет_? Т.е. если я файлик поредактирую в notepad какая магия заставит поставить правильное количество пробелов?

причем тут нотепад? я код пишу в студии, он меня там и волнует
в студии есть механизм автоматического избавления от табов
Re[21]: Табуляция
От: · Великобритания  
Дата: 18.07.16 10:23
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>·>_Ширина_ табов — это особенности дефолтовых настроек конкретного инструмента.

D>что при отсутствии табов вообще не имеет значения
А при отсутствии цветных мониторов не имеет значения настройки цвета. И что? К чему клонишь-то?

D>·>Чем галка принципиально отличается от поля с циферкой "размер таба"?

D>еще раз — галка попадается по ходу мержинга, ее не надо отдельно искать в настройках
Т.е. аппелируешь к особенностям конкретного UI, клёво.
А если подумать, это лишь говорит о том, что бардак с пробелами случается чаще и доставляет больше проблем, чем с табами. Поэтому и вынесли этот пунктик в основной сценарий использования UI.

D>·>Да и с ними не будет.

D>если бы их не было, не было бы всего этого треда вообще
Если бы никто пробелами не делал отступы — тоже бы треда не было вообще. И что?

D>а это кто писал? или это не изменение структуры кода?

Я писал, что код меняет программист. А ревьювер — ревьювит, с рекомеднованным тобой игнором пробельных символов. Мой тезис — игнорировать изменение пробельных символов — плохая практика ведущая к проблемам. И, как я вижу, вынужденная при частом использовании автоформаттеров пробелов, что неизбежно, ибо не существует единственно верного количества пробелов в отступах. Если отступы сделаны табами, то переформатировать не надо вообще, достаточно менять ширину табов в настройках конкретных инструментов.

Если всё равно непонятно, попробуй подумать с другой стороны. Зачем вообще делают отступы? Если они так не важны — не делай их вообще, тогда и игнорировать не придётся, и автоформаттеры не нужны. А если таки важны, то почему ты решил они становятся неважны в диффе, почему ты предлагаешь их игнорировать?

D>·>Ээээ... Ну тогда и проблем нет: http://stackoverflow.com/questions/23181724/how-i-can-increase-tab-width-in-notepad-v6-5

D>итак, 2 программных продукта победили, ура
Да собственно любые более менее современные профессиональные редакторы/просмотрщики/среды позволяют.

D>·>Я её не видел, последнюю я видел вроде 2003 что-ли, проблем с табами не помню. Поковыряйся в настройках, должно быть.

D>опять 25... зачем мне ковыряться в настройках, если у меня табов нет и не будет7
Затем же зачем ты ковыряешься с автоформаттерами, количеством пробелов, игнором пробелов и прочей фигнёй.

D>·>_запрет_? Т.е. если я файлик поредактирую в notepad какая магия заставит поставить правильное количество пробелов?

D>причем тут нотепад? я код пишу в студии, он меня там и волнует
D>в студии есть механизм автоматического избавления от табов
Причём тут табы? Я спрашиваю "поставить правильное количество пробелов".
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: А вы выравниваете код?
От: 0BD11A0D  
Дата: 18.07.16 21:59
Оценка:
Здравствуйте, UberPsychoSvin, Вы писали:

UPS>
UPS>-- НЕ ВЫРОВНЕННАЯ ВЕРСИЯ.
UPS>CREATE TABLE DocStream (
UPS>    Id BIGINT NOT NULL,
UPS>    MD5 CHAR(32) NULL,
UPS>    SHA1 CHAR(40) NULL,
UPS>    Status INT NOT NULL
UPS>);
UPS>

UPS>
UPS>-- ВЫРОВНЕННАЯ ВЕРСИЯ.
UPS>CREATE TABLE DocStream (
UPS>    Id     BIGINT   NOT NULL,
UPS>    MD5    CHAR(32) NULL,
UPS>    SHA1   CHAR(40) NULL,
UPS>    Status INT      NOT NULL
UPS>);
UPS>


UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.


-- ВЫРОВНЕННАЯ ВЕРСИЯ.
create table DocStream
(
    Id        bigint      not null,
    Md5       char(32)    null,
    Sha1      char(40)    null,
    Status    int         not null
);
Отредактировано 18.07.2016 22:01 0BD11A0D . Предыдущая версия .
Re[3]: А вы выравниваете код?
От: CreatorCray  
Дата: 18.07.16 23:40
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>Табуляция только для отступов. Иначе всё поедет при изменении ширины таба.

А кто его когда меняет в здравом рассудке. "Приказои по части" АКА Coding guidelines ставится фиксированная величина, обычно 3-4 пробела и всё. Все у кого иначе ССЗБ и грызут болт.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Табуляция
От: CreatorCray  
Дата: 18.07.16 23:40
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>При чтении в IDE, браузере, текстовом просмотрщике табуляция отображается разной ширины.

Это всё давно настраиваемо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: Табуляция
От: CreatorCray  
Дата: 18.07.16 23:40
Оценка:
Здравствуйте, mDmitriy, Вы писали:

D>например, просмотр в редакторе с табом по умолчанию 8 не гарантирует несъезжание за пределы экрана

Один раз исправляется размер таба по умолчанию и проблемы больше нет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Тот чувак, который юзает таб в 8 пробелов
От: CreatorCray  
Дата: 18.07.16 23:40
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Так и ты до конца все пункты не рассмотрел. Где настраивается отображаемый размер табуляции в инспекторе Unity 3D или в текст. просмотрщике Total Commander?

Если там нет такой настройки это всего лишь означает что тул — говно!

Q>Не просто «настроить инструмент под себя», а перебрать все установленные на компе мерджилки, текстовые просмотрщики и браузеры, не говоря уже о каких-то консольных утилитах.

Не вижу проблемы. Всё одно environment под проект надо настраивать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[21]: Тот чувак, который юзает таб в 8 пробелов
От: CreatorCray  
Дата: 18.07.16 23:40
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>сделал это через поиск и замену.

И не проверил что оно действительно нашло всё места?
Лишить премии!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: А вы выравниваете код?
От: Evgeny.Panasyuk Россия  
Дата: 19.07.16 00:57
Оценка:
Здравствуйте, CreatorCray, Вы писали:

DR>>Табуляция только для отступов. Иначе всё поедет при изменении ширины таба.

CC>А кто его когда меняет в здравом рассудке. "Приказои по части" АКА Coding guidelines ставится фиксированная величина, обычно 3-4 пробела и всё. Все у кого иначе ССЗБ и грызут болт.

А зачем тогда вообще использовать табы в таком случае, если при изменении отображаемой ширины всё поедет? Если так важна привязка к конкретной ширине логических отступов — то и используй пробелы
(я понимаю когда табы используются для логических отступов + пробелы для фигурного форматирования со стыковкой на соседних уровнях — тогда ничего не уезжает при изменении отображаемой ширины таба)
Re[5]: А вы выравниваете код?
От: CreatorCray  
Дата: 19.07.16 03:03
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>А зачем тогда вообще использовать табы в таком случае, если при изменении отображаемой ширины всё поедет?

Для начала объясните зачем её менять, эту ширину?

EP>Если так важна привязка к конкретной ширине логических отступов — то и используй пробелы

Табы просто удобнее лазать курсором по коду, перескакиваешь за одно нажатие сразу на ширину отступа.

EP>я понимаю когда табы используются для логических отступов + пробелы для фигурного форматирования со стыковкой на соседних уровнях

Дык при единой на всём проекте ширине таба точно так же ничего не едет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Табуляция
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 19.07.16 05:14
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Но виноват, разумеется, не зоопарк у вас в проекте, а табы.


Благородный дон ни разу не видел компании с "over 9000" разработчиков, где в разных проектах, разных командах, на разных языках могут быть разные стандарты кодирования?

Нет никакого зоопарка. Для написания фронт-енда нужно было взаимодействовать с другой командой, которая предоставила свою базу исходных кодов и там принято делать отступы табами. C#-программеры сильно старались, но всё равно эпизодически делали кашу из табов и пробелов — то копи/пастой, то через WinMerge, то ещё как. На код-ревью этих изменений не видно, автоматически они не выявляются, замечает их только UI-архитектор со своим мак-буком, настроенным на два пробела в табе.
С уважением, Artem Korneev.
Re[4]: Табуляция
От: chaotic-kotik  
Дата: 19.07.16 08:04
Оценка:
Здравствуйте, Lexey, Вы писали:

L>Не стоит лепить такое форматирование, для которого критична ширина таба. Тогда и съезжать ничего не будет при изменении его размера.


Не со всеми редакторами это прокатывает. Я когда-то давно использовал visual studio, так эта сволочь заменяла пробелы на табы (у меня табы стояли в настройках) внутри строки, приходилось работать с включенным visible whitespace и заменять все взад. Еще коллеги иногда пакостили, так что привычка работать с visible whitespace осталась у меня до сих пор, даже когда я работаю на проекте, в котором принят другой стандарт кодирования. Может конечно это не студия делала а viemu, я уже не помню точно, честно говоря.
Re[5]: А вы выравниваете код?
От: CreatorCray  
Дата: 19.07.16 09:11
Оценка:
Здравствуйте, Don Reba, Вы писали:

R>либо табами произвольной.

Никогда! Смысл?!

DR>Фиксировать ширину таба было бы очень странно.

Вот как раз прописывают размер таба.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[13]: Табуляция
От: CreatorCray  
Дата: 19.07.16 09:11
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Благородный дон ни разу не видел компании с "over 9000" разработчиков

Я в такой работаю.

AK>где в разных проектах, разных командах, на разных языках могут быть разные стандарты кодирования?

Каждая команда пилит своё, по своим стандартам.

AK> Для написания фронт-енда нужно было взаимодействовать с другой командой, которая предоставила свою базу исходных кодов и там принято делать отступы табами.

А накой самим туда лазать? Выкатывайте им API, они его вам сделают.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: А вы выравниваете код?
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 19.07.16 09:14
Оценка:
Здравствуйте, CreatorCray, Вы писали:

R>>либо табами произвольной.

CC>Никогда! Смысл?!

Смысл табов в том, что они могут быть произвольной ширины. Когда это неприемлемо, то используют пробелы.

DR>>Фиксировать ширину таба было бы очень странно.

CC>Вот как раз прописывают размер таба.

Наверное, всякое бывает, но никогда не встречал.
Ce n'est que pour vous dire ce que je vous dis.
Re: да (-)
От: B0FEE664  
Дата: 19.07.16 10:56
Оценка:
И каждый день — без права на ошибку...
Re[3]: Нет
От: LuciferSaratov Россия  
Дата: 19.07.16 11:02
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>Решается опцией ignore whitespace в диффе.


а как оно работает? изменение количества пробелов внутри строкового литерала оно тоже проигнорирует?
Re[8]: А вы выравниваете код?
От: · Великобритания  
Дата: 19.07.16 14:08
Оценка:
Здравствуйте, CreatorCray, Вы писали:

DR>>Смысл табов в том, что они могут быть произвольной ширины.

CC>Смысл табов — один широкий пробел с автоматической переменной длиной: с выровненной по сетке шага табуляции правой границей и flexible левой. Который визуально может быть длинный а вставить/удалить/перескочить его можно одним нажатием.
Современные редакторы перескакивают как надо, не только по пробельным символам, но и идентификаторам, скобкам и т.п.

CC>Применяется для выравнивания чего либо по общей границе.

Не надо применять табы для выравнивания (alignment). Для этого есть пробелы. Да и вообще выравнивание делать не стоит, ибо проблемы с ним одни.
Табы нужны для отступов (indent), как механизм выражения древовидной структуры (вложенность выражений) посредством линейного текста.

Произвольная ширина табов нужна для того, чтобы можно было один и тот же текст просматривать/редактировать в различных инструментах по-разному.
Ширина таба — компромисс между удобством восприятия структуры (чем шире отступ, тем лучше) и общей горизонтальной шириной текста (чем уже отступ, тем лучше).
Например, когда редакируешь код, удобнее отображать таб как 4 или 6 символов. А когда делаешь 3-way merge, когда отображается три колонки с версиями кода — удобнее смотреть код с шириной таба 1 или 2.
Ещё пример. Некоторые типы кода (конфиг какой-нибудь, например) удобно изображать с широким табом, т.к. вложенность мала и важна, можно поставить 8. А вот html может иметь очень сильную вложенность, то можно уменьшить до 2.

CC>Ни один вменяемый девелопер размер таба в процессе работы не меняет. Он выставляется один раз при конфигурировании environment и больше не трогается. Все проекты точатся под единый размер tab.

Это какой? И почему именно такой?

CC>>>Вот как раз прописывают размер таба.

DR>>Наверное, всякое бывает, но никогда не встречал.
CC>Видимо просто не пересекался с теми, где табами умеют пользоваться правильно.
Жуть. Из-за таких как ты — пробельщики побеждают.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[6]: А вы выравниваете код?
От: Evgeny.Panasyuk Россия  
Дата: 19.07.16 14:55
Оценка:
Здравствуйте, CreatorCray, Вы писали:

EP>>А зачем тогда вообще использовать табы в таком случае, если при изменении отображаемой ширины всё поедет?

CC>Для начала объясните зачем её менять, эту ширину?

Кому-то/где-то удобнее 4, где-то 8 и т.п. В Vim например по-умолчанию 8.

EP>>Если так важна привязка к конкретной ширине логических отступов — то и используй пробелы

CC>Табы просто удобнее лазать курсором по коду, перескакиваешь за одно нажатие сразу на ширину отступа.

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

EP>>я понимаю когда табы используются для логических отступов + пробелы для фигурного форматирования со стыковкой на соседних уровнях

CC>Дык при единой на всём проекте ширине таба точно так же ничего не едет.

Вот выше Skype обсуждали — в нём поедет в том числе.

То есть из четырёх вариантов:
1. Пробелы для индентации и форматирования
2. Табы для индентации, пробелы для форматирования
3. Табы для индентации, фигурное форматирование не используется
4. Табы для индетнации и форматирования, во всех просмотрщиках нужно использовать фиксированную ширину таба.

Ты предлагаешь единственный в котором всё может поехать при другой настройке просмоторщика
Re[7]: А вы выравниваете код?
От: CreatorCray  
Дата: 19.07.16 23:21
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>>>А зачем тогда вообще использовать табы в таком случае, если при изменении отображаемой ширины всё поедет?

CC>>Для начала объясните зачем её менять, эту ширину?
EP>Кому-то/где-то удобнее 4, где-то 8 и т.п. В Vim например по-умолчанию 8.

Есть проект и жёстко заданные guidelines для проекта. Вопрос "а мне так удобнее" не стоит в принципе.

EP>Вот выше Skype обсуждали — в нём поедет в том числе.


Затачиваться на смотрение кода скайпом — странный use case.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: А вы выравниваете код?
От: CreatorCray  
Дата: 19.07.16 23:21
Оценка:
Здравствуйте, ·, Вы писали:

·>Современные редакторы перескакивают как надо, не только по пробельным символам, но и идентификаторам, скобкам и т.п.

Это какие? Emacs?
Сколько кнопок надо для этого нажать?

CC>>Ни один вменяемый девелопер размер таба в процессе работы не меняет. Он выставляется один раз при конфигурировании environment и больше не трогается. Все проекты точатся под единый размер tab.

·>Это какой? И почему именно такой?
Какой указан в coding standard для проекта.

CC>>Видимо просто не пересекался с теми, где табами умеют пользоваться правильно.

·>Жуть. Из-за таких как ты — пробельщики побеждают.
Башню 16го века тоже я развалил?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: А вы выравниваете код?
От: CreatorCray  
Дата: 20.07.16 00:31
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Речь о том почему в эти жёстко заданные guidelines попала ширина отображения таба

Да хотя бы для устранения вот таких вот непоняток.

EP> точнее насколько это вообще оправданно, и стоит ли применять в других проектах.

По опыту — стоит. Нет никаких непоняток с табами.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: А вы выравниваете код?
От: · Великобритания  
Дата: 20.07.16 06:45
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>·>Современные редакторы перескакивают как надо, не только по пробельным символам, но и идентификаторам, скобкам и т.п.

CC>Это какие? Emacs?
CC>Сколько кнопок надо для этого нажать?
IDEA, ctrl+стрелки — ходить по идентификаторам/отступам. Клавиша Home ставит в начало строки или на первый непробельный символ в строке.

CC>>>Ни один вменяемый девелопер размер таба в процессе работы не меняет. Он выставляется один раз при конфигурировании environment и больше не трогается. Все проекты точатся под единый размер tab.

CC>·>Это какой? И почему именно такой?
CC>Какой указан в coding standard для проекта.
Богом данный? А рациональные доводы есть?

CC>>>Видимо просто не пересекался с теми, где табами умеют пользоваться правильно.

CC>·>Жуть. Из-за таких как ты — пробельщики побеждают.
CC>Башню 16го века тоже я развалил?
Башню-то ещё можно простить...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[5]: А вы выравниваете код?
От: Dair Россия  
Дата: 20.07.16 10:43
Оценка:
Здравствуйте, Gattaka, Вы писали:

DR>>Я чаще работаю в Виме, чем в Студии. А Решарпер умеет делать табличное форматирование?


G>Не знаю, я бы запретил...


... Решарперу делать табличное форматирование?..
Re: А вы выравниваете код?
От: Dair Россия  
Дата: 20.07.16 10:46
Оценка:
Здравствуйте, UberPsychoSvin, Вы писали:


UPS>Вторая вроде бы лучше читается, но я так на всякий случай никогда не делаю, потому что ни в каких "coding convention" таких советов не читал.


На себе заметил, что взгляд на второй замыливается быстрее, если есть ошибка — замечаю хуже чем в первом случае.
Re[9]: Остроконечники vs. тупоконечники
От: oziro Нигерия  
Дата: 20.07.16 15:31
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>"Больше ада! Больше угара! Внесите чучело козла!" (С) Belnetmon


кстати, куда он пропал? Раньше читал периодически его ЖЖ, сейчас все исчезло
Re: А вы выравниваете код?
От: vsb Казахстан  
Дата: 20.07.16 16:03
Оценка:
Конкретно create table в SQL выравниваю. Больше ничего ни в каких языках так не выравниваю.
Re[9]: Остроконечники vs. тупоконечники
От: Dair Россия  
Дата: 20.07.16 16:47
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>"Больше ада! Больше угара! Внесите чучело козла!" (С) Belnetmon


Ба, да вы знакомы с ребе Кахесом?..
Re[10]: Остроконечники vs. тупоконечники
От: Dair Россия  
Дата: 20.07.16 17:15
Оценка:
Здравствуйте, oziro, Вы писали:

CC>>"Больше ада! Больше угара! Внесите чучело козла!" (С) Belnetmon

O>кстати, куда он пропал? Раньше читал периодически его ЖЖ, сейчас все исчезло

"Ребе Кахес" сбежал из ЖЖ в Facebook, где отгородился от анонимных троллей, которые порой набегали.
Re[4]: Ignore whitespaces
От: Философ Ад http://vk.com/id10256428
Дата: 20.07.16 19:02
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>А зачем их ignore? Их не надо ignore. Кроме того, это не спасёт от конфликтов. Скажем, в такой табличке кто-то в одной строке изменил тип, увеличив его на пару символов; кто-то другой исправил имя в другой строке, уменьшив самую длинную строку. Оба переверстали.


Да ну нафиг такую работу с кодом, и такую организацию работы вообще.
Вы там одну и ту же строку не правите часом параллельно?
Всё сказанное выше — личное мнение, если не указано обратное.
Re[10]: Остроконечники vs. тупоконечники
От: CreatorCray  
Дата: 26.07.16 04:13
Оценка:
Здравствуйте, Dair, Вы писали:

CC>>"Больше ада! Больше угара! Внесите чучело козла!" (С) Belnetmon

D>Ба, да вы знакомы с ребе Кахесом?..
Отож!
На белнетмоновках с ним бухали, да.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Остроконечники vs. тупоконечники
От: Dair Россия  
Дата: 26.07.16 12:08
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>>>"Больше ада! Больше угара! Внесите чучело козла!" (С) Belnetmon

D>>Ба, да вы знакомы с ребе Кахесом?..
CC>Отож!
CC>На белнетмоновках с ним бухали, да.

Я с ним выпивал пиво, когда Минск посещал, пару раз, да
Re[3]: А вы выравниваете код?
От: vsb Казахстан  
Дата: 26.07.16 18:08
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Здравствуйте, vsb, Вы писали:


vsb>>....Больше ничего ни в каких языках так не выравниваю.


Ф>Это ты ни с чем подобным не сталкивался просто.


Ф>
Ф>#define F(x,y,z) (z ^ (x & (y ^ z)))

Ф>    P( A, B, C, D,  0,  7, 0xD76AA478 );
Ф>    P( D, A, B, C,  1, 12, 0xE8C7B756 );
Ф>    P( C, D, A, B,  2, 17, 0x242070DB );
Ф>    P( B, C, D, A,  3, 22, 0xC1BDCEEE );
Ф>    P( A, B, C, D,  4,  7, 0xF57C0FAF );
Ф>    P( D, A, B, C,  5, 12, 0x4787C62A );
Ф>    P( C, D, A, B,  6, 17, 0xA8304613 );
Ф>    P( B, C, D, A,  7, 22, 0xFD469501 );
Ф>    P( A, B, C, D,  8,  7, 0x698098D8 );
Ф>    P( D, A, B, C,  9, 12, 0x8B44F7AF );
Ф>    P( C, D, A, B, 10, 17, 0xFFFF5BB1 );
Ф>    P( B, C, D, A, 11, 22, 0x895CD7BE );
Ф>    P( A, B, C, D, 12,  7, 0x6B901122 );
Ф>    P( D, A, B, C, 13, 12, 0xFD987193 );
Ф>    P( C, D, A, B, 14, 17, 0xA679438E );
Ф>    P( B, C, D, A, 15, 22, 0x49B40821 );

Ф>#undef F

Ф>#define F(x,y,z) (y ^ (z & (x ^ y)))

Ф>    P( A, B, C, D,  1,  5, 0xF61E2562 );
Ф>    P( D, A, B, C,  6,  9, 0xC040B340 );
Ф>    P( C, D, A, B, 11, 14, 0x265E5A51 );
Ф>    P( B, C, D, A,  0, 20, 0xE9B6C7AA );
Ф>    P( A, B, C, D,  5,  5, 0xD62F105D );
Ф>    P( D, A, B, C, 10,  9, 0x02441453 );
Ф>    P( C, D, A, B, 15, 14, 0xD8A1E681 );
Ф>    P( B, C, D, A,  4, 20, 0xE7D3FBC8 );
Ф>    P( A, B, C, D,  9,  5, 0x21E1CDE6 );
Ф>    P( D, A, B, C, 14,  9, 0xC33707D6 );
Ф>    P( C, D, A, B,  3, 14, 0xF4D50D87 );
Ф>    P( B, C, D, A,  8, 20, 0x455A14ED );
Ф>    P( A, B, C, D, 13,  5, 0xA9E3E905 );
Ф>    P( D, A, B, C,  2,  9, 0xFCEFA3F8 );
Ф>    P( C, D, A, B,  7, 14, 0x676F02D9 );
Ф>    P( B, C, D, A, 12, 20, 0x8D2A4C8A );

Ф>#undef F
Ф>


Подобный код обычно выношу в CSV-файлы, БД и тд, поэтому в коде с ним работать не приходится (конкретно этот случай похож на что-то криптографическое, поэтому конкретно тут, конечно, по-другому смысла делать нет, я в общем).
Re[14]: Табуляция
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 31.07.16 20:51
Оценка:
Здравствуйте, CreatorCray, Вы писали:

AK>>Благородный дон ни разу не видел компании с "over 9000" разработчиков

CC>Я в такой работаю.

И?.. Вы в своей компании можете повесить какую-то задачу другой команде просто потому что они сделают это лучше?

AK>> Для написания фронт-енда нужно было взаимодействовать с другой командой, которая предоставила свою базу исходных кодов и там принято делать отступы табами.

CC>А накой самим туда лазать? Выкатывайте им API, они его вам сделают.

Ну на словах-то всё легко звучит. С какой радости другая команда будет тратить несколько человеко-месяцев чтоб пилить UI другого проекта? У всех своей работы хватает.

В одном из проектов нужно сделать web UI. В наличии имеются C# full-stack разработчики, т.е. подразумевается, что вёб они делать умеют, пусть и не так хорошо как специализированные UI-разработчики. Далее, UI-команда предоставляет свой фреймворк с кучей готовых модулей, команде full-stack разработчиков остаётся добавить туда свои странички и прикрутить их к имеющемуся фреймворку. Код-ревью делается UI-архитектором из UI-команды, некоторые удачные модули переходят потом в состав основного UI-фреймворка.
С уважением, Artem Korneev.
Re[22]: Тот чувак, который юзает таб в 8 пробелов
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 31.07.16 20:52
Оценка:
Здравствуйте, CreatorCray, Вы писали:

AK>>сделал это через поиск и замену.

CC>И не проверил что оно действительно нашло всё места?
CC>Лишить премии!

Я так думаю, что его не только премии лишили. Но это уже другая история.
С уважением, Artem Korneev.
Re[22]: Тот чувак, который юзает таб в 8 пробелов
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 31.07.16 20:54
Оценка:
Здравствуйте, ·, Вы писали:

·>Таб тут причём? Та же грустная история произошла бы, если бы был не таб, а два пробела.


Два пробела визуально видны. Таб визуально не отличим от N-го количества пробелов.

·>Мораль одна: пишите юнит-тесты. Без них за рефакторинг лучше не браться, особенно если используется примитивная IDE.


Некоторые вещи практически невозможно покрыть юниттестами. Их покрывают функциональными тестами, но в этом случае трудно убедиться в хорошем покрытии кода тестами.
С уважением, Artem Korneev.
Re: Re:
От: о_О
Дата: 31.07.16 21:24
Оценка:
20й раз вижу тему и уже который раз читаю "выращиваете". Я вот код не выравниваю, я его выращиваю
Re[23]: Тот чувак, который юзает таб в 8 пробелов
От: · Великобритания  
Дата: 03.08.16 19:34
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>·>Таб тут причём? Та же грустная история произошла бы, если бы был не таб, а два пробела.

AK>Два пробела визуально видны. Таб визуально не отличим от N-го количества пробелов.
Ээээ... И?

AK>·>Мораль одна: пишите юнит-тесты. Без них за рефакторинг лучше не браться, особенно если используется примитивная IDE.

AK>Некоторые вещи практически невозможно покрыть юниттестами. Их покрывают функциональными тестами, но в этом случае трудно убедиться в хорошем покрытии кода тестами.
Тогда нефиг рефакторинг делать.
Пробелы/табы тут вообще не причем.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.