Re: braces in C++
От: CreatorCray  
Дата: 20.04.10 17:22
Оценка: +4 -8
Здравствуйте, <Аноним>, Вы писали:

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


А>
А>if (a)
А>    f();
А>

Хорошо и правильно

А>
А>if (a)
А>{
А>    f();
А>}
А>

Избыточно и неоправданно. Оправдания про "а вдруг понадобится" несостоятельны.

А>
А>if (a) {
А>    f();
А>}
А>

Нечитабельно + избыточно

А>И еще коллега возмущается, что я везде использую

А>
А>std::
А>

А>Он везде использует using namespase std;
по мне так std:: лучше
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: braces in C++
От: CreatorCray  
Дата: 20.04.10 17:22
Оценка: 1 (1) +8 -1
Здравствуйте, TarasKo, Вы писали:

TK>И есть под этим основание.

TK>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось

TK>
TK>if (var)
TK>  f();
TK>  f1();
TK>  f2();

TK>


C'mon!
Эта отмазка стара как говно мамонта.
Если он пребывал в таком астрале то ничто ему не мешало дописать то же самое после скобки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: braces in C++
От: placement_new  
Дата: 20.04.10 15:45
Оценка: 3 (3) +3
Здравствуйте, Аноним, Вы писали:

Подобные вещи решаются не количеством опыта и длинной письки, а стандартом кодирования в компании.
Re: braces in C++
От: TarasKo Голландия  
Дата: 20.04.10 16:30
Оценка: 1 (1) +3 -2
По поводу скобок. Я тоже приучен их ставить всегда. Причем скобку на той же строке что и if
ну то есть

if (var) {
  f();
}


И есть под этим основание.
Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось

if (var)
  f();
  f1();
  f2();


Классическая ситуация, 10 вечера перед релизом. Программа вела себя как-то странно, через некоторое время в дебаггере увидел что в этом месте творится чертовщина, почему-то f1(), f2() не исполняются (напоминаю 10 вечер, уставший, охота домой баг непонятный и критичный). Я всегда такие вещи видел, а именно в тот момент, я смотрел и тупил. А я потратил час прежде чем мой воспаллённый мозг понял в чём дело. И когда я понял возненавидел этого программиста

Это дейстивтельно нужное правило в Code Convention, оно предотвращает баги. Оно действительно, полезно и нужно, оно намного ценне чем 2 или 4 пробела, или где ставить скобочку фигурную, на той же строке или на следующей.
Re[2]: braces in C++
От: rg45 СССР  
Дата: 20.04.10 23:10
Оценка: 1 (1) +3 -1
Здравствуйте, TarasKo, Вы писали:

TK>И есть под этим основание.

TK>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось

TK>
TK>if (var)
TK>  f();
TK>  f1();
TK>  f2();
TK>


Ты всерьез считаешь, что если лепить скобки где ни попадя, то вероятность ошибок снижается? А я бы наоборот вместо того, чтоб утверждать обязательность расстановки скобок, смотрел бы в сторону уменьшения их количества. По-моему, обилие скобок в коде — дурной признак. Загромождение кода скобками там, где и без них все понятно, наоборот напрягает глаз и провоцирует ошибки. Когда текст программы рябит скобками, как в МСДН-овских примерах, то вероятность ошибочно внести внутрь блока что-то лишнее так же велика, как и вероятность не включить в него что-то нужное. Ведь если разобраться, хорошо спроектированная программа на С++ с хорошо структурированным кодом читается как поэма и использует минимум скобок — в них попросту отпадает необходимость.
--
Re[4]: braces in C++
От: CreatorCray  
Дата: 20.04.10 21:27
Оценка: +3 -1 :)
Здравствуйте, Roman Odaisky, Вы писали:

RO>А если программист вполне в здравом уме, отсутствие скобок осознаёт, и желает вписать еще пару строк в тело if, то ему придется скобки прикручивать вручную.

Это просто безумно затратно, да!
Куда менее затратно ставить их везде, ведь во всех местах 100% что нить будет дописываться!

RO>Заодно все else гарантированно совмещаются со своими if:


if (c1)
{
    if (c2)
        f1();
    else f2(); // а не удалить ли эту строчку вместе с else?
}
else f3();


Да удаляй на здоровье!
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: braces in C++
От: Alexander G Украина  
Дата: 20.04.10 15:50
Оценка: 1 (1) +3
Здравствуйте, Аноним, Вы писали:

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

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

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

А>Он везде использует using namespase std;

А>Ваше мнение по этому поводу?

Не стоит злоупотреблять using namespace, это убивает пользу от пространсв имён.

В хедерах на уровне файла писать using namespace не следует вообще.

Для длинных namespace удобно создавать локальные alias'ы, но std к таким, разумеется, не относится.
Русский военный корабль идёт ко дну!
Re: braces in C++
От: Ytz https://github.com/mtrempoltsev
Дата: 20.04.10 18:57
Оценка: +3 :)
По поводу скобок вопрос холиварный, по второму же вопросу уверен, что использование неймспейсов значительно повышает читабельность кода. Например:

boost::iostreams::copy(in, out);


или

copy(in, out);


Что понятней?
Re[3]: braces in C++
От: Roman Odaisky Украина  
Дата: 20.04.10 20:01
Оценка: +4
Здравствуйте, CreatorCray, Вы писали:

TK>>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось

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

А если программист вполне в здравом уме, отсутствие скобок осознаёт, и желает вписать еще пару строк в тело if, то ему придется скобки прикручивать вручную. Кто как, а я нахожу намного менее затратным всегда и везде ставить скобки (что некоторые IDE умеют автоматизировать), чем добавлять их при необходимости. Заодно все else гарантированно совмещаются со своими if:

    if(c1)
//  {
        if(c2)
            f1();
        else
            f2(); // а не удалить ли эту строчку вместе с else?
//  }
    else
//  {
        f3();
//  }
До последнего не верил в пирамиду Лебедева.
Re: braces in C++
От: Masterkent  
Дата: 20.04.10 22:38
Оценка: +4
Аноним:

А>только бесило что заставляли ставить скобку в отдельной строке:

А>
А>if (a)
А>{
А>    f();
А>}
А>

А>Требуют, ну и требуют, делаю, но в своих проектах я тоже всегда стал использовать скобки, но:
А>
А>if (a) {
А>    f();
А>}
А>

Покажи, как этот твой любимый стиль будет выглядеть применительно к следующему псевдокоду:

Class::Class(param_list) :
    data_member_1(expr_list_1),
    data_member_2(expr_list_2)
{ // отдельная строка визуально разделяет список инициализации и тело конструктора
    if (condition_1 &&
        consition_2 &&
        condition_3)
    { // отдельная строка визуально разделяет условие и инструкции
        statement
    }
}


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


Я предпочитаю обходиться без лишних фигурных скобок, за исключением случаев, когда уместна разделительная строка, на которой можно разместить "{".

А>И еще коллега возмущается, что я везде использую

А>
А>std::
А>

А>Он везде использует using namespase std;
А>Ваше мнение по этому поводу?

Эт он зря.
Re[5]: braces in C++
От: Erop Россия  
Дата: 21.04.10 07:47
Оценка: +3 -1
Здравствуйте, CreatorCray, Вы писали:

RO>>А если программист вполне в здравом уме, отсутствие скобок осознаёт, и желает вписать еще пару строк в тело if, то ему придется скобки прикручивать вручную.

CC>Это просто безумно затратно, да!
CC>Куда менее затратно ставить их везде, ведь во всех местах 100% что нить будет дописываться!

А "затратно" в каком смысле?
По идее дописывать скобки вообще всегда и на автомате стоит очень мало усилий программисту.
А вот смотреть в каждом случае нужно ли добавить скобок, требует не отключать голову
Кроме того, расстановкой скобок может вообще IDE заниматься...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Я не парюсь
От: neFormal Россия  
Дата: 21.04.10 18:26
Оценка: +3 :)
Здравствуйте, Sheridan, Вы писали:

S>Пишу по разному. Руководствуюсь исключительно читабельностью.

S>
S>    case CDayNight::dnDay:        setStyleSheet ( _dayStyleSheet        ->value().text + _mainStyleSheet->value().text    ); break;
S>}
S>


S>
                                     ui->>rbAltitude                ->isChecked() ||
                                     ui->>rbCourseFromNorth        ->isChecked() ||
S>


тебе повезло, что ты админ..
изза такой "читабельности" можно стать калекой..
...coding for chaos...
Re[4]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 21:53
Оценка: +1 :)))
Приветствую, Ночной Смотрящий, вы писали:

НС> Проблема арт-декора в коде заключается в том, что небольшое переименование потенциально может привести к перефигачиванию всего файла. А нелокальностьизменений это нездорово.

Пользуйтесь системой контроля версий, которая оперирует не строками а символами.

НС>Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга.

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

НС> Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это.

Фигли ее поддерживать? Написал один раз и пользуешся. Ах да... рефакторинг... Расслабились вы, вот что.


Нет, я понимаю, что вы этим деньги зарабатываете, что для многих программирование — как станок для токаря, просто инструмент.
А мне вот нравится над кодом подумать. Сегодня вот целый вечер думал как лучше сохранять одну enum опцию.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[3]: braces in C++
От: Кодт Россия  
Дата: 20.04.10 19:15
Оценка: 3 (1) +2
Здравствуйте, CreatorCray, Вы писали:

CC>Эта отмазка стара как говно мамонта.

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

А сценарии кривого совмещения версий?
Перекуём баги на фичи!
Re[2]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 18:51
Оценка: 3 (1) +2
Приветствую, neFormal, вы писали:

F> тебе повезло, что ты админ..

F> изза такой "читабельности" можно стать калекой..


[Картинка, 31'179 байт]


[Картинка, 107'652 байт]


[Картинка, 104'617 байт]


Ты продолжишь утверждать о нечитабельности? о0
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[3]: braces in C++
От: x64 Россия http://x64blog.name
Дата: 21.04.10 13:52
Оценка: 1 (1) +1 :)
E>Такой стиль написания функций вроде как почти общеприянт.

А вот хрен там, например, скобки () обычно слитно пишут с именем функции, я же пробел ставлю, ибо сливаются иначе (

E>Ты вот про if-else расскажи, например, или про switch...


Ну а что рассказывать-то? Я вот так пишу обычно:

//
// Пример компактного if.
//

if (condition)
{
    //
    // Пример аккуратного switch.
    //

    switch (variable)
    {
        case value1: return value3;
        case value2: return value2;
        case value3: return value1;
        ...
    }
}

//
// Пример громоздкого if.
//

else if (

    very_long_condition_string &&
    another_very_long_condition_string)

{
    //
    // Пример большого switch.
    //

    switch (

        very_long_expression_string)

    {
        //
        // Здесь пояснение насчёт value 1.
        //

        case value1:
        {
            //
            // Возвращаем значение value 3.
            //

            return value3;
        }

        //
        // Здесь пояснение насчёт value 2.
        //

        case value2:
        {
            //
            // Выходим из switch-а.
            //

            break;
        }

        ...
    }
}

//
// Пример огромного if.
//

else if (

    (very_long_condition_string &&
    another_very_long_condition_string)

    ||

    (very_long_condition_string &&
    another_very_long_condition_string)

    ||

    (very_long_condition_string &&
    another_very_long_condition_string))

{
    //
    // Пример цикла for.
    //

    for (

        i = 0;
        i < uCount;
        i ++)

    {
        //
        // Присваивание элемента массива.
        //

        awCharacters [i] =
            ver_long_expression_string;
    }
}
JID: x64j@jabber.ru
Re[5]: Я не парюсь
От: neFormal Россия  
Дата: 21.04.10 20:15
Оценка: 1 (1) +1 :)
Здравствуйте, Sheridan, Вы писали:

F>> S>Ты продолжишь утверждать о нечитабельности? о0

F>> оторвать руки и пришить новые.. вдруг они такой шлак будут отказываться писать..
S>Чтото я не могу понять смысла фразы...

ну я сразу понял, что не только руки такие..

S>Ты не можешь прочесть мой код? Или тебе не нравится сам код? Или тебе не нравятся табы?

S>Будь уж бобер, поясни.

ты написал стилистическое говно..
чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..
...coding for chaos...
braces in C++
От: Аноним  
Дата: 20.04.10 15:41
Оценка: +1 -1 :)
Добрый день коллеги. Раньше, когда еще был студент, сабж не использовал если были простые конструкции тип:
if (a)
    f();

В компаниях при работе с большими проектами всегда заставляли ставить скобки даже для таких конструкций. Приучился и сам, только бесило что заставляли ставить скобку в отдельной строке:
if (a)
{
    f();
}

Требуют, ну и требуют, делаю, но в своих проектах я тоже всегда стал использовать скобки, но:
if (a) {
    f();
}

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

Он везде использует using namespase std;
Ваше мнение по этому поводу?

21.04.10 14:53: Перенесено из 'C/C++'
Re: braces in C++
От: se_sss  
Дата: 20.04.10 20:56
Оценка: +3
Здравствуйте, Аноним, Вы писали:
А>
А>if (a) {
А>    f();
А>}
А>

Это приемлемо, если человек следит за своим кодом, но становится неприятным, когда он напишет кучу вложенных if несколько страниц — тяжело понять, где начало и где конец блока.
Re[4]: braces in C++
От: CreatorCray  
Дата: 20.04.10 21:27
Оценка: +2 -1
Здравствуйте, TarasKo, Вы писали:

TK>Охота задать вопрос, тем кто не согласен с обязательными скобками. А что вы выигрываете в случае если скобочку не ставить. Экономите одну строку? Или это просто привычка и скобка там нарушит ваше чувство гармонии.

Код выглядит более читабельным.
Впрочем правило не ставить такие скобки как правило идёт вместе с другими правилами оформления кода, типа отделять логические куски программы пустыми строками и т.п. В результате комплекса этих правил код хорошо читаем.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: braces in C++
От: uhh  
Дата: 21.04.10 03:46
Оценка: +2 -1
Здравствуйте, se_sss, Вы писали:

_>Здравствуйте, Аноним, Вы писали:

А>>
А>>if (a) {
А>>    f();
А>>}
А>>

_>Это приемлемо, если человек следит за своим кодом, но становится неприятным, когда он напишет кучу вложенных if несколько страниц — тяжело понять, где начало и где конец блока.

а вот не надо писать кучу вложенных if-ов
регулярно приходится разгребать код с вложенными if-ами на много страниц. всегда крутится в голове один вопрос — зачем???
Re[4]: А так? ;)
От: Erop Россия  
Дата: 21.04.10 07:43
Оценка: +2 :)
Здравствуйте, TarasKo, Вы писали:

TK>Если бы это выглядело вот так, то сильно бросалось бы в глаза

<...>

А если бы так:
if (var) {
  f();
} f0();
  f1();
  f2();
?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Ура!
От: rising_edge  
Дата: 22.04.10 11:34
Оценка: +3
Здравствуйте, CreatorCray, Вы писали:

CC>а почему бы не сделать это хотя бы так:

void CTextItemAddDialog::check()
{
    const bool bChecked = 
        (
            ui->>rbAltitude            -> isChecked() ||
            ui->>rbCourseFromNorth     -> isChecked() ||
            ui->>rbLatitude            -> isChecked() ||
            ui->>rbLongitude           -> isChecked() ||
            ui->>rbMode                -> isChecked() ||
            ui->>rbPQHorizontal        -> isChecked() ||
            ui->>rbPQTotal             -> isChecked() ||
            ui->>rbPQVertical          -> isChecked() ||
            ui->>rbRateOfClimb         -> isChecked() ||
            ui->>rbSatellitesInLastFix -> isChecked() ||
            ui->>rbSentence            -> isChecked() ||
            ui->>rbSpeedOverGround     -> isChecked() ||
            ui->>rbStatus              -> isChecked()
        );

    ui->>pbAdd->setEnabled(_scene && (!ui->pwGpsSourceSelect->isEmpty()) && bChecked);
}


bChecked стоит последней в логическом выражении. При определённых условиях дело до неё может не дойти. Зачем считать то, что может не понадобиться?
Re[8]: Я не парюсь
От: Sheridan Россия  
Дата: 22.04.10 20:31
Оценка: -1 :))
Приветствую, Ночной Смотрящий, вы писали:

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

НС> Нравится — понятие субъективное. Если речь идет о работе в команде, то выбирают общий для всех стиль. Если же речь о занятии интеллектуальным онанизмом — об это надо сразу говорить.
Троечка тебе, фигурное квотирование очень на виду.

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


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

НС> Смешно это слышать именно от тебя.
Да велкам, смеся.

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

НС> Тебе бы так увязать, как я. Может тогда не ныл бы про деньги.
Это где я ною про деньги?

НС> НС>> Плохому танцору ...

НС> S>Ох, погоди, помоему я тебя за живое зацепил. Похоже в точку таки сказал
НС> Это скорее я тебя зацепил Экспрессия то от тебя в основном прет.
От меня она всегда прет, так шо...

НС> НС>> Результат только ...

НС> S>Что результат? Долговаривай уж, телепат доморощенный...
НС> Вот вот, кто кого еще зацепил. Телепатия тут не в тему. Брался ты за янус — обкакался, не осилив XSLT.
Я и не собирался этот бред изучать.

НС>Брался за свой аналог — дальше пука дело не ушло.

Доделаю, посмотрим как с януса и авалона ко мне побежите. Когда доделаю — не знаю, но проект не заброшен, времени немного свободного, а сейчас я его трачу на свою gps тулзу, код которой собсна тут показывал. Есть желание — присоединяйся. Только мне почемуто кажется что ты хер присоединишься. Недорос еще видимо до того чтобы другим помогать.

НС>Брался за авалон — все закончилось пачкой матюков в твою сторону.

Только мой код почемуто все еще в авалоне есть. Парадокс?

НС>И после этого ты имеешь наглось с умным видом рассуждать про заплывчатость мозгов. Ты бы со своими мозгами сперва разобрался.

Мои мозги ничем безполезным не засраты. Впрочем неудивительно что ты считаешь наоборот. У каждого своя правда.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[6]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.04.10 05:24
Оценка: :)))
Здравствуйте, neFormal, Вы писали:


F>ты написал стилистическое говно..

F>чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..

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

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

Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны.

Отсюда неудивительно наблюдать в проектах наличие уникальной мелочевки вроде смартпоинтеров и прочей дряни.

Крайне странно после всего этого слышать о достоинствах языка С++.
Re[2]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.04.10 10:06
Оценка: :)))
Здравствуйте, Mamut, Вы писали:

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


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

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

Т.е. он борется со сложностью оверхеда форматированием, а не правильным кодированием.
Re: Я не парюсь
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 24.04.10 15:18
Оценка: 2 (1) +1
Здравствуйте, Sheridan, Вы писали:

S>Пишу по разному. Руководствуюсь исключительно читабельностью.


Wow А сердечко из кода выложить сможешь?

А если серьезно, то IMHO зря тут все на этот стиль так накинулись. Такое форматирование иногда может быть вполне оправданным (если использовать его без фанатизма). Например, при форматировании сопсоставления с образцом:

код из Nemerle'овского парсера (ncc\parsing\MainParser.n):

match (first)
{
    | Token.Identifier ("assembly") => System.AttributeTargets.Assembly
    | Token.Identifier ("field")    => System.AttributeTargets.Field
    | Token.Keyword    ("event")    => System.AttributeTargets.Event
    | Token.Identifier ("method")   => System.AttributeTargets.Method
    | Token.Keyword    ("module")   => System.AttributeTargets.Module
    | Token.Identifier ("param")    => System.AttributeTargets.Parameter
    | Token.Identifier ("property") => System.AttributeTargets.Property
    | Token.Identifier ("return")   => System.AttributeTargets.ReturnValue
    | Token.Keyword    ("type")     => System.AttributeTargets.Class
    | _                             => System.AttributeTargets.All
};


или при развесистых объявлениях каких-либо структур, либо вызовах функций / методов:

код оттуда же:

parse_property (_parentType   : string,
                                members       : SCG.List[ClassMember],
                                startLocation : Location,
                                mods          : Modifiers, 
                mutable customs       : list[Token.SquareGroup],
                                id            : Splicable, 
                                ret_type      : PExpr, 
                                parms         : list[PParameter],
                                typarms       : Typarms,
                                prmsOpenLoc   : Location,
                                prmsCloseLoc  : Location
)


Предлагаю противникам этого метода не сотрясать воздух понапрасну и просто продемострировать более читабельные варианты приведенных выше фрагментов
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: Я не парюсь
От: neFormal Россия  
Дата: 21.04.10 19:45
Оценка: 1 (1) +1
Здравствуйте, Sheridan, Вы писали:

S>Ты продолжишь утверждать о нечитабельности? о0


оторвать руки и пришить новые.. вдруг они такой шлак будут отказываться писать..
...coding for chaos...
Re: Я не парюсь
От: Mamut Швеция http://dmitriid.com
Дата: 23.04.10 10:57
Оценка: 1 (1) +1
S>Пишу по разному. Руководствуюсь исключительно читабельностью.
S>
S>    void setPositionQualityH    (const float &value)    { _positionQualityHorizontal    [value]; }

S>


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


dmitriid.comGitHubLinkedIn
Re[2]: Я не парюсь
От: Anton Batenev Россия https://github.com/abbat
Дата: 25.04.10 13:50
Оценка: 1 (1) +1
Здравствуйте, kochetkov.vladimir, Вы писали:

k> или при развесистых объявлениях каких-либо структур, либо вызовах функций / методов:

k> код оттуда же:

parse_property (params : ParseParams)


Если метод принимает более 5 параметров, их надо сворачивать в логическую группу (согласно правилу о том, что человек помнит последние 7±2 объектов в "быстрой памяти" и, тем самым, освобождая память для участка кода и других задач).
avalon 1.0rc3 rev 317, zlib 1.2.3
Re[2]: IMHO не там причины видим...
От: Erop Россия  
Дата: 21.04.10 07:37
Оценка: +2
Здравствуйте, TarasKo, Вы писали:

TK>Классическая ситуация, 10 вечера перед релизом. Программа вела себя как-то странно, через некоторое время в дебаггере увидел что в этом месте творится чертовщина, почему-то f1(), f2() не исполняются (напоминаю 10 вечер, уставший, охота домой баг непонятный и критичный). Я всегда такие вещи видел, а именно в тот момент, я смотрел и тупил. А я потратил час прежде чем мой воспаллённый мозг понял в чём дело. И когда я понял возненавидел этого программиста


TK>Это дейстивтельно нужное правило в Code Convention, оно предотвращает баги. Оно действительно, полезно и нужно, оно намного ценне чем 2 или 4 пробела, или где ставить скобочку фигурную, на той же строке или на следующей.


А может лучше принять совсем другое правило: "работать с воспалённым мозгом запрещено"?

Кстати, в современных IDE отступы сами собой расставились бы правильно.
Кроме того, обычно можно попросить IDE отформатировать кусок кода заново.
В случае таких вот "мистических ошибок воспалённых мозгов", фича переформатирования кода зело полезна...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: braces in C++
От: Erop Россия  
Дата: 21.04.10 07:52
Оценка: +2
Здравствуйте, Аноним, Вы писали:

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

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

IMHO, если код людей сильно чувствителен к стратегии расстановки скобок, то у низ с кодом что-то не так
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: braces in C++
От: CreatorCray  
Дата: 21.04.10 10:03
Оценка: :))
Здравствуйте, Erop, Вы писали:

E>IMHO, если код людей сильно чувствителен к стратегии расстановки скобок, то у низ с кодом что-то не так

"С Вами просто невозможно спорить!" (С)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Я не парюсь
От: Sheridan Россия  
Дата: 22.04.10 04:35
Оценка: +1 :)
Приветствую, Воронков Василий, вы писали:

ВВ> Все вот интересно, у тебя какая-то методология есть, по которой ты табы расставляешь? Типа почему

ВВ> Или от балды?
У второго варианта невыровненное получается шире, чем в первом.

ВВ> Кстати, к вопросу о читабельности. Это кто-нибудь, кроме тебя когда-нибудь "читает"?

Пока нет. И думаю с таким раскладом я хер кого в код пущу.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[4]: Ура!
От: March_rabbit  
Дата: 23.04.10 13:37
Оценка: +2
Здравствуйте, SergeCpp, Вы писали:

SC>Здравствуйте, Sheridan!


SC>
void CTextItemAddDialog::check()
SC>{
    ui->>pbAdd->setEnabled(
SC>        _scene                            &&
SC>        !ui->pwGpsSourceSelect->isEmpty() &&
SC>        (
          ui->>rbAltitude            -> isChecked() ||
          ui->>rbCourseFromNorth     -> isChecked() ||
ююю
          ui->>rbStatus              -> isChecked()
SC>        )
SC>    );
SC>}

Один комментарий: знаки логической сцепки я помещал бы в начале строки. Это позволяет сразу замечать логическую схему.
Ну, и добавление новой строки будет проще копи-пастом делать (без добавления знака сцепки в предыдущую).
Re[7]: Так кто же - программист?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.04.10 09:07
Оценка: :))
Здравствуйте, SergeCpp, Вы писали:

SC>А что в таком случае можно сказать вот об этом коде:

SC>http://rsdn.ru/forum/cpp/2340905.1.aspx
Автор: SergeCpp
Дата: 08.02.07

SC>Является ли написавший (написавшие) его — программистом?

Да, к сожалению, растет в диком виде.

SC>А вот об этом коде:

SC>http://rsdn.ru/forum/philosophy/1315549.1.aspx
Автор: SergeCpp
Дата: 09.08.05


SC>Является ли написавший его — программистом?


Вообще говоря я Кнута программистом не считаю

SC>Если является, то чем этот код лучше кода Шеридана?


Ничем. см выше.
Re[8]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.04.10 09:51
Оценка: :))
Здравствуйте, neFormal, Вы писали:

I>>Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны.


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


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

т.е. или так

strings
.Where(s => conditions.All(c => c.IsMetBy(s)))
.SelectMany(s => s.Split(' '));


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


I>>Отсюда неудивительно наблюдать в проектах наличие уникальной мелочевки вроде смартпоинтеров и прочей дряни.

I>>Крайне странно после всего этого слышать о достоинствах языка С++.

F>жиром заляпал мне монитор..


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

На плохом языке никогда не будет серьезных фреймворков. Стало быть, когда сплюсники пишут свои смартпоинтеры, у них попросту нет своего фреймворка по известной причине, ни использования других фреймворков по той же прчине.
Re[3]: Ура!
От: SergeCpp Россия http://zoozahita.ru
Дата: 22.04.10 09:08
Оценка: 2 (1)
Здравствуйте, Sheridan!

Ура! В кои веки встретил человека с таким же эстетическим отношением к тексту программы!

S>

S>[Картинка, 107'652 байт]

Вот бы как записал один из ваших фрагментов:

void CTextItemAddDialog::check()
{
    ui->pbAdd->setEnabled(
        _scene                            &&
        !ui->pwGpsSourceSelect->isEmpty() &&
        (
          ui->rbAltitude            -> isChecked() ||
          ui->rbCourseFromNorth     -> isChecked() ||
          ui->rbLatitude            -> isChecked() ||
          ui->rbLongitude           -> isChecked() ||
          ui->rbMode                -> isChecked() ||
          ui->rbPQHorizontal        -> isChecked() ||
          ui->rbPQTotal             -> isChecked() ||
          ui->rbPQVertical          -> isChecked() ||
          ui->rbRateOfClimb         -> isChecked() ||
          ui->rbSatellitesInLastFix -> isChecked() ||
          ui->rbSentence            -> isChecked() ||
          ui->rbSpeedOverGround     -> isChecked() ||
          ui->rbStatus              -> isChecked()
        )
    );
}


Пояснения:

1. У вас выровнено ui->pwGpsSourceSelect и ui->rb*, однако эти вещи принадлежат к различным уровням вложенности скобок, да и если уж стали выравнивать так, стоило бы и "->isEmpty()" выровнять с нижними. Хотя, повторюсь, это разные уровни — выравниваем только одинаковый.
2. У вас "->is" (без пробела), тогда как "->" есть связь-операция-между rb* и is*, поэтому эта связь подлежит симметричному выделению пробелами — слева и справа.
3. Три элемента операции && следует выровнять на одном уровне.
4. Закрывающие ")" тоже следует выровнять вровень с тем, что соответствующая скобка открывает.

Вот мой пример (2005 года):
http://image003.mylivepage.ru/chunk3/4468/2/Development.gif

Вот тут есть исходники (табуляция, вроде, 4):
http://rsdn.ru/forum/src/1488374.1.aspx
Автор: SergeCpp
Дата: 15.11.05


Вы там отвечали в теме той тогда.

Сейчас что-то писал бы иначе, конечно, но общее представление сходно с вашим.

Радуюсь
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re: Я не парюсь
От: skeptik_  
Дата: 21.04.10 20:31
Оценка: 1 (1)
Здравствуйте, Sheridan, Вы писали:

S>Пишу по разному. Руководствуюсь исключительно читабельностью.

S>
S>    void setPositionQualityH    (const float &value)    { _positionQualityHorizontal    [value]; }
S>    void setPositionQualityV    (const float &value)    { _positionQualityVertical        [value]; }
S>    void setPositionQualityT    (const float &value)    { _positionQualityTotal            [value]; }
S>


Это несовместимо с VCS. Измени одну строку и придётся либо менять и чекинить остальные, либо же вся "читаемость" пропадёт.
Re[3]: braces in C++
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 26.04.10 09:05
Оценка: 1 (1)
Здравствуйте, neFormal, Вы писали:

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


Секундочку... Что мешает пользоваться табами для отступов в питоне?
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: braces in C++
От: TarasKo Голландия  
Дата: 20.04.10 20:21
Оценка: +1
Если бы это выглядело вот так, то сильно бросалось бы в глаза

if (var) {
  f();
}
  f1();
  f2();


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

По поводу того что это старо как говно мамонта Ну да вот круглое колесо тоже изобретено давно, однако факт того что это было давно, не означает что квадратное колесо лучше.

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

По поводу кривого совмещения версий. Не очень представляю, хорошо бы увидеть пример. Такую ошибку от программистов, я встречаю не в первый раз. А что бы ошибиться "мерджерер" не припоминаю. В конфликтных ситуация всегда всё ругалось и требовало ручного вмешательства. Возможно мой опыт не такой большой, программирую всего 4 года
Re[2]: braces in C++
От: TarasKo Голландия  
Дата: 20.04.10 20:36
Оценка: +1
Отлично! Я там какие-то аргументы придумываю, привожу примеры из жизни, пытаюсь там че-то сравнивать. А у вас всё просто:
Это хорошо, а это плохо.
Это читабельно, а это не нечетабельно.
Это избыточно, а это нормально
Это правильно, а это не правильно.
Все несогласные в сад
Завидую, хочу так же
Re[3]: braces in C++
От: CreatorCray  
Дата: 20.04.10 21:27
Оценка: +1
Здравствуйте, TarasKo, Вы писали:

TK>Завидую, хочу так же

Это же так просто!
Я научу:

Хорошее оформление люблю, плохое — нет.

Вот и всё!

TK>Отлично! Я там какие-то аргументы придумываю, привожу примеры из жизни, пытаюсь там че-то сравнивать. А у вас всё просто:

TK>Это хорошо, а это плохо.
TK>Это читабельно, а это не нечетабельно.
TK>Это избыточно, а это нормально
TK>Это правильно, а это не правильно.
Это всё субъективные оценки.
Одному оформление нравится, читабельно, удобно и неизбыточно а другому — лажа полная и говнокод.
Нет общего знаменателя.
Поэтому и придумывают кодинг стандарт когда собирается группа людей работать над одним проектом — чтоб заставить писать всех одинаково, а не как удобно им.

TK>Все несогласные в сад

Именно!
Один вопрос что считаю правильным и читабельным лично я (а все эти критерии строго субъективны) и другое, что требуется по кодингстандарту на проекте, в котором я участвую.
У меня на данный момент проект в котором принят linux style:
if (cond) {
    expr;
}

я такой стиль считаю кошмарным. Но мне пофигу, я пишу коммерческий код, и мои предпочтения никакой роли не играют.
Те проекты где я рулю — я задаю правила и там так, как мне нравится.
Вот и всё.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: braces in C++
От: emp  
Дата: 20.04.10 21:32
Оценка: :)
так делаю:
if(a)
{
    f1();
    f2();
}


if(a)
    f1();    

// или так, в зависимости от того что лучше смотрится в данном куске кода
if(a)
{
    f1();
}

std::

namespace fs = boost::filesystem; // только внутри тел ф-ций

но если кто-то делает по другому, меня не напрягает. главное чтобы в одном файле стиль был одинаковый
Re[10]: braces in C++
От: CreatorCray  
Дата: 21.04.10 13:41
Оценка: :)
Здравствуйте, Erop, Вы писали:

E>Ну ты, как бы, утверждаешь, что скобочки всюду трудно ставить.

Я не утверждаю, я ёрничаю над предположением что потом, когда будет меняться код, будет очень сложно поставить эти скобочки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 16:47
Оценка: +1
Пишу по разному. Руководствуюсь исключительно читабельностью.
    void setPositionQualityH    (const float &value)    { _positionQualityHorizontal    [value]; }
    void setPositionQualityV    (const float &value)    { _positionQualityVertical        [value]; }
    void setPositionQualityT    (const float &value)    { _positionQualityTotal            [value]; }

    void setPosition            (const TPositionCoordinate & latitude,
                                 const TPositionCoordinate & longitude)
                                                        { _position->setCoordintes(latitude, longitude); }

    void setDilutionOfPrecision    (const quint8 &satellitesInLastFix,
                                 const float &dopSpherical,
                                 const float &dopHorizontal,
                                 const float &dopVertical,
                                 const float &dopTime,
                                 const float &dopTotalGeometric)
                                                        {    _satellitesInLastFix    [satellitesInLastFix];
                                                            _dopSpherical            [dopSpherical];
                                                            _dopHorizontal            [dopHorizontal];
                                                            _dopVertical            [dopVertical];
                                                            _dopTime                [dopTime];
                                                            _dopTotalGeometric        [dopTotalGeometric]; }

void CApplication::refreshStyleSheet(CDayNight::EDNType dnt)
{
    switch(dnt)
    {
    case CDayNight::dnDay:        setStyleSheet ( _dayStyleSheet        ->value().text + _mainStyleSheet->value().text    ); break;
    case CDayNight::dnNight:    setStyleSheet ( _nightStyleSheet    ->value().text + _mainStyleSheet->value().text    ); break;
    case CDayNight::dnUnset:    setStyleSheet ( ""                                                                    ); break;
    }
}


// South
    painter->setBrush(QBrush(_southColor));
    painter->drawPolygon(QPolygonF()
        << QPointF(-15, 0)
        << QPointF(0,95)
        << QPointF(15, 0)
        << QPointF(-15, 0)
        );
    painter->setPen(_stdPen);
    painter->setBrush(_stdBrush);

    //text
    painter->setFont(_elevationFont);
    for(int i = 90; i >= 10; i -= 10)
    {
        for(int j = 0; j < 360; j+=__lineAnglesStep)
        {
            painter->drawText(QPointF(1, -i-1), _elevations[i]);
            painter->rotate(__lineAnglesStep);
        }
    }


void CTextItemAddDialog::check()
{
    ui->pbAdd->setEnabled(_scene && !ui->pwGpsSourceSelect->isEmpty() &&
                             (
                                     ui->rbAltitude                ->isChecked() ||
                                     ui->rbCourseFromNorth        ->isChecked() ||
                                     ui->rbLatitude                ->isChecked() ||
                                     ui->rbLongitude            ->isChecked() ||
                                     ui->rbMode                    ->isChecked() ||
                                     ui->rbPQHorizontal            ->isChecked() ||
                                     ui->rbPQTotal                ->isChecked() ||
                                     ui->rbPQVertical            ->isChecked() ||
                                     ui->rbRateOfClimb            ->isChecked() ||
                                     ui->rbSatellitesInLastFix    ->isChecked() ||
                                     ui->rbSentence                ->isChecked() ||
                                     ui->rbSpeedOverGround        ->isChecked() ||
                                     ui->rbStatus                ->isChecked()
                             ));
}
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re: Я не парюсь
От: x64 Россия http://x64blog.name
Дата: 21.04.10 18:46
Оценка: :)
S>...skipped...

У тебя проблемы.
JID: x64j@jabber.ru
Re[11]: Я не парюсь
От: neFormal Россия  
Дата: 22.04.10 10:47
Оценка: :)
Здравствуйте, Sheridan, Вы писали:

F>> ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок..

F>> скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом..
S>Присмотрись, там по одному оператору на строчку получается почти везде. Больше операторов на строку я леплю только если второй оператор типа break или там return

ты не понял.. у тебя вправо уведён кусок, который логически и синтаксически принадлежит коду слева..
аналогия примерно такая:
Привет,    Шеридан    , как де             ла     ?
Хочу дать тебе совет    переходи на вин    ду     .
И всё      в твоей жизни станет хоро       шо     .
А если ослушаешься    , тебя съест сл      он     .
И за такое форматирование на том свете     ты     \
будешь гореть в а                          ду     !!!111адинадинацать


хороший код — это не тот, который выровнен по каким либо границам, а тот, смысл которого можно понять, проглядев наискосок..
...coding for chaos...
Re[4]: Ура!
От: CreatorCray  
Дата: 22.04.10 10:54
Оценка: :)
Здравствуйте, SergeCpp, Вы писали:

...

а почему бы не сделать это хотя бы так:

void CTextItemAddDialog::check()
{
    const bool bChecked = 
        (
            ui->rbAltitude            -> isChecked() ||
            ui->rbCourseFromNorth     -> isChecked() ||
            ui->rbLatitude            -> isChecked() ||
            ui->rbLongitude           -> isChecked() ||
            ui->rbMode                -> isChecked() ||
            ui->rbPQHorizontal        -> isChecked() ||
            ui->rbPQTotal             -> isChecked() ||
            ui->rbPQVertical          -> isChecked() ||
            ui->rbRateOfClimb         -> isChecked() ||
            ui->rbSatellitesInLastFix -> isChecked() ||
            ui->rbSentence            -> isChecked() ||
            ui->rbSpeedOverGround     -> isChecked() ||
            ui->rbStatus              -> isChecked()
        );

    ui->pbAdd->setEnabled(_scene && (!ui->pwGpsSourceSelect->isEmpty()) && bChecked);
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Ура!
От: Ночной Смотрящий Россия  
Дата: 22.04.10 11:02
Оценка: +1
Здравствуйте, neFormal, Вы писали:

SC>>Ура! В кои веки встретил человека с таким же эстетическим отношением к тексту программы!


F>это печально..


Не, ну почему. То, что "в кои веки" как раз таки не печально

F>ох..


ИМХО, весьма показательно.
Re[9]: Я не парюсь
От: Mamut Швеция http://dmitriid.com
Дата: 23.04.10 11:11
Оценка: +1
НС>>Брался за авалон — все закончилось пачкой матюков в твою сторону.
S>Только мой код почемуто все еще в авалоне есть. Парадокс?

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


dmitriid.comGitHubLinkedIn
Re[2]: Я не парюсь
От: Sheridan Россия  
Дата: 23.04.10 14:38
Оценка: :)
Приветствую, Mamut, вы писали:

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


Разумно, пожалуй перейду на пробелы, спасиб
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[2]: Я не парюсь
От: CreatorCray  
Дата: 25.04.10 00:35
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>А если серьезно, то IMHO зря тут все на этот стиль так накинулись.

Ну, не все...

KV> Такое форматирование иногда может быть вполне оправданным (если использовать его без фанатизма).

согласен, но у Шеридана там всё таки децл перебор.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Ура!
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.04.10 04:46
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

CC>а почему бы не сделать это хотя бы так:


Я бы сделал вот так:

...
    ui->pbAdd->setEnabled( CanProcess() && IsUiChecked() );
...


void CTextItemAddDialog::IsUiChecked()
{
  return Any(CSomeClass::IsChecked,
            ui->>rbAltitude,
            ui->>rbCourseFromNorth,
            ui->>rbLatitude,
            ui->>rbLongitude,
            ui->>rbMode,
            ui->>rbPQHorizontal,
            ui->>rbPQTotal,
            ui->>rbPQVertical,
            ui->>rbRateOfClimb,
            ui->>rbSatellitesInLastFix,
            ui->>rbSentence,
            ui->>rbSpeedOverGround,
            ui->>rbStatus);
}

int CTextItemAddDialog::CanProcess() // имя возможно не самое подходящее, за отсутствием контекста ничего лучше предложить не мгу
{
    return _scene && !ui->pwGpsSourceSelect->isEmpty();
}
Re[10]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.04.10 10:10
Оценка: :)
Здравствуйте, neFormal, Вы писали:

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

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

F>только при чём тут лямбды и замыкания?.


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

Или ты думаешь C++0x просто так решили родить ?

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


F>кажется, ты отказываешь плюсам в наличии библиотек и фреймворков.. это далеко от правды..


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

Вероятно, это от наличия фреймворков ?
Re[5]: braces in C++
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 26.04.10 10:18
Оценка: :)
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, kochetkov.vladimir, Вы писали:


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

KV>>Секундочку... Что мешает пользоваться табами для отступов в питоне?

I>Люди, которые пользуются пробелами.


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

А вы оказывается вон какие...
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[11]: Я не парюсь
От: neFormal Россия  
Дата: 26.04.10 10:51
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

F>>только при чём тут лямбды и замыкания?.

I>При том, что лямбды и замыкания позволяют _на_порядок_ уменьшить размер оверхеда.

да так себе.. на порядок уж точно нет..

I>Или ты думаешь C++0x просто так решили родить ?


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

I>Это гораздо ближе к правде чем ты думаешь. Чуть не в каждом сиплюсном проекте можно найти вагон велосипедов начиная с тех же смартпоинтеров.

I>Вероятно, это от наличия фреймворков ?

это последствия децентрализованности, ну и от того, что несишники лезут и пишут велосипеды..
...coding for chaos...
Re[6]: braces in C++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.04.10 11:12
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

I>>Люди, которые пользуются пробелами.


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


KV>А вы оказывается вон какие...


В питоне сльная зависимость от редактора, отсюда неудивтельно, что есть два враждующих лагеря
Re[3]: Я не парюсь
От: Mamut Швеция http://dmitriid.com
Дата: 26.04.10 11:53
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

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


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


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





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

I>Т.е. он борется со сложностью оверхеда форматированием, а не правильным кодированием.

Да ладно, нормально у него в приведенных примерах с кодированием. Например:


тут банальный
property a {get; set;}


только в терминах С++


А табы внутри кода, а не только для отступов — это проблема.


dmitriid.comGitHubLinkedIn
Re[12]: Я не парюсь
От: Ночной Смотрящий Россия  
Дата: 26.04.10 18:22
Оценка: -1
Здравствуйте, CreatorCray, Вы писали:

CC>Я вот как в ICC появилась поддержка лямбд в трёх проектах до сих пор не нашёл куда эти новомодные лямбды прикрутить. Не нужны они нигде оказались.


Это говорит не о ненужности, а лишь о твоем неумении их применять.
Re[14]: Я не парюсь
От: CreatorCray  
Дата: 26.04.10 19:39
Оценка: -1
Здравствуйте, neFormal, Вы писали:

I>>А ты покажи код тому, кто лямбдами пользуется.

F>а ты покажи код с лямбдами тому, кто ими не пользуется..
Не мешай ему фапать на функциональщину
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[15]: Я не парюсь
От: neFormal Россия  
Дата: 27.04.10 05:49
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

I>Да не расстраивайся так, я тебя не призываю пользоватья лямбдами.


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

I>>>Функциональный стиль это оно и есть.

F>>но весь С++0х не в функциональном стиле.. поэтому одна рюшечка для лямбда-самцов никакого особого значения для всего языка не имеет..
I>Это ты сильно погорячился.

ты путаешь православный C++ со всякими кулхацкелями..
...coding for chaos...
Re[2]: braces in C++
От: TarasKo Голландия  
Дата: 20.04.10 16:43
Оценка:
А по поводу std. Возможно ваш более опытный программист не сталкивался с ситуацией, что namespace в вашем проекте имеет такое же имя что и namespace во внешней библиотеке неважно сторонней или библиотеки вашей же фирмы, и при этом приходится собирать всё старым компилятором. Если у вас ситуация не такая, то я за вас очень рад и я бы тоже с удовольствием писал

using namespace std;
или там
using namespace boost;


Но правда с большими библиотеками я бы всё равно так не делал
using namespace boost::mpl;
using namespace boost::interprocess;
лучше уж
namespace ipc = boost::interprocess;
Re[2]: braces in C++
От: skeptik_  
Дата: 20.04.10 18:41
Оценка:
Здравствуйте, TarasKo, Вы писали:

TK>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось


TK>
TK>if (var)
TK>  f();
TK>  f1();
TK>  f2();

TK>


TK>Классическая ситуация, 10 вечера перед релизом. Программа вела себя как-то странно, через некоторое время в дебаггере увидел что в этом месте творится чертовщина, почему-то f1(), f2() не исполняются


Тесты где?

ЗЫ Если стандарты требуют это одно, но сам я не люблю излишнее.
Re[3]: braces in C++
От: TarasKo Голландия  
Дата: 20.04.10 20:57
Оценка:
А вы всегда работали на проектах, где есть юнит тесты? Или когда приходили на новую работу, то первым дело говорили начальнику. "Я пришёл, сейчас мы все сядем и напишем на весь ваш мегапроект юнит тесты. Но перед тем как это делать, мы сначала перепишем и отрефачим все ваши классы с неадыкватным интерфейсом, так что бы их вообще можно было как-то тестировать."

Большинство в этом приложении было написано не мной, а тем человеком к которому я не могу подойти и сказать, а давай-ка ты напишешь юнит тесты на всё что ты писал в течении пары лет.
Re[2]: braces in C++
От: emp  
Дата: 20.04.10 21:41
Оценка:
а вот еще вспомнилось
if(a)
if( a )
if (a)
if ( a )

x=1+2;
x = 1 + 2;       // коммент здесь
x = 1 + 2 ;      // коммент здесь
x = 1 + 2      ; // коммент здесь
x = 1 + 2 + 3  ; // коммент здесь
// коммент здесь

я пишу
if(a)
x = 1 + 2;       // коммент здесь
Re: braces in C++
От: Nik_1 Россия  
Дата: 21.04.10 05:56
Оценка:
Здравствуйте, Аноним, Вы писали:
А>ну и требуют, делаю, но в своих проектах я тоже всегда стал использовать скобки, но:
А>
А>if (a)
А>    f();
А>


Когда одинарный — еще нормально, но если есть несколько последовательных вложенных ифов, то скобки делают код более наглядным.

А>
А>if (a) {
А>    f();
А>}
А>


Когда есть вложенные скобки, при таком стиле тратиться больше усилий чтоб к закрывающей скобке найти парную открывающую. Поэтому меня всегда коробит при просмотре кода в таком стиле — понять его сложней.
Re[3]: braces in C++
От: Erop Россия  
Дата: 21.04.10 07:39
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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

После скобки видно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: braces in C++
От: Erop Россия  
Дата: 21.04.10 07:44
Оценка:
Здравствуйте, se_sss, Вы писали:

_>Это приемлемо, если человек следит за своим кодом, но становится неприятным, когда он напишет кучу вложенных if несколько страниц — тяжело понять, где начало и где конец блока.


IMHO, такой ситуации стоит избегать вне связи со стратегией расстановки скобок.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: А так? ;)
От: Nik_1 Россия  
Дата: 21.04.10 08:26
Оценка:
Здравствуйте, Erop, Вы писали:
E>if (var) {
E> f();
E>} f0();
E> f1();
E> f2();
E>[/c]?

Даа, вы знаете толк в извращеньях
Re[6]: А так? ;)
От: Erop Россия  
Дата: 21.04.10 08:29
Оценка:
Здравствуйте, Nik_1, Вы писали:

N_>Даа, вы знаете толк в извращеньях


Просто отрефакторил много кода...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: braces in C++
От: CreatorCray  
Дата: 21.04.10 10:03
Оценка:
Здравствуйте, Erop, Вы писали:

E>А "затратно" в каком смысле?

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

E>По идее дописывать скобки вообще всегда и на автомате стоит очень мало усилий программисту.

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

E>А вот смотреть в каждом случае нужно ли добавить скобок, требует не отключать голову

ИМХО программист, отключающий голову в процессе работы подлежит позорному изгнанию из профессии.

E>Кроме того, расстановкой скобок может вообще IDE заниматься...

Представил и ужаснулся. Лучше не надо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: braces in C++
От: CreatorCray  
Дата: 21.04.10 10:03
Оценка:
Здравствуйте, Erop, Вы писали:

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

E>После скобки видно...
А отступ типа не видно?
Более того, ты сам показал как можно и после скобки наколбасить.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: braces in C++
От: Erop Россия  
Дата: 21.04.10 10:49
Оценка:
Здравствуйте, CreatorCray, Вы писали:

E>>Кроме того, расстановкой скобок может вообще IDE заниматься...

CC>Представил и ужаснулся. Лучше не надо.

А в чём проблема? Ну написал ты if или for и т. д.
Чем среде трудно тут же скобочки пририсовать?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: braces in C++
От: Erop Россия  
Дата: 21.04.10 10:49
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Более того, ты сам показал как можно и после скобки наколбасить.

Так реже бывает.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[8]: braces in C++
От: CreatorCray  
Дата: 21.04.10 11:11
Оценка:
Здравствуйте, Erop, Вы писали:

E>А в чём проблема? Ну написал ты if или for и т. д.

E>Чем среде трудно тут же скобочки пририсовать?
Ну так а мне они и не надо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[9]: braces in C++
От: Erop Россия  
Дата: 21.04.10 13:01
Оценка:
Здравствуйте, CreatorCray, Вы писали:

E>>А в чём проблема? Ну написал ты if или for и т. д.

E>>Чем среде трудно тут же скобочки пририсовать?
CC>Ну так а мне они и не надо.

Ну ты, как бы, утверждаешь, что скобочки всюду трудно ставить.
Я же тебе говорю, что если всюду, то не трудно, тем более, что это за тебя может делать IDE...

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

Кроме того, у меня есть такое наблюдение, что в долгих проектах стили меняются раз в несколько лет, так что в случае поддержки/рефакторинга/развития чужого кода приходится сталкиваться с любым, использовавшимся за историю развития проекта. Так что правда, вопрос пустой. Как не решишь -- всё хорошо
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: Йо!!! Я тоже люблю монти-пайтон!!! ;)
От: Erop Россия  
Дата: 21.04.10 13:06
Оценка:
Здравствуйте, CreatorCray, Вы писали:

E>>IMHO, если код людей сильно чувствителен к стратегии расстановки скобок, то у низ с кодом что-то не так

CC>"С Вами просто невозможно спорить!" (С)

Йо!!! Я тоже люблю монти-пайтон!!!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: braces in C++
От: x64 Россия http://x64blog.name
Дата: 21.04.10 13:08
Оценка:
Я пишу так:

void foo ()
{
    foo ();
}


Если, конечно, тут это хоть кому-нибудь интересно.
JID: x64j@jabber.ru
Re[7]: braces in C++
От: Erop Россия  
Дата: 21.04.10 13:09
Оценка:
Здравствуйте, CreatorCray, Вы писали:

E>>По идее дописывать скобки вообще всегда и на автомате стоит очень мало усилий программисту.

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

CC>ИМХО программист, отключающий голову в процессе работы подлежит позорному изгнанию из профессии.

О! Я вот, например, для кодирования, голову не включаю. Так же, как и для разговора на русском или там английском языках. Думать приходится над нетривильными вещами, а не над тем, как каждый конкретный if написать
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: braces in C++
От: Erop Россия  
Дата: 21.04.10 13:10
Оценка:
Здравствуйте, x64, Вы писали:

x64>Я пишу так:


x64>
x64>void foo ()
x64>{
x64>    foo ();
x64>}
x64>


x64>Если, конечно, тут это хоть кому-нибудь интересно.

Такой стиль написания функций вроде как почти общеприянт.
Ты вот про if-else расскажи, например, или про switch...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Я не парюсь
От: Воронков Василий Россия  
Дата: 21.04.10 18:48
Оценка:
Здравствуйте, Sheridan, Вы писали:

Ахренеть
Re[2]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 18:53
Оценка:
Приветствую, x64, вы писали:

x64> У тебя проблемы.


С кем?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[2]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 18:56
Оценка:
Приветствую, Воронков Василий, вы писали:

ВВ> Ахренеть


А так
Автор: Sheridan
Дата: 21.04.10
?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[4]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 19:50
Оценка:
Приветствую, neFormal, вы писали:

F> S>Ты продолжишь утверждать о нечитабельности? о0

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

Чтото я не могу понять смысла фразы... Ты не можешь прочесть мой код? Или тебе не нравится сам код? Или тебе не нравятся табы?
Будь уж бобер, поясни.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[6]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 20:38
Оценка:
Приветствую, neFormal, вы писали:

F> ты написал стилистическое говно..

F> чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..
Я и говорю: мне на такое похер, я пишу легко читающийся код. Во всяком случае там, где это возможно.

Еще раз спрашиваю: Это нечитабельно?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[2]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 20:43
Оценка:
Приветствую, skeptik_, вы писали:


s> Это несовместимо с VCS. Измени одну строку и придётся либо менять и чекинить остальные, либо же вся "читаемость" пропадёт.


всмысле несовместимо? с какой стороны?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[7]: Я не парюсь
От: neFormal Россия  
Дата: 21.04.10 21:03
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Я и говорю: мне на такое похер, я пишу легко читающийся код.


валялись всей маршруткой..

S>Еще раз спрашиваю: Это нечитабельно?


абсолютно не читабельно..
...coding for chaos...
Re[3]: Я не парюсь
От: Ночной Смотрящий Россия  
Дата: 21.04.10 21:06
Оценка:
Здравствуйте, Sheridan, Вы писали:

x64>> У тебя проблемы.


S>С кем?


С чем. С программированием.
Re[3]: Я не парюсь
От: Ночной Смотрящий Россия  
Дата: 21.04.10 21:06
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>всмысле несовместимо? с какой стороны?


Проблема арт-декора в коде заключается в том, что небольшое переименование потенциально может привести к перефигачиванию всего файла. А нелокальностьизменений это нездорово. Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга.
Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это.
Re: braces in C++
От: CrystaX Россия https://crystax.me/
Дата: 21.04.10 21:10
Оценка:
[skip]

Смешные дурачки (с)
Re[8]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 21:38
Оценка:
Приветствую, neFormal, вы писали:

F> S>Еще раз спрашиваю: Это нечитабельно?

F> абсолютно не читабельно..
Почему?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[4]: Я не парюсь
От: Sheridan Россия  
Дата: 21.04.10 21:38
Оценка:
Приветствую, Ночной Смотрящий, вы писали:

НС> x64>> У тебя проблемы.

НС> S>С кем?
НС> С чем. С программированием.

Возможно. Я не программист
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[3]: Я не парюсь
От: Воронков Василий Россия  
Дата: 21.04.10 23:52
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Приветствую, Воронков Василий, вы писали:

ВВ>> Ахренеть
S>А так
Автор: Sheridan
Дата: 21.04.10
?


Все вот интересно, у тебя какая-то методология есть, по которой ты табы расставляешь? Типа почему

shit        ->value().text


а не

shit->value().            text


Или от балды?

Кстати, к вопросу о читабельности. Это кто-нибудь, кроме тебя когда-нибудь "читает"?
Re[3]: braces in C++
От: jazzer Россия Skype: enerjazzer
Дата: 22.04.10 00:54
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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


TK>>И есть под этим основание.

TK>>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось

TK>>
TK>>if (var)
TK>>  f();
TK>>  f1();
TK>>  f2();

TK>>


CC>C'mon!

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

В смысле, он написал бы так?
if (var)
{
  f();
}
  f1();
  f2();

Ну так, во-первых, человек должен быть абсолютно упившимся и обкурившимся, чтобы так написать и не заметить, что написал (в отличие от), а во-вторых, проверяющему или раскапывающему баг это сразу же бросится в глаза — я не представляю, как это можно не броситься, если написаны явные скобки.
В то время как первое легко и свободно пролетает и газ ни за что не цепляется, особенно если смотрящий много пишет на каком-нть питоне, где именно такой синтаксис с отступами канонический.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[9]: Я не парюсь
От: neFormal Россия  
Дата: 22.04.10 04:35
Оценка:
Здравствуйте, Sheridan, Вы писали:

F>> S>Еще раз спрашиваю: Это нечитабельно?

F>> абсолютно не читабельно..
S>Почему?

ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок..
скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом..
...coding for chaos...
Re[5]: Я не парюсь
От: dr.Chaos Россия Украшения HandMade
Дата: 22.04.10 07:28
Оценка:
Здравствуйте, Sheridan, Вы писали:

ВВ>> Все вот интересно, у тебя какая-то методология есть, по которой ты табы расставляешь? Типа почему

ВВ>> Или от балды?
S>У второго варианта невыровненное получается шире, чем в первом.

Так и запишем, Шеридану скучает по ASCII-art.

ВВ>> Кстати, к вопросу о читабельности. Это кто-нибудь, кроме тебя когда-нибудь "читает"?

S>Пока нет. И думаю с таким раскладом я хер кого в код пущу.

Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[10]: Я не парюсь
От: Sheridan Россия  
Дата: 22.04.10 09:23
Оценка:
Приветствую, neFormal, вы писали:

F> ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок..

F> скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом..
Присмотрись, там по одному оператору на строчку получается почти везде. Больше операторов на строку я леплю только если второй оператор типа break или там return
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[6]: Я не парюсь
От: Sheridan Россия  
Дата: 22.04.10 09:23
Оценка:
Приветствую, dr.Chaos, вы писали:

C> Так и запишем, Шеридану скучает по ASCII-art.

Да, скучаю. И не стесняюсь этого

C> ВВ>> Кстати, к вопросу о читабельности. Это кто-нибудь, кроме тебя когда-нибудь "читает"?

C> S>Пока нет. И думаю с таким раскладом я хер кого в код пущу.
C> Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки?
Проект еще нигде не выложен. Вот как будет еще и карта работать там, тогда размещу на sf, а щас просто смысла нет.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[7]: Я не парюсь
От: dr.Chaos Россия Украшения HandMade
Дата: 22.04.10 09:45
Оценка:
Здравствуйте, Sheridan, Вы писали:

C>> Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки?

S>Проект еще нигде не выложен. Вот как будет еще и карта работать там, тогда размещу на sf, а щас просто смысла нет.

А зачем выкладывать, если тебе помощники не нужны?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Re[8]: Я не парюсь
От: neFormal Россия  
Дата: 22.04.10 10:27
Оценка:
Здравствуйте, dr.Chaos, Вы писали:

C>>> Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки?

S>>Проект еще нигде не выложен. Вот как будет еще и карта работать там, тогда размещу на sf, а щас просто смысла нет.
DC>А зачем выкладывать, если тебе помощники не нужны?

чтобы навести ужас форматированием..
...coding for chaos...
Re[4]: Ура!
От: neFormal Россия  
Дата: 22.04.10 10:36
Оценка:
Здравствуйте, SergeCpp, Вы писали:

SC>Ура! В кои веки встретил человека с таким же эстетическим отношением к тексту программы!


это печально..

SC>Вот мой пример (2005 года):

SC>http://image003.mylivepage.ru/chunk3/4468/2/Development.gif

и картинка требующая либо регистрацию, либо платную смс-ку..
ох..
...coding for chaos...
Re[6]: Я не парюсь
От: CreatorCray  
Дата: 22.04.10 10:54
Оценка:
Здравствуйте, neFormal, Вы писали:

F>ты написал стилистическое говно..

F>чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..
Перебор конечно, но еще как то читабельно.
С if у него конечно сильно похуже.
А в остальном терпимо.
Индусокодеры пишут куда хуже.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[5]: Я не парюсь
От: Ночной Смотрящий Россия  
Дата: 22.04.10 10:56
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Пользуйтесь системой контроля версий, которая оперирует не строками а символами.


Ты даже не понял о чем речь. При чем тут символы? У тебя из-за локального изменения придется переформатировать всю твою арт-конструкцию, что вылезет в любой VCS

НС>>Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга.

S>Я ложил на эту хрень

Твои личные половые проблемы.

S> еще когда в вижуалстудии баловался. Баловство это. Расслабляет.


Смешно слышать подобное от человека, который даже не программист.

S> Не дает думать.


Плохому танцору ...

НС>> Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это.

S>Фигли ее поддерживать?

Править при каждом изменении всю конструкцию.

S>А мне вот нравится над кодом подумать. Сегодня вот целый вечер думал как лучше сохранять одну enum опцию.\


Результат только ...
Re[12]: Про хвост
От: SergeCpp Россия http://zoozahita.ru
Дата: 22.04.10 12:09
Оценка:
Здравствуйте, neFormal!

F>аналогия примерно такая:

F>
F>Привет,    Шеридан    , как де             ла     ?
F>Хочу дать тебе совет    переходи на вин    ду     .
F>И всё      в твоей жизни станет хоро       шо     .
F>А если ослушаешься    , тебя съест сл      он     .
F>И за такое форматирование на том свете     ты     \
F>будешь гореть в а                          ду     !!!111адинадинацать
F>


        Цап-царап
      сказал мыш- 
    ке: Вот ка- 
  кие делиш- 
 ки, мы пой- 
дем с то- 
 бой в суд, 
  я тебя 
   засужу. 
    И не смей 
      отпираться, 
     мы должны 
    расквитаться, 
   потому что 
  все утро 
 я без дела 
сижу. 
 И на это 
  нахалу 
   мышка так 
    отвечала: 
     Без суда 
      и без след- 
     ствия, сударь,
    дел не ведут. - 
    Я и суд, 
     я и след- 
      ствие, - 
        Цап- 
       царап 
      ей ответ- 
     ствует. - 
       При- 
        сужу 
         тебя к 
          смер- 
           ти я. 
          Тут 
         тебе 
       и ка- 
        пу- 
         т.

История, которую рассказала Мышь

История мышки, возможно, — наиболее известный пример "эмблемных", или "фигурных", стихотворений, написанных на английском языке. "Фигурные стихи" печатаются так, чтобы их контуры были как-то связаны с содержанием. Такие стихи писали еще в Древней Греции. Среди поэтов нового времени, отдающих дань этой форме, такие известные имена, как Джордж Герберт, Роберт Геррик, Стефан Малларме, Делан Томас и современный французский поэт Гийом Аполлинер.

Чарльз Боултенхауз защищает "фигурные" стихи как серьезный художественный жанр, если не убедительно, то с жаром ("Poems in the Shape of Things", "Art, News Annual", 1959). Другие примеры этого жанра можно найти в журнале "Портфолио" (Portfolio), лето 1950 г. (См. также: C. C. Bombaugh. Gleanings for the Curious, 1867, revised; William S. Walsh. "Handy-Book of Literary Curiosities", 1892; Caralyn Wells. A Whimsey Anthology, 1906).

Читать дальше
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[5]: Ура!
От: SergeCpp Россия http://zoozahita.ru
Дата: 22.04.10 12:30
Оценка:
Здравствуйте, neFormal!

SC>>Ура! В кои веки встретил человека с таким же эстетическим отношением к тексту программы!

F>это печально..

De gustibus non est disputandum

F>и картинка требующая либо регистрацию, либо платную смс-ку..


Извините, пожалуйста. Я проверял — у меня показывалось (в незалогиненном на том сайте состоянии).

Вот картинка:
http://files.rsdn.ru/44396/Development.gif

В исходниках
Автор: SergeCpp
Дата: 15.11.05
картинка тоже есть.
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[6]: Ура!
От: neFormal Россия  
Дата: 22.04.10 12:57
Оценка:
Здравствуйте, SergeCpp, Вы писали:

SC>Вот картинка:

SC>http://files.rsdn.ru/44396/Development.gif

ОМГ.. GOTO в тривиальном коде!!11
...coding for chaos...
Re[12]: Я не парюсь
От: Sheridan Россия  
Дата: 22.04.10 15:38
Оценка:
Приветствую, neFormal, вы писали:

F> ты не понял.. у тебя вправо уведён кусок, который логически и синтаксически принадлежит коду слева..

Это ты не понял.

F> хороший код — это не тот, который выровнен по каким либо границам, а тот, смысл которого можно понять, проглядев наискосок..

Присмотрись, у меня в коде явно выделяются стобцы с одинаковым содержанием и столбцы с разным содержанием. Так что код просматривается даже не наискосок, а просто сверху вниз.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[6]: Ура!
От: Ночной Смотрящий Россия  
Дата: 22.04.10 16:18
Оценка:
Здравствуйте, SergeCpp, Вы писали:

SC>Извините, пожалуйста. Я проверял — у меня показывалось (в незалогиненном на том сайте состоянии).


SC>Вот картинка:

SC>http://files.rsdn.ru/44396/Development.gif

Ты живешь в городе с населением 100, максимум 150 тыс. человек, и в твоей конторе 5, максимум 10 человек, у которых основная обязанность — написание кода. Я прав?
Re[11]: Я не парюсь
От: Воронков Василий Россия  
Дата: 22.04.10 17:39
Оценка:
Здравствуйте, Sheridan, Вы писали:

F>> ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок..

F>> скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом..
S>Присмотрись, там по одному оператору на строчку получается почти везде. Больше операторов на строку я леплю только если второй оператор типа break или там return

x + y + z на сколько строк у тебя будет?
Кстати, -> и . тоже операторы. Так что подобная избирательность как-то непонятна.
Re[6]: Я не парюсь
От: Sheridan Россия  
Дата: 22.04.10 17:53
Оценка:
Приветствую, Ночной Смотрящий, вы писали:

НС> Ты даже не понял о чем речь. При чем тут символы? У тебя из-за локального изменения придется переформатировать всю твою арт-конструкцию, что вылезет в любой VCS

НС> НС>> Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это.
НС> S>Фигли ее поддерживать?
НС> Править при каждом изменении всю конструкцию.
А, вон ты куда ведешь, понял.
Я другого понять не могу — с какого хера я должен оглядываться на какуютотам систему контроля версий вместо того чтобы писать так как мне нравится. Оно написано для контроля, вот пусть и контролирует то что я пишу.
И не надо про "коммандный стиль" и всякие там соглашения о стиле. Будет соглашение, с которым согласится большинство — я не буду противиться, но до тех пор я буду писать так, как нравится мне.

НС> НС>>Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга.

НС> S>Я ложил на эту хрень
НС> Твои личные половые проблемы.
Нет, у меня как раз проблем нет. А вот вы со своими интелценцами скоро без студии и хелло ворд не напишите, ибо необходимая часть мозга просто атрофируется.

НС> S> еще когда в вижуалстудии баловался. Баловство это. Расслабляет.

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

НС> S> Не дает думать.

НС> Плохому танцору ...
Ох, погоди, помоему я тебя за живое зацепил. Похоже в точку таки сказал


НС> S>А мне вот нравится над кодом подумать. Сегодня вот целый вечер думал как лучше сохранять одну enum опцию.

НС> Результат только ...
Что результат? Долговаривай уж, телепат доморощенный...
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[12]: Я не парюсь
От: Sheridan Россия  
Дата: 22.04.10 18:10
Оценка:
Приветствую, Воронков Василий, вы писали:

ВВ> x + y + z на сколько строк у тебя будет?

int a = x+y+z;

но
a = some         ->value( parameter ) + 
    othersome    ->value( otherval  ) +
    somelocal     .value( z         )



ВВ> Кстати, -> и . тоже операторы. Так что подобная избирательность как-то непонятна.

Я не олпираюсь на операторы, скобки и прочиее символы. Я опираюсь на одинаковые части строк.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[7]: Я не парюсь
От: Ночной Смотрящий Россия  
Дата: 22.04.10 20:11
Оценка:
Здравствуйте, Sheridan, Вы писали:

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


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

НС>> S>Я ложил на эту хрень

НС>> Твои личные половые проблемы.
S>Нет, у меня как раз проблем нет. А вот вы со своими интелценцами скоро без студии и хелло ворд не напишите, ибо необходимая часть мозга просто атрофируется.

Смешно это слышать именно от тебя.

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


Тебе бы так увязать, как я. Может тогда не ныл бы про деньги.

НС>> Плохому танцору ...

S>Ох, погоди, помоему я тебя за живое зацепил. Похоже в точку таки сказал

Это скорее я тебя зацепил Экспрессия то от тебя в основном прет.

НС>> Результат только ...

S>Что результат? Долговаривай уж, телепат доморощенный...

Вот вот, кто кого еще зацепил. Телепатия тут не в тему. Брался ты за янус — обкакался, не осилив XSLT. Брался за свой аналог — дальше пука дело не ушло. Брался за авалон — все закончилось пачкой матюков в твою сторону. И после этого ты имеешь наглось с умным видом рассуждать про заплывчатость мозгов. Ты бы со своими мозгами сперва разобрался.
Re[9]: Я не парюсь
От: neFormal Россия  
Дата: 23.04.10 08:39
Оценка:
Здравствуйте, Sheridan, Вы писали:

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

НС>> Тебе бы так увязать, как я. Может тогда не ныл бы про деньги.
S>Это где я ною про деньги?

ну, например:
http://www.rsdn.ru/forum/rsdn/3784206.1.aspx
Автор: Sheridan
Дата: 22.04.10


S>Когда доделаю — не знаю, но проект не заброшен, времени немного свободного,


если целый вечер думать над сохранением одной enum опции, то никакого времени не хватит..

S>Только мне почемуто кажется что ты хер присоединишься.


грязную речь изгоняют веником берёзовым..
...coding for chaos...
Re[10]: Я не парюсь
От: Sheridan Россия  
Дата: 23.04.10 09:32
Оценка:
Приветствую, neFormal, вы писали:

F> S>Это где я ною про деньги?

F> ну, например:
F> http://www.rsdn.ru/forum/rsdn/3784206.1.aspx
Автор: Sheridan
Дата: 22.04.10

Гы, я там про себя что-ть говорил? В чем я там неправ?
Лично у меня хватит денег и на серверные винды. Но я предпочитаю почемуто не тратить деньги на покупку воздуха.

F> S>Когда доделаю — не знаю, но проект не заброшен, времени немного свободного,

F> если целый вечер думать над сохранением одной enum опции, то никакого времени не хватит..
А я не спешу. У меня нет цели заработать денег. У меня есть цель написать. Следовательно можно не спешить.

F> S>Только мне почемуто кажется что ты хер присоединишься.

F> грязную речь изгоняют веником берёзовым..
То есть не присоединишься? Ну я так и думал.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[11]: Я не парюсь
От: neFormal Россия  
Дата: 23.04.10 10:13
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Гы, я там про себя что-ть говорил? В чем я там неправ?

S>Лично у меня хватит денег и на серверные винды. Но я предпочитаю почемуто не тратить деньги на покупку воздуха.

дааааа-дааааа..

F>> S>Когда доделаю — не знаю, но проект не заброшен, времени немного свободного,

F>> если целый вечер думать над сохранением одной enum опции, то никакого времени не хватит..
S>А я не спешу. У меня нет цели заработать денег. У меня есть цель написать. Следовательно можно не спешить.

до второго пришествия только успей, а то в ад попадёшь..

F>> S>Только мне почемуто кажется что ты хер присоединишься.

F>> грязную речь изгоняют веником берёзовым..
S>То есть не присоединишься? Ну я так и думал.

а должен был?.
эт как получается: ты вечерами думаешь о сохранении одной опции, а я тем временем должен весь проект реализовывать?. хорошая у тебя позиция, просто отличная..
...coding for chaos...
Re[12]: Я не парюсь
От: Sheridan Россия  
Дата: 23.04.10 14:38
Оценка:
Приветствую, neFormal, вы писали:

F> а должен был?.

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

Зачем весь проект? Ты в это время бы думал например как можно быстрее парсить nmea, или к примеру подбирал бы стиль приложения по умолчанию для дня и для ночи. Или еще что. Неважно, главное чтобы тебе интересно было.
И опять же, я никуда никого не гоню. Нет времени — не пиши. Есть время, но есть еще и фильм — смотри фильм.
Я вообще не сажусь программировать без желания.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[7]: Ура!
От: uhh  
Дата: 24.04.10 14:40
Оценка:
Здравствуйте, neFormal, Вы писали:

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


SC>>Вот картинка:

SC>>http://files.rsdn.ru/44396/Development.gif

F>ОМГ.. GOTO в тривиальном коде!!11


пардон за занудство, но верно ли я понял, что вы используете GOTO в нетривиальном коде?
ну все, мы идем к вам!
Re: braces in C++
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 24.04.10 15:18
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Ваше мнение по этому поводу?


*прочитав всю тему*

И ЭТИ люди критикуют способ оформления блоков кода, принятый в питоне?!
... << RSDN@Home 1.2.0 alpha 4 rev. 1468>>

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[8]: Ура!
От: neFormal Россия  
Дата: 24.04.10 15:35
Оценка:
Здравствуйте, uhh, Вы писали:

SC>>>Вот картинка:

SC>>>http://files.rsdn.ru/44396/Development.gif
F>>ОМГ.. GOTO в тривиальном коде!!11
uhh>пардон за занудство, но верно ли я понял, что вы используете GOTO в нетривиальном коде?

пока ещё не было такого кода, где это бы надо было использовать..
а там, где видел(чужой незнакомый код), это было вероятно оправданным решением.. по крайней мере код воспринимался легче, чем если бы его написали без гото..
...coding for chaos...
Re: braces in C++
От: minorlogic Украина  
Дата: 24.04.10 16:07
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Ваше мнение по этому поводу?


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

Про использование std:: , я стараюсь использовать пореже using.
Если в блоке встречается много (больше двух) std:: тогда возможно имеет смысл поставить using.
Cтандартные контейнеры стараюсь передефайнить typedef std::vector<MyClass> MyClassList;
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.04.10 04:48
Оценка:
Здравствуйте, Sheridan, Вы писали:

НС>> x64>> У тебя проблемы.

НС>> S>С кем?
НС>> С чем. С программированием.

S>Возможно. Я не программист


Это заметно и очень быстро.
Re[7]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.04.10 05:04
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>И не надо про "коммандный стиль" и всякие там соглашения о стиле. Будет соглашение, с которым согласится большинство — я не буду противиться, но до тех пор я буду писать так, как нравится мне.


Это крайне глупо, потому что ты "закрепляешь" ошибки и согласиться с изменениями тебе будет очень сложно.
НС>> Твои личные половые проблемы.
S>Нет, у меня как раз проблем нет. А вот вы со своими интелценцами скоро без студии и хелло ворд не напишите, ибо необходимая часть мозга просто атрофируется.

У тебя тренируется только мозжечок, когда на клавиши давишь. Есть более качетсвенный инструмент для прокачки этго органа.
Re[5]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 25.04.10 05:13
Оценка:
Здравствуйте, Sheridan, Вы писали:

F>> S>Ты продолжишь утверждать о нечитабельности? о0

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

S>Чтото я не могу понять смысла фразы... Ты не можешь прочесть мой код? Или тебе не нравится сам код? Или тебе не нравятся табы?


Твой код прочесть крайне сложно, а по прочтении оного крайне сложно понять, что же он делает.

дело не в табах, а в том что ты делаешь в одном методе слишком много вещей.

Твое форматирование это лишь попытка обойти эту проблему. Это форматирование делает код понятным только тебе.

Более того, если ты высунешь нос из кода и вернешься к нему через месяц друго, то гарантировано даже форматирование не поможет тебе понять особенности и для модификации ты потратишь слишком много времени.
Re[6]: Так кто же - программист?
От: SergeCpp Россия http://zoozahita.ru
Дата: 25.04.10 07:25
Оценка:
Здравствуйте, Ikemefula!

S>>Возможно. Я не программист


I>Это заметно и очень быстро.


А что в таком случае можно сказать вот об этом коде:
http://rsdn.ru/forum/cpp/2340905.1.aspx
Автор: SergeCpp
Дата: 08.02.07


Является ли написавший (написавшие) его — программистом?

А вот об этом коде:
http://rsdn.ru/forum/philosophy/1315549.1.aspx
Автор: SergeCpp
Дата: 09.08.05


Является ли написавший его — программистом?

Если является, то чем этот код лучше кода Шеридана?

P.S. Почему не все программисты выравнивают код?
Автор: Whistler
Дата: 18.10.05
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[7]: Я не парюсь
От: neFormal Россия  
Дата: 25.04.10 19:30
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны.


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

I>Отсюда неудивительно наблюдать в проектах наличие уникальной мелочевки вроде смартпоинтеров и прочей дряни.

I>Крайне странно после всего этого слышать о достоинствах языка С++.

жиром заляпал мне монитор..
...coding for chaos...
Re[2]: braces in C++
От: neFormal Россия  
Дата: 26.04.10 08:22
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

А>>Ваше мнение по этому поводу?

KV>*прочитав всю тему*
KV>И ЭТИ люди критикуют способ оформления блоков кода, принятый в питоне?!

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

но вот что реально бесит в питоновских отступах, так это необходимость форматирование делать пробелами.. и всё это изза тех нехороших людей, которые не умеют пользоваться Tab-ами..
...coding for chaos...
Re[4]: braces in C++
От: neFormal Россия  
Дата: 26.04.10 09:19
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

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

KV>Секундочку... Что мешает пользоваться табами для отступов в питоне?

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

а вообще да, ничего не мешает пользоваться табами.. особенно, если ты работаешь один..
...coding for chaos...
Re[2]: Я не парюсь
От: Sheridan Россия  
Дата: 26.04.10 09:33
Оценка:
Приветствую, kochetkov.vladimir, вы писали:

k> S>Пишу по разному. Руководствуюсь исключительно читабельностью.


k> Wow А сердечко из кода выложить сможешь?


Надо будет — сделаю
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re[4]: braces in C++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.04.10 09:53
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

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


KV>Секундочку... Что мешает пользоваться табами для отступов в питоне?


Люди, которые пользуются пробелами.
Re[9]: Я не парюсь
От: neFormal Россия  
Дата: 26.04.10 10:04
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>>Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны.

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

только при чём тут лямбды и замыкания?.

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


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

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


пользователи Qt смеются над тобой..
...coding for chaos...
Re[11]: Я не парюсь
От: CreatorCray  
Дата: 26.04.10 11:34
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>При том, что лямбды и замыкания позволяют _на_порядок_ уменьшить размер оверхеда.

Я вот как в ICC появилась поддержка лямбд в трёх проектах до сих пор не нашёл куда эти новомодные лямбды прикрутить. Не нужны они нигде оказались.
Какой уж тут оверхед.

I>Или ты думаешь C++0x просто так решили родить ?

В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[6]: braces in C++
От: CreatorCray  
Дата: 26.04.10 11:34
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

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

Тебе что чем табы мешают?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Tab <-> Spaces
От: SergeCpp Россия http://zoozahita.ru
Дата: 26.04.10 13:03
Оценка:
Здравствуйте, Mamut!

M>А табы внутри кода, а не только для отступов — это проблема.


Собственно, такие штуки должна IDE отслеживать и заменять табы на соответствующее число пробелов.
Может, в Visual Studio такая настройка и есть?
А если нету — можно макро написать и на Tab её повесить: если слева есть значащий символ, ставить пробелов, сколько нужно.
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[12]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 26.04.10 13:37
Оценка:
Здравствуйте, CreatorCray, Вы писали:

I>>При том, что лямбды и замыкания позволяют _на_порядок_ уменьшить размер оверхеда.

CC>Я вот как в ICC появилась поддержка лямбд в трёх проектах до сих пор не нашёл куда эти новомодные лямбды прикрутить. Не нужны они нигде оказались.
CC>Какой уж тут оверхед.

А ты покажи код тому, кто лямбдами пользуется.

CC>В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк.


Функциональный стиль это оно и есть.
Re[5]: Tab <-> Spaces
От: QrystaL Украина  
Дата: 26.04.10 14:38
Оценка:
SC>Собственно, такие штуки должна IDE отслеживать и заменять табы на соответствующее число пробелов.
SC>Может, в Visual Studio такая настройка и есть?

В Visual Studio такое поведение по-умолчанию (по крайней мере, для C#)
Re[6]: Tab <-> Spaces
От: SergeCpp Россия http://zoozahita.ru
Дата: 26.04.10 15:19
Оценка:
Здравствуйте, QrystaL, Вы писали:

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

SC>>Может, в Visual Studio такая настройка и есть?

QL>В Visual Studio такое поведение по-умолчанию (по крайней мере, для C#)


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

В Студии 6 заменялись все.

Тут же говорится только про табы внутри кода
Автор: Mamut
Дата: 26.04.10
.
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[13]: Я не парюсь
От: neFormal Россия  
Дата: 26.04.10 17:52
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>А ты покажи код тому, кто лямбдами пользуется.


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

CC>>В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк.

I>Функциональный стиль это оно и есть.

но весь С++0х не в функциональном стиле.. поэтому одна рюшечка для лямбда-самцов никакого особого значения для всего языка не имеет..
...coding for chaos...
Re[13]: Я не парюсь
От: CreatorCray  
Дата: 26.04.10 19:39
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Это говорит не о ненужности, а лишь о твоем неумении их применять.

Вброс мимо.
Это говорит о том, что код был написан изначально в таком стиле, что применить функциональщину там попросту негде.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[14]: Я не парюсь
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.04.10 04:32
Оценка:
Здравствуйте, neFormal, Вы писали:

I>>А ты покажи код тому, кто лямбдами пользуется.


F>а ты покажи код с лямбдами тому, кто ими не пользуется..


Да не расстраивайся так, я тебя не призываю пользоватья лямбдами.

CC>>>В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк.

I>>Функциональный стиль это оно и есть.

F>но весь С++0х не в функциональном стиле.. поэтому одна рюшечка для лямбда-самцов никакого особого значения для всего языка не имеет..


Это ты сильно погорячился.
Re: Я не парюсь
От: kvasya  
Дата: 27.04.10 08:32
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Пишу по разному. Руководствуюсь исключительно читабельностью.


Код хоть сейчас в журнал или на выставку. Очень читабельно.

Но меня (честно) смущает одно — как его поддерживать?
Ты используешь какое-либо ПО для такого форматирования? или руками все?
Re[6]: braces in C++
От: kvasya  
Дата: 27.04.10 08:35
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

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


KV>А вы оказывается вон какие...


Я Astyle прикрутил к subversion, теперь до лампочки кто там чего нагородил. Очень удобно.
Re[7]: Tab <-> Spaces
От: QrystaL Украина  
Дата: 27.04.10 08:57
Оценка:
SC>Заменяет только те табы, что внутри кода (слева есть непробельный символ), или любые?

Любые
Re[2]: Я не парюсь
От: Sheridan Россия  
Дата: 27.04.10 09:18
Оценка:
Приветствую, kvasya, вы писали:

k> Код хоть сейчас в журнал или на выставку. Очень читабельно.

Спасибо.

k> Но меня (честно) смущает одно — как его поддерживать?

k> Ты используешь какое-либо ПО для такого форматирования? или руками все?
Руками. Если изначально в таком стиле писать — то не сложно поддерживать. А вот переписывать в такой стиль из какогото другого — бесспорно довольно трудоемко.
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
Re: braces in C++
От: lost_guadelenn  
Дата: 28.04.10 11:46
Оценка:
Привет.

Я стараюсь писать всегда со скобками, и скобки расставлять на отдельной строке.
Основной принцип — чтобы мозг как можно меньше отвлекался на разбор синтаксиса.

Если скобка на одной строке с if'ом, то приходится глазами искать начало блока.
Если скобок нет, то приходится искать и начало и конец блока.

Исключения — когда такой стиль наоборот начинает затруднять чтение.
Например, когда подряд идет много однострочных if'ов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.