Здравствуйте, 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, значит пора закрыть эту страницу.
Всем пока
По поводу скобок. Я тоже приучен их ставить всегда. Причем скобку на той же строке что и if
ну то есть
if (var) {
f();
}
И есть под этим основание.
Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось
if (var)
f();
f1();
f2();
Классическая ситуация, 10 вечера перед релизом. Программа вела себя как-то странно, через некоторое время в дебаггере увидел что в этом месте творится чертовщина, почему-то f1(), f2() не исполняются (напоминаю 10 вечер, уставший, охота домой баг непонятный и критичный). Я всегда такие вещи видел, а именно в тот момент, я смотрел и тупил. А я потратил час прежде чем мой воспаллённый мозг понял в чём дело. И когда я понял возненавидел этого программиста
Это дейстивтельно нужное правило в Code Convention, оно предотвращает баги. Оно действительно, полезно и нужно, оно намного ценне чем 2 или 4 пробела, или где ставить скобочку фигурную, на той же строке или на следующей.
Здравствуйте, TarasKo, Вы писали:
TK>И есть под этим основание. TK>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось
TK>
TK>if (var)
TK> f();
TK> f1();
TK> f2();
TK>
Ты всерьез считаешь, что если лепить скобки где ни попадя, то вероятность ошибок снижается? А я бы наоборот вместо того, чтоб утверждать обязательность расстановки скобок, смотрел бы в сторону уменьшения их количества. По-моему, обилие скобок в коде — дурной признак. Загромождение кода скобками там, где и без них все понятно, наоборот напрягает глаз и провоцирует ошибки. Когда текст программы рябит скобками, как в МСДН-овских примерах, то вероятность ошибочно внести внутрь блока что-то лишнее так же велика, как и вероятность не включить в него что-то нужное. Ведь если разобраться, хорошо спроектированная программа на С++ с хорошо структурированным кодом читается как поэма и использует минимум скобок — в них попросту отпадает необходимость.
Здравствуйте, 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, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Аноним, Вы писали:
А>Я уже на столько так привык, что не могу смотреть на код без скобок в простых выражениях. А>На новой работе, более опытный коллега возмущается по этому поводу. А какое Ваше мнение по этому поводу?
Привыкнуть можно ко всему, я считаю что способ оформления блоков — слишком пустяковый повод для спора.
А>Он везде использует using namespase std; А>Ваше мнение по этому поводу?
Не стоит злоупотреблять using namespace, это убивает пользу от пространсв имён.
В хедерах на уровне файла писать using namespace не следует вообще.
Для длинных namespace удобно создавать локальные alias'ы, но std к таким, разумеется, не относится.
Здравствуйте, CreatorCray, Вы писали:
TK>>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось CC>Если он пребывал в таком астрале то ничто ему не мешало дописать то же самое после скобки.
А если программист вполне в здравом уме, отсутствие скобок осознаёт, и желает вписать еще пару строк в тело if, то ему придется скобки прикручивать вручную. Кто как, а я нахожу намного менее затратным всегда и везде ставить скобки (что некоторые IDE умеют автоматизировать), чем добавлять их при необходимости. Заодно все else гарантированно совмещаются со своими if:
if(c1)
// {if(c2)
f1();
else
f2(); // а не удалить ли эту строчку вместе с else?
// }else// {
f3();
// }
Аноним:
А>только бесило что заставляли ставить скобку в отдельной строке: А>
А>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; А>Ваше мнение по этому поводу?
Здравствуйте, CreatorCray, Вы писали:
RO>>А если программист вполне в здравом уме, отсутствие скобок осознаёт, и желает вписать еще пару строк в тело if, то ему придется скобки прикручивать вручную. CC>Это просто безумно затратно, да! CC>Куда менее затратно ставить их везде, ведь во всех местах 100% что нить будет дописываться!
А "затратно" в каком смысле?
По идее дописывать скобки вообще всегда и на автомате стоит очень мало усилий программисту.
А вот смотреть в каждом случае нужно ли добавить скобок, требует не отключать голову
Кроме того, расстановкой скобок может вообще IDE заниматься...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Приветствую, Ночной Смотрящий, вы писали:
НС> Проблема арт-декора в коде заключается в том, что небольшое переименование потенциально может привести к перефигачиванию всего файла. А нелокальностьизменений это нездорово.
Пользуйтесь системой контроля версий, которая оперирует не строками а символами.
НС>Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга.
Я ложил на эту хрень еще когда в вижуалстудии баловался. Баловство это. Расслабляет. Не дает думать. А в итоге код абы-какой. Все равно же потом переписать нетрудно, а потомм еще раз, а потом еще раз, а потом еще раз...
НС> Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это.
Фигли ее поддерживать? Написал один раз и пользуешся. Ах да... рефакторинг... Расслабились вы, вот что.
Нет, я понимаю, что вы этим деньги зарабатываете, что для многих программирование — как станок для токаря, просто инструмент.
А мне вот нравится над кодом подумать. Сегодня вот целый вечер думал как лучше сохранять одну enum опцию.
Здравствуйте, CreatorCray, Вы писали:
CC>Эта отмазка стара как говно мамонта. CC>Если он пребывал в таком астрале то ничто ему не мешало дописать то же самое после скобки.
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;
}
}
Здравствуйте, Sheridan, Вы писали:
F>> S>Ты продолжишь утверждать о нечитабельности? о0 F>> оторвать руки и пришить новые.. вдруг они такой шлак будут отказываться писать.. S>Чтото я не могу понять смысла фразы...
ну я сразу понял, что не только руки такие..
S>Ты не можешь прочесть мой код? Или тебе не нравится сам код? Или тебе не нравятся табы? S>Будь уж бобер, поясни.
ты написал стилистическое говно..
чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..
Добрый день коллеги. Раньше, когда еще был студент, сабж не использовал если были простые конструкции тип:
if (a)
f();
В компаниях при работе с большими проектами всегда заставляли ставить скобки даже для таких конструкций. Приучился и сам, только бесило что заставляли ставить скобку в отдельной строке:
if (a)
{
f();
}
Требуют, ну и требуют, делаю, но в своих проектах я тоже всегда стал использовать скобки, но:
if (a) {
f();
}
Я уже на столько так привык, что не могу смотреть на код без скобок в простых выражениях.
На новой работе, более опытный коллега возмущается по этому поводу. А какое Ваше мнение по этому поводу?
И еще коллега возмущается, что я везде использую
std::
Он везде использует using namespase std;
Ваше мнение по этому поводу?
Это приемлемо, если человек следит за своим кодом, но становится неприятным, когда он напишет кучу вложенных if несколько страниц — тяжело понять, где начало и где конец блока.
Здравствуйте, TarasKo, Вы писали:
TK>Охота задать вопрос, тем кто не согласен с обязательными скобками. А что вы выигрываете в случае если скобочку не ставить. Экономите одну строку? Или это просто привычка и скобка там нарушит ваше чувство гармонии.
Код выглядит более читабельным.
Впрочем правило не ставить такие скобки как правило идёт вместе с другими правилами оформления кода, типа отделять логические куски программы пустыми строками и т.п. В результате комплекса этих правил код хорошо читаем.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, se_sss, Вы писали:
_>Здравствуйте, Аноним, Вы писали: А>>
А>>if (a) {
А>> f();
А>>}
А>>
_>Это приемлемо, если человек следит за своим кодом, но становится неприятным, когда он напишет кучу вложенных if несколько страниц — тяжело понять, где начало и где конец блока.
а вот не надо писать кучу вложенных if-ов
регулярно приходится разгребать код с вложенными if-ами на много страниц. всегда крутится в голове один вопрос — зачем???
Здравствуйте, TarasKo, Вы писали:
TK>Если бы это выглядело вот так, то сильно бросалось бы в глаза
<...>
А если бы так:
if (var) {
f();
} f0();
f1();
f2();
?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Приветствую, Ночной Смотрящий, вы писали:
НС> S>Я другого понять не могу — с какого хера я должен оглядываться на какуютотам систему контроля версий вместо того чтобы писать так как мне нравится. НС> Нравится — понятие субъективное. Если речь идет о работе в команде, то выбирают общий для всех стиль. Если же речь о занятии интеллектуальным онанизмом — об это надо сразу говорить.
Троечка тебе, фигурное квотирование очень на виду.
И не надо про "коммандный стиль" и всякие там соглашения о стиле. Будет соглашение, с которым согласится большинство — я не буду противиться, но до тех пор я буду писать так, как нравится мне.
НС> S>Нет, у меня как раз проблем нет. А вот вы со своими интелценцами скоро без студии и хелло ворд не напишите, ибо необходимая часть мозга просто атрофируется. НС> Смешно это слышать именно от тебя.
Да велкам, смеся.
НС> S>Да мне похер, посмейся. Я же смеюсь постоянно над тем, как вы все больше и больше в га... эээ... в микрософт увязаете... НС> Тебе бы так увязать, как я. Может тогда не ныл бы про деньги.
Это где я ною про деньги?
НС> НС>> Плохому танцору ... НС> S>Ох, погоди, помоему я тебя за живое зацепил. Похоже в точку таки сказал НС> Это скорее я тебя зацепил Экспрессия то от тебя в основном прет.
От меня она всегда прет, так шо...
НС> НС>> Результат только ... НС> S>Что результат? Долговаривай уж, телепат доморощенный... НС> Вот вот, кто кого еще зацепил. Телепатия тут не в тему. Брался ты за янус — обкакался, не осилив XSLT.
Я и не собирался этот бред изучать.
НС>Брался за свой аналог — дальше пука дело не ушло.
Доделаю, посмотрим как с януса и авалона ко мне побежите. Когда доделаю — не знаю, но проект не заброшен, времени немного свободного, а сейчас я его трачу на свою gps тулзу, код которой собсна тут показывал. Есть желание — присоединяйся. Только мне почемуто кажется что ты хер присоединишься. Недорос еще видимо до того чтобы другим помогать.
НС>Брался за авалон — все закончилось пачкой матюков в твою сторону.
Только мой код почемуто все еще в авалоне есть. Парадокс?
НС>И после этого ты имеешь наглось с умным видом рассуждать про заплывчатость мозгов. Ты бы со своими мозгами сперва разобрался.
Мои мозги ничем безполезным не засраты. Впрочем неудивительно что ты считаешь наоборот. У каждого своя правда.
F>ты написал стилистическое говно.. F>чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..
разделение таких конструкций это стиль А вот то, ради чего это делается, указывает на недостаток опыта, чувство собственной исключительности, избегание коммандной разработки и узкое понимание принципов декомпозиции.
В одном из метдов соеденены 4 разных сущности которые друг к другу имеют крайне малое отношение. Достаточно грамотно поделить это на части, что бы код стал понятным.
Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны.
Отсюда неудивительно наблюдать в проектах наличие уникальной мелочевки вроде смартпоинтеров и прочей дряни.
Крайне странно после всего этого слышать о достоинствах языка С++.
Здравствуйте, Mamut, Вы писали:
M>табы внутри кода — это зло. Попробуй у себя в редакторе сменить ширину таба с 4-х на 2. Внутри кода все пробелы должны отбиваться именно пробелами. Против отсупов в начале строки, выполненных табами, ничего не имею против.
Да при чем здесь табы ? В известных случаях это дейтсвительно помогат читать код.
Шеридан использует табы для компенсации последствий нарушения базовых принципов декомпозиции.
Т.е. он борется со сложностью оверхеда форматированием, а не правильным кодированием.
Здравствуйте, Sheridan, Вы писали:
S>Пишу по разному. Руководствуюсь исключительно читабельностью.
Wow А сердечко из кода выложить сможешь?
А если серьезно, то IMHO зря тут все на этот стиль так накинулись. Такое форматирование иногда может быть вполне оправданным (если использовать его без фанатизма). Например, при форматировании сопсоставления с образцом:
код из Nemerle'овского парсера (ncc\parsing\MainParser.n):
табы внутри кода — это зло. Попробуй у себя в редакторе сменить ширину таба с 4-х на 2. Внутри кода все пробелы должны отбиваться именно пробелами. Против отсупов в начале строки, выполненных табами, ничего не имею против.
Здравствуйте, kochetkov.vladimir, Вы писали:
k> или при развесистых объявлениях каких-либо структур, либо вызовах функций / методов: k> код оттуда же:
parse_property (params : ParseParams)
Если метод принимает более 5 параметров, их надо сворачивать в логическую группу (согласно правилу о том, что человек помнит последние 7±2 объектов в "быстрой памяти" и, тем самым, освобождая память для участка кода и других задач).
Здравствуйте, TarasKo, Вы писали:
TK>Классическая ситуация, 10 вечера перед релизом. Программа вела себя как-то странно, через некоторое время в дебаггере увидел что в этом месте творится чертовщина, почему-то f1(), f2() не исполняются (напоминаю 10 вечер, уставший, охота домой баг непонятный и критичный). Я всегда такие вещи видел, а именно в тот момент, я смотрел и тупил. А я потратил час прежде чем мой воспаллённый мозг понял в чём дело. И когда я понял возненавидел этого программиста
TK>Это дейстивтельно нужное правило в Code Convention, оно предотвращает баги. Оно действительно, полезно и нужно, оно намного ценне чем 2 или 4 пробела, или где ставить скобочку фигурную, на той же строке или на следующей.
А может лучше принять совсем другое правило: "работать с воспалённым мозгом запрещено"?
Кстати, в современных IDE отступы сами собой расставились бы правильно.
Кроме того, обычно можно попросить IDE отформатировать кусок кода заново.
В случае таких вот "мистических ошибок воспалённых мозгов", фича переформатирования кода зело полезна...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Аноним, Вы писали:
А>Я уже на столько так привык, что не могу смотреть на код без скобок в простых выражениях. А>На новой работе, более опытный коллега возмущается по этому поводу. А какое Ваше мнение по этому поводу?
IMHO, если код людей сильно чувствителен к стратегии расстановки скобок, то у низ с кодом что-то не так
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>IMHO, если код людей сильно чувствителен к стратегии расстановки скобок, то у низ с кодом что-то не так
"С Вами просто невозможно спорить!" (С)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Приветствую, Воронков Василий, вы писали:
ВВ> Все вот интересно, у тебя какая-то методология есть, по которой ты табы расставляешь? Типа почему ВВ> Или от балды?
У второго варианта невыровненное получается шире, чем в первом.
ВВ> Кстати, к вопросу о читабельности. Это кто-нибудь, кроме тебя когда-нибудь "читает"?
Пока нет. И думаю с таким раскладом я хер кого в код пущу.
Один комментарий: знаки логической сцепки я помещал бы в начале строки. Это позволяет сразу замечать логическую схему.
Ну, и добавление новой строки будет проще копи-пастом делать (без добавления знака сцепки в предыдущую).
Здравствуйте, neFormal, Вы писали:
I>>Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны.
F>лямбды и замыкания не избавляют от сложности, они просто переносят её в другую часть кода.. поэтому это не в тему..
В одном случае у тебя будет грамотная оттестированя либа, её можно пользовать чз высокоуровневый интерфейс, а в другом весь оверхед будет прямо по месту решения задачи.
или будет куча глупого кода, долбаных циклов, макросов, вспомогательных методово, которые придется разгребать.
I>>Отсюда неудивительно наблюдать в проектах наличие уникальной мелочевки вроде смартпоинтеров и прочей дряни. I>>Крайне странно после всего этого слышать о достоинствах языка С++.
F>жиром заляпал мне монитор..
Тут ничего солжного нет — задачи решаются не языками, а фреймворками, кои, в свою очередь, пишутся на языках. При этом на нынешнм уровне технологий язык фреймворка можт быть практически любым.
На плохом языке никогда не будет серьезных фреймворков. Стало быть, когда сплюсники пишут свои смартпоинтеры, у них попросту нет своего фреймворка по известной причине, ни использования других фреймворков по той же прчине.
1. У вас выровнено ui->pwGpsSourceSelect и ui->rb*, однако эти вещи принадлежат к различным уровням вложенности скобок, да и если уж стали выравнивать так, стоило бы и "->isEmpty()" выровнять с нижними. Хотя, повторюсь, это разные уровни — выравниваем только одинаковый.
2. У вас "->is" (без пробела), тогда как "->" есть связь-операция-между rb* и is*, поэтому эта связь подлежит симметричному выделению пробелами — слева и справа.
3. Три элемента операции && следует выровнять на одном уровне.
4. Закрывающие ")" тоже следует выровнять вровень с тем, что соответствующая скобка открывает.
Здравствуйте, neFormal, Вы писали:
F>но вот что реально бесит в питоновских отступах, так это необходимость форматирование делать пробелами.. и всё это изза тех нехороших людей, которые не умеют пользоваться Tab-ами..
Секундочку... Что мешает пользоваться табами для отступов в питоне?
Если бы это выглядело вот так, то сильно бросалось бы в глаза
if (var) {
f();
}
f1();
f2();
И сделать подобную ошибку намного сложнее, конечно всякое в жизни бывает, но всё равно.
Во-первых написать так намного сложнее, скобки то вот, зачем после скобок добавлять, это режет глаз намного сильнее, чем когда нет скобок.
Во-вторых даже если такое оказалось написано, мне как человеку который ищет ошибку в 10 вечера перед релизом, заметить это намного проще. Скобка она как красная тряпка . Сразу видно что f1 и f2 вне if
По поводу того что это старо как говно мамонта Ну да вот круглое колесо тоже изобретено давно, однако факт того что это было давно, не означает что квадратное колесо лучше.
Охота задать вопрос, тем кто не согласен с обязательными скобками. А что вы выигрываете в случае если скобочку не ставить. Экономите одну строку? Или это просто привычка и скобка там нарушит ваше чувство гармонии.
По поводу кривого совмещения версий. Не очень представляю, хорошо бы увидеть пример. Такую ошибку от программистов, я встречаю не в первый раз. А что бы ошибиться "мерджерер" не припоминаю. В конфликтных ситуация всегда всё ругалось и требовало ручного вмешательства. Возможно мой опыт не такой большой, программирую всего 4 года
Отлично! Я там какие-то аргументы придумываю, привожу примеры из жизни, пытаюсь там че-то сравнивать. А у вас всё просто:
Это хорошо, а это плохо.
Это читабельно, а это не нечетабельно.
Это избыточно, а это нормально
Это правильно, а это не правильно.
Все несогласные в сад
Завидую, хочу так же
Здравствуйте, TarasKo, Вы писали:
TK>Завидую, хочу так же
Это же так просто!
Я научу:
Хорошее оформление люблю, плохое — нет.
Вот и всё!
TK>Отлично! Я там какие-то аргументы придумываю, привожу примеры из жизни, пытаюсь там че-то сравнивать. А у вас всё просто: TK>Это хорошо, а это плохо. TK>Это читабельно, а это не нечетабельно. TK>Это избыточно, а это нормально TK>Это правильно, а это не правильно.
Это всё субъективные оценки.
Одному оформление нравится, читабельно, удобно и неизбыточно а другому — лажа полная и говнокод.
Нет общего знаменателя.
Поэтому и придумывают кодинг стандарт когда собирается группа людей работать над одним проектом — чтоб заставить писать всех одинаково, а не как удобно им.
TK>Все несогласные в сад
Именно!
Один вопрос что считаю правильным и читабельным лично я (а все эти критерии строго субъективны) и другое, что требуется по кодингстандарту на проекте, в котором я участвую.
У меня на данный момент проект в котором принят linux style:
if (cond) {
expr;
}
я такой стиль считаю кошмарным. Но мне пофигу, я пишу коммерческий код, и мои предпочтения никакой роли не играют.
Те проекты где я рулю — я задаю правила и там так, как мне нравится.
Вот и всё.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
if(a)
{
f1();
f2();
}
if(a)
f1();
// или так, в зависимости от того что лучше смотрится в данном куске кодаif(a)
{
f1();
}
std::
namespace fs = boost::filesystem; // только внутри тел ф-ций
но если кто-то делает по другому, меня не напрягает. главное чтобы в одном файле стиль был одинаковый
Здравствуйте, Erop, Вы писали:
E>Ну ты, как бы, утверждаешь, что скобочки всюду трудно ставить.
Я не утверждаю, я ёрничаю над предположением что потом, когда будет меняться код, будет очень сложно поставить эти скобочки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Sheridan, Вы писали:
F>> ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок.. F>> скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом.. S>Присмотрись, там по одному оператору на строчку получается почти везде. Больше операторов на строку я леплю только если второй оператор типа break или там return
ты не понял.. у тебя вправо уведён кусок, который логически и синтаксически принадлежит коду слева..
аналогия примерно такая:
Привет, Шеридан , как де ла ?
Хочу дать тебе совет переходи на вин ду .
И всё в твоей жизни станет хоро шо .
А если ослушаешься , тебя съест сл он .
И за такое форматирование на том свете ты \
будешь гореть в а ду !!!111адинадинацать
хороший код — это не тот, который выровнен по каким либо границам, а тот, смысл которого можно понять, проглядев наискосок..
НС>>Брался за авалон — все закончилось пачкой матюков в твою сторону. S>Только мой код почемуто все еще в авалоне есть. Парадокс?
Никакого парадокса. Просто нет в проекте достаточного количества народа, чтобы за тобой рефакторинг провести. Прежде, чем будешь изливаться кипятком на неизвестное тебе слово рефакторинг, хоть почитай, что это такое
Приветствую, Mamut, вы писали:
M> табы внутри кода — это зло. Попробуй у себя в редакторе сменить ширину таба с 4-х на 2. Внутри кода все пробелы должны отбиваться именно пробелами. Против отсупов в начале строки, выполненных табами, ничего не имею против.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>А если серьезно, то IMHO зря тут все на этот стиль так накинулись.
Ну, не все...
KV> Такое форматирование иногда может быть вполне оправданным (если использовать его без фанатизма).
согласен, но у Шеридана там всё таки децл перебор.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
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();
}
Здравствуйте, neFormal, Вы писали:
F>>>лямбды и замыкания не избавляют от сложности, они просто переносят её в другую часть кода.. поэтому это не в тему.. I>>В одном случае у тебя будет грамотная оттестированя либа, её можно пользовать чз высокоуровневый интерфейс, а в другом весь оверхед будет прямо по месту решения задачи.
F>только при чём тут лямбды и замыкания?.
При том, что лямбды и замыкания позволяют _на_порядок_ уменьшить размер оверхеда.
Или ты думаешь C++0x просто так решили родить ?
I>>или будет куча глупого кода, долбаных циклов, макросов, вспомогательных методово, которые придется разгребать.
F>кажется, ты отказываешь плюсам в наличии библиотек и фреймворков.. это далеко от правды..
Это гораздо ближе к правде чем ты думаешь. Чуть не в каждом сиплюсном проекте можно найти вагон велосипедов начиная с тех же смартпоинтеров.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, kochetkov.vladimir, Вы писали:
F>>>но вот что реально бесит в питоновских отступах, так это необходимость форматирование делать пробелами.. и всё это изза тех нехороших людей, которые не умеют пользоваться Tab-ами.. KV>>Секундочку... Что мешает пользоваться табами для отступов в питоне?
I>Люди, которые пользуются пробелами.
Как я иногда, работая с чужим кодом, ненавидел тех, кто использует табы для отступов... Я представлял себе злобного кодера, который, злорадно смеясь и покачивая короткими рогами на лбу, ставит каждый из этих табов, и постукивает копытами, предвкушая как через эти табы будут продираться несчастные безопасники, работающие над устранением уязвимостей в коде.
Здравствуйте, Ikemefula, Вы писали:
F>>только при чём тут лямбды и замыкания?. I>При том, что лямбды и замыкания позволяют _на_порядок_ уменьшить размер оверхеда.
да так себе.. на порядок уж точно нет..
I>Или ты думаешь C++0x просто так решили родить ?
думаю, его решили сделать, чтобы подсократить буст.. но без буста тоже есть жизнь на Марсе..
I>Это гораздо ближе к правде чем ты думаешь. Чуть не в каждом сиплюсном проекте можно найти вагон велосипедов начиная с тех же смартпоинтеров. I>Вероятно, это от наличия фреймворков ?
это последствия децентрализованности, ну и от того, что несишники лезут и пишут велосипеды..
Здравствуйте, kochetkov.vladimir, Вы писали:
I>>Люди, которые пользуются пробелами.
KV>Как я иногда, работая с чужим кодом, ненавидел тех, кто использует табы для отступов... Я представлял себе злобного кодера, который, злорадно смеясь и покачивая короткими рогами на лбу, ставит каждый из этих табов, и постукивает копытами, предвкушая как через эти табы будут продираться несчастные безопасники, работающие над устранением уязвимостей в коде.
KV>А вы оказывается вон какие...
В питоне сльная зависимость от редактора, отсюда неудивтельно, что есть два враждующих лагеря
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Mamut, Вы писали:
M>>табы внутри кода — это зло. Попробуй у себя в редакторе сменить ширину таба с 4-х на 2. Внутри кода все пробелы должны отбиваться именно пробелами. Против отсупов в начале строки, выполненных табами, ничего не имею против.
I>Да при чем здесь табы ? В известных случаях это дейтсвительно помогат читать код.
I>Шеридан использует табы для компенсации последствий нарушения базовых принципов декомпозиции. I>Т.е. он борется со сложностью оверхеда форматированием, а не правильным кодированием.
Да ладно, нормально у него в приведенных примерах с кодированием. Например:
тут банальный
property a {get; set;}
только в терминах С++
А табы внутри кода, а не только для отступов — это проблема.
Здравствуйте, CreatorCray, Вы писали:
CC>Я вот как в ICC появилась поддержка лямбд в трёх проектах до сих пор не нашёл куда эти новомодные лямбды прикрутить. Не нужны они нигде оказались.
Это говорит не о ненужности, а лишь о твоем неумении их применять.
Здравствуйте, neFormal, Вы писали:
I>>А ты покажи код тому, кто лямбдами пользуется. F>а ты покажи код с лямбдами тому, кто ими не пользуется..
Не мешай ему фапать на функциональщину
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Ikemefula, Вы писали:
I>Да не расстраивайся так, я тебя не призываю пользоватья лямбдами.
расслабься, никому ваши свистоперделки для лентяев и лодырей не нужны..
I>>>Функциональный стиль это оно и есть. F>>но весь С++0х не в функциональном стиле.. поэтому одна рюшечка для лямбда-самцов никакого особого значения для всего языка не имеет.. I>Это ты сильно погорячился.
ты путаешь православный C++ со всякими кулхацкелями..
А по поводу std. Возможно ваш более опытный программист не сталкивался с ситуацией, что namespace в вашем проекте имеет такое же имя что и namespace во внешней библиотеке неважно сторонней или библиотеки вашей же фирмы, и при этом приходится собирать всё старым компилятором. Если у вас ситуация не такая, то я за вас очень рад и я бы тоже с удовольствием писал
using namespace std;
или там
using namespace boost;
Но правда с большими библиотеками я бы всё равно так не делал
using namespace boost::mpl;
using namespace boost::interprocess;
лучше уж
namespace ipc = boost::interprocess;
Здравствуйте, TarasKo, Вы писали:
TK>Недавно один программист в нашей компании под if-ом без скобок дописал ещё несколько строчек, и получилось
TK>
TK>if (var)
TK> f();
TK> f1();
TK> f2();
TK>
TK>Классическая ситуация, 10 вечера перед релизом. Программа вела себя как-то странно, через некоторое время в дебаггере увидел что в этом месте творится чертовщина, почему-то f1(), f2() не исполняются
Тесты где?
ЗЫ Если стандарты требуют это одно, но сам я не люблю излишнее.
А вы всегда работали на проектах, где есть юнит тесты? Или когда приходили на новую работу, то первым дело говорили начальнику. "Я пришёл, сейчас мы все сядем и напишем на весь ваш мегапроект юнит тесты. Но перед тем как это делать, мы сначала перепишем и отрефачим все ваши классы с неадыкватным интерфейсом, так что бы их вообще можно было как-то тестировать."
Большинство в этом приложении было написано не мной, а тем человеком к которому я не могу подойти и сказать, а давай-ка ты напишешь юнит тесты на всё что ты писал в течении пары лет.
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)
А> f();
А>
Когда одинарный — еще нормально, но если есть несколько последовательных вложенных ифов, то скобки делают код более наглядным.
А>
А>if (a) {
А> f();
А>}
А>
Когда есть вложенные скобки, при таком стиле тратиться больше усилий чтоб к закрывающей скобке найти парную открывающую. Поэтому меня всегда коробит при просмотре кода в таком стиле — понять его сложней.
Здравствуйте, CreatorCray, Вы писали:
CC>Если он пребывал в таком астрале то ничто ему не мешало дописать то же самое после скобки.
После скобки видно...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, se_sss, Вы писали:
_>Это приемлемо, если человек следит за своим кодом, но становится неприятным, когда он напишет кучу вложенных if несколько страниц — тяжело понять, где начало и где конец блока.
IMHO, такой ситуации стоит избегать вне связи со стратегией расстановки скобок.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Nik_1, Вы писали:
N_>Даа, вы знаете толк в извращеньях
Просто отрефакторил много кода...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>А "затратно" в каком смысле?
В тои же смысле что и "придется скобки прикручивать вручную"
E>По идее дописывать скобки вообще всегда и на автомате стоит очень мало усилий программисту.
Вероятно есть такие люди которым это будет стоить мало усилий и на автомате. Но опять таки не надо всех ровнять по себе.
E>А вот смотреть в каждом случае нужно ли добавить скобок, требует не отключать голову
ИМХО программист, отключающий голову в процессе работы подлежит позорному изгнанию из профессии.
E>Кроме того, расстановкой скобок может вообще IDE заниматься...
Представил и ужаснулся. Лучше не надо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Erop, Вы писали:
CC>>Если он пребывал в таком астрале то ничто ему не мешало дописать то же самое после скобки. E>После скобки видно...
А отступ типа не видно?
Более того, ты сам показал как можно и после скобки наколбасить.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
E>>Кроме того, расстановкой скобок может вообще IDE заниматься... CC>Представил и ужаснулся. Лучше не надо.
А в чём проблема? Ну написал ты if или for и т. д.
Чем среде трудно тут же скобочки пририсовать?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, CreatorCray, Вы писали:
CC>Более того, ты сам показал как можно и после скобки наколбасить.
Так реже бывает.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>А в чём проблема? Ну написал ты if или for и т. д. E>Чем среде трудно тут же скобочки пририсовать?
Ну так а мне они и не надо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, CreatorCray, Вы писали:
E>>А в чём проблема? Ну написал ты if или for и т. д. E>>Чем среде трудно тут же скобочки пририсовать? CC>Ну так а мне они и не надо.
Ну ты, как бы, утверждаешь, что скобочки всюду трудно ставить.
Я же тебе говорю, что если всюду, то не трудно, тем более, что это за тебя может делать IDE...
Хотя я лично считаю, что это не важно, как именно ставить скобочки. Главное не слишком экзотического правила придерживаться, а одного из популярных
Кроме того, у меня есть такое наблюдение, что в долгих проектах стили меняются раз в несколько лет, так что в случае поддержки/рефакторинга/развития чужого кода приходится сталкиваться с любым, использовавшимся за историю развития проекта. Так что правда, вопрос пустой. Как не решишь -- всё хорошо
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, CreatorCray, Вы писали:
E>>IMHO, если код людей сильно чувствителен к стратегии расстановки скобок, то у низ с кодом что-то не так CC>"С Вами просто невозможно спорить!" (С)
Йо!!! Я тоже люблю монти-пайтон!!!
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, CreatorCray, Вы писали:
E>>По идее дописывать скобки вообще всегда и на автомате стоит очень мало усилий программисту. CC>Вероятно есть такие люди которым это будет стоить мало усилий и на автомате. Но опять таки не надо всех ровнять по себе.
Если ты сам не способен на такой вот автомат, то всегда можно попросить компьютер делаьть за тебя эту работу...
CC>ИМХО программист, отключающий голову в процессе работы подлежит позорному изгнанию из профессии.
О! Я вот, например, для кодирования, голову не включаю. Так же, как и для разговора на русском или там английском языках. Думать приходится над нетривильными вещами, а не над тем, как каждый конкретный if написать
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, x64, Вы писали:
x64>Я пишу так:
x64>
x64>void foo ()
x64>{
x64> foo ();
x64>}
x64>
x64>Если, конечно, тут это хоть кому-нибудь интересно.
Такой стиль написания функций вроде как почти общеприянт.
Ты вот про if-else расскажи, например, или про switch...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Приветствую, neFormal, вы писали:
F> S>Ты продолжишь утверждать о нечитабельности? о0 F> оторвать руки и пришить новые.. вдруг они такой шлак будут отказываться писать..
Чтото я не могу понять смысла фразы... Ты не можешь прочесть мой код? Или тебе не нравится сам код? Или тебе не нравятся табы?
Будь уж бобер, поясни.
Приветствую, neFormal, вы писали:
F> ты написал стилистическое говно.. F> чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..
Я и говорю: мне на такое похер, я пишу легко читающийся код. Во всяком случае там, где это возможно.
Здравствуйте, Sheridan, Вы писали:
S>всмысле несовместимо? с какой стороны?
Проблема арт-декора в коде заключается в том, что небольшое переименование потенциально может привести к перефигачиванию всего файла. А нелокальностьизменений это нездорово. Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга.
Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это.
Здравствуйте, 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();
Ну так, во-первых, человек должен быть абсолютно упившимся и обкурившимся, чтобы так написать и не заметить, что написал (в отличие от), а во-вторых, проверяющему или раскапывающему баг это сразу же бросится в глаза — я не представляю, как это можно не броситься, если написаны явные скобки.
В то время как первое легко и свободно пролетает и газ ни за что не цепляется, особенно если смотрящий много пишет на каком-нть питоне, где именно такой синтаксис с отступами канонический.
Здравствуйте, Sheridan, Вы писали:
F>> S>Еще раз спрашиваю: Это нечитабельно? F>> абсолютно не читабельно.. S>Почему?
ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок..
скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом..
Здравствуйте, Sheridan, Вы писали:
ВВ>> Все вот интересно, у тебя какая-то методология есть, по которой ты табы расставляешь? Типа почему ВВ>> Или от балды? S>У второго варианта невыровненное получается шире, чем в первом.
Так и запишем, Шеридану скучает по ASCII-art.
ВВ>> Кстати, к вопросу о читабельности. Это кто-нибудь, кроме тебя когда-нибудь "читает"? S>Пока нет. И думаю с таким раскладом я хер кого в код пущу.
Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Приветствую, neFormal, вы писали:
F> ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок.. F> скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом..
Присмотрись, там по одному оператору на строчку получается почти везде. Больше операторов на строку я леплю только если второй оператор типа break или там return
Приветствую, dr.Chaos, вы писали:
C> Так и запишем, Шеридану скучает по ASCII-art.
Да, скучаю. И не стесняюсь этого
C> ВВ>> Кстати, к вопросу о читабельности. Это кто-нибудь, кроме тебя когда-нибудь "читает"? C> S>Пока нет. И думаю с таким раскладом я хер кого в код пущу. C> Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки?
Проект еще нигде не выложен. Вот как будет еще и карта работать там, тогда размещу на sf, а щас просто смысла нет.
Здравствуйте, Sheridan, Вы писали:
C>> Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки? S>Проект еще нигде не выложен. Вот как будет еще и карта работать там, тогда размещу на sf, а щас просто смысла нет.
А зачем выкладывать, если тебе помощники не нужны?
Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы
Здравствуйте, dr.Chaos, Вы писали:
C>>> Гы-гы... А открывал чтоб нахаляву QT-поюзать? А как же комьюнити? А как же миллионы глаз просматривающих и находящих ошибки? S>>Проект еще нигде не выложен. Вот как будет еще и карта работать там, тогда размещу на sf, а щас просто смысла нет. DC>А зачем выкладывать, если тебе помощники не нужны?
Здравствуйте, neFormal, Вы писали:
F>ты написал стилистическое говно.. F>чтобы разделять конструкции типа obj->val табом, надо быть таким наркоманом..
Перебор конечно, но еще как то читабельно.
С if у него конечно сильно похуже.
А в остальном терпимо.
Индусокодеры пишут куда хуже.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Sheridan, Вы писали:
S>Пользуйтесь системой контроля версий, которая оперирует не строками а символами.
Ты даже не понял о чем речь. При чем тут символы? У тебя из-за локального изменения придется переформатировать всю твою арт-конструкцию, что вылезет в любой VCS
НС>>Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга. S>Я ложил на эту хрень
Твои личные половые проблемы.
S> еще когда в вижуалстудии баловался. Баловство это. Расслабляет.
Смешно слышать подобное от человека, который даже не программист.
S> Не дает думать.
Плохому танцору ...
НС>> Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это. S>Фигли ее поддерживать?
Править при каждом изменении всю конструкцию.
S>А мне вот нравится над кодом подумать. Сегодня вот целый вечер думал как лучше сохранять одну enum опцию.\
Здравствуйте, 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).
Приветствую, neFormal, вы писали:
F> ты не понял.. у тебя вправо уведён кусок, который логически и синтаксически принадлежит коду слева..
Это ты не понял.
F> хороший код — это не тот, который выровнен по каким либо границам, а тот, смысл которого можно понять, проглядев наискосок..
Присмотрись, у меня в коде явно выделяются стобцы с одинаковым содержанием и столбцы с разным содержанием. Так что код просматривается даже не наискосок, а просто сверху вниз.
Здравствуйте, SergeCpp, Вы писали:
SC>Извините, пожалуйста. Я проверял — у меня показывалось (в незалогиненном на том сайте состоянии).
SC>Вот картинка: SC>http://files.rsdn.ru/44396/Development.gif
Ты живешь в городе с населением 100, максимум 150 тыс. человек, и в твоей конторе 5, максимум 10 человек, у которых основная обязанность — написание кода. Я прав?
Здравствуйте, Sheridan, Вы писали:
F>> ты никогда не знаешь является ли кусок кода законченным выражением или где то справа есть ещё кусок.. F>> скорость чтения такого "читабельного" кода падает в разы.. а я вот предпочитаю думать над логикой, а не над текстом.. S>Присмотрись, там по одному оператору на строчку получается почти везде. Больше операторов на строку я леплю только если второй оператор типа break или там return
x + y + z на сколько строк у тебя будет?
Кстати, -> и . тоже операторы. Так что подобная избирательность как-то непонятна.
Приветствую, Ночной Смотрящий, вы писали:
НС> Ты даже не понял о чем речь. При чем тут символы? У тебя из-за локального изменения придется переформатировать всю твою арт-конструкцию, что вылезет в любой VCS НС> НС>> Ну и поддерживать всю эту красоту приходится — мне лично жалко своего времени на это. НС> S>Фигли ее поддерживать? НС> Править при каждом изменении всю конструкцию.
А, вон ты куда ведешь, понял.
Я другого понять не могу — с какого хера я должен оглядываться на какуютотам систему контроля версий вместо того чтобы писать так как мне нравится. Оно написано для контроля, вот пусть и контролирует то что я пишу.
И не надо про "коммандный стиль" и всякие там соглашения о стиле. Будет соглашение, с которым согласится большинство — я не буду противиться, но до тех пор я буду писать так, как нравится мне.
НС> НС>>Помимо упомянутого здесь диффа есть еще серьезные проблемы со средствами автоматического рефакторинга. НС> S>Я ложил на эту хрень НС> Твои личные половые проблемы.
Нет, у меня как раз проблем нет. А вот вы со своими интелценцами скоро без студии и хелло ворд не напишите, ибо необходимая часть мозга просто атрофируется.
НС> S> еще когда в вижуалстудии баловался. Баловство это. Расслабляет. НС> Смешно слышать подобное от человека, который даже не программист.
Да мне похер, посмейся. Я же смеюсь постоянно над тем, как вы все больше и больше в га... эээ... в микрософт увязаете...
НС> S> Не дает думать. НС> Плохому танцору ...
Ох, погоди, помоему я тебя за живое зацепил. Похоже в точку таки сказал
НС> S>А мне вот нравится над кодом подумать. Сегодня вот целый вечер думал как лучше сохранять одну enum опцию. НС> Результат только ...
Что результат? Долговаривай уж, телепат доморощенный...
Приветствую, Воронков Василий, вы писали:
ВВ> x + y + z на сколько строк у тебя будет?
int a = x+y+z;
но
a = some ->value( parameter ) +
othersome ->value( otherval ) +
somelocal .value( z )
ВВ> Кстати, -> и . тоже операторы. Так что подобная избирательность как-то непонятна.
Я не олпираюсь на операторы, скобки и прочиее символы. Я опираюсь на одинаковые части строк.
Здравствуйте, Sheridan, Вы писали:
S>Я другого понять не могу — с какого хера я должен оглядываться на какуютотам систему контроля версий вместо того чтобы писать так как мне нравится.
Нравится — понятие субъективное. Если речь идет о работе в команде, то выбирают общий для всех стиль. Если же речь о занятии интеллектуальным онанизмом — об это надо сразу говорить.
НС>> S>Я ложил на эту хрень НС>> Твои личные половые проблемы. S>Нет, у меня как раз проблем нет. А вот вы со своими интелценцами скоро без студии и хелло ворд не напишите, ибо необходимая часть мозга просто атрофируется.
Смешно это слышать именно от тебя.
S>Да мне похер, посмейся. Я же смеюсь постоянно над тем, как вы все больше и больше в га... эээ... в микрософт увязаете...
Тебе бы так увязать, как я. Может тогда не ныл бы про деньги.
НС>> Плохому танцору ... S>Ох, погоди, помоему я тебя за живое зацепил. Похоже в точку таки сказал
Это скорее я тебя зацепил Экспрессия то от тебя в основном прет.
НС>> Результат только ... S>Что результат? Долговаривай уж, телепат доморощенный...
Вот вот, кто кого еще зацепил. Телепатия тут не в тему. Брался ты за янус — обкакался, не осилив XSLT. Брался за свой аналог — дальше пука дело не ушло. Брался за авалон — все закончилось пачкой матюков в твою сторону. И после этого ты имеешь наглось с умным видом рассуждать про заплывчатость мозгов. Ты бы со своими мозгами сперва разобрался.
Здравствуйте, Sheridan, Вы писали:
НС>> S>Да мне похер, посмейся. Я же смеюсь постоянно над тем, как вы все больше и больше в га... эээ... в микрософт увязаете... НС>> Тебе бы так увязать, как я. Может тогда не ныл бы про деньги. S>Это где я ною про деньги?
Гы, я там про себя что-ть говорил? В чем я там неправ?
Лично у меня хватит денег и на серверные винды. Но я предпочитаю почемуто не тратить деньги на покупку воздуха.
F> S>Когда доделаю — не знаю, но проект не заброшен, времени немного свободного, F> если целый вечер думать над сохранением одной enum опции, то никакого времени не хватит..
А я не спешу. У меня нет цели заработать денег. У меня есть цель написать. Следовательно можно не спешить.
F> S>Только мне почемуто кажется что ты хер присоединишься. F> грязную речь изгоняют веником берёзовым..
То есть не присоединишься? Ну я так и думал.
Здравствуйте, Sheridan, Вы писали:
S>Гы, я там про себя что-ть говорил? В чем я там неправ? S>Лично у меня хватит денег и на серверные винды. Но я предпочитаю почемуто не тратить деньги на покупку воздуха.
дааааа-дааааа..
F>> S>Когда доделаю — не знаю, но проект не заброшен, времени немного свободного, F>> если целый вечер думать над сохранением одной enum опции, то никакого времени не хватит.. S>А я не спешу. У меня нет цели заработать денег. У меня есть цель написать. Следовательно можно не спешить.
до второго пришествия только успей, а то в ад попадёшь..
F>> S>Только мне почемуто кажется что ты хер присоединишься. F>> грязную речь изгоняют веником берёзовым.. S>То есть не присоединишься? Ну я так и думал.
а должен был?.
эт как получается: ты вечерами думаешь о сохранении одной опции, а я тем временем должен весь проект реализовывать?. хорошая у тебя позиция, просто отличная..
Приветствую, neFormal, вы писали:
F> а должен был?. F> эт как получается: ты вечерами думаешь о сохранении одной опции, а я тем временем должен весь проект реализовывать?. хорошая у тебя позиция, просто отличная..
Зачем весь проект? Ты в это время бы думал например как можно быстрее парсить nmea, или к примеру подбирал бы стиль приложения по умолчанию для дня и для ночи. Или еще что. Неважно, главное чтобы тебе интересно было.
И опять же, я никуда никого не гоню. Нет времени — не пиши. Есть время, но есть еще и фильм — смотри фильм.
Я вообще не сажусь программировать без желания.
Здравствуйте, uhh, Вы писали:
SC>>>Вот картинка: SC>>>http://files.rsdn.ru/44396/Development.gif F>>ОМГ.. GOTO в тривиальном коде!!11 uhh>пардон за занудство, но верно ли я понял, что вы используете GOTO в нетривиальном коде?
пока ещё не было такого кода, где это бы надо было использовать..
а там, где видел(чужой незнакомый код), это было вероятно оправданным решением.. по крайней мере код воспринимался легче, чем если бы его написали без гото..
Здравствуйте, <Аноним>, Вы писали:
А>Ваше мнение по этому поводу?
Мое мнение, что необходимо привыкать читать и писать код с различным форматированием без какого либо дискомфорта.
Про использование std:: , я стараюсь использовать пореже using.
Если в блоке встречается много (больше двух) std:: тогда возможно имеет смысл поставить using.
Cтандартные контейнеры стараюсь передефайнить typedef std::vector<MyClass> MyClassList;
Здравствуйте, Sheridan, Вы писали:
S>И не надо про "коммандный стиль" и всякие там соглашения о стиле. Будет соглашение, с которым согласится большинство — я не буду противиться, но до тех пор я буду писать так, как нравится мне.
Это крайне глупо, потому что ты "закрепляешь" ошибки и согласиться с изменениями тебе будет очень сложно. НС>> Твои личные половые проблемы. S>Нет, у меня как раз проблем нет. А вот вы со своими интелценцами скоро без студии и хелло ворд не напишите, ибо необходимая часть мозга просто атрофируется.
У тебя тренируется только мозжечок, когда на клавиши давишь. Есть более качетсвенный инструмент для прокачки этго органа.
Здравствуйте, Sheridan, Вы писали:
F>> S>Ты продолжишь утверждать о нечитабельности? о0 F>> оторвать руки и пришить новые.. вдруг они такой шлак будут отказываться писать..
S>Чтото я не могу понять смысла фразы... Ты не можешь прочесть мой код? Или тебе не нравится сам код? Или тебе не нравятся табы?
Твой код прочесть крайне сложно, а по прочтении оного крайне сложно понять, что же он делает.
дело не в табах, а в том что ты делаешь в одном методе слишком много вещей.
Твое форматирование это лишь попытка обойти эту проблему. Это форматирование делает код понятным только тебе.
Более того, если ты высунешь нос из кода и вернешься к нему через месяц друго, то гарантировано даже форматирование не поможет тебе понять особенности и для модификации ты потратишь слишком много времени.
Здравствуйте, Ikemefula, Вы писали:
I>Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны.
лямбды и замыкания не избавляют от сложности, они просто переносят её в другую часть кода.. поэтому это не в тему..
I>Отсюда неудивительно наблюдать в проектах наличие уникальной мелочевки вроде смартпоинтеров и прочей дряни. I>Крайне странно после всего этого слышать о достоинствах языка С++.
Здравствуйте, kochetkov.vladimir, Вы писали:
А>>Ваше мнение по этому поводу? KV>*прочитав всю тему* KV>И ЭТИ люди критикуют способ оформления блоков кода, принятый в питоне?!
в питоне поначалу раздражает то, что не видно конца блока.. отступ по-началу не воспринимается, как разделитель блоков.. ну и навязанный стиль вызывает некоторое отторжение..
но вот что реально бесит в питоновских отступах, так это необходимость форматирование делать пробелами.. и всё это изза тех нехороших людей, которые не умеют пользоваться Tab-ами..
Здравствуйте, kochetkov.vladimir, Вы писали:
F>>но вот что реально бесит в питоновских отступах, так это необходимость форматирование делать пробелами.. и всё это изза тех нехороших людей, которые не умеют пользоваться Tab-ами.. KV>Секундочку... Что мешает пользоваться табами для отступов в питоне?
то, что есть куча людей, которые используют исключительно пробелы.. в итоге в коде получается сборная солянка, которая ещё при таком раскладе может и не работать корректно.. я уж неговорю, что это при редактировании превращается в безумие..
даже Гвидо, видя, что приучить людей к удобству настолько трудно, порекомендовал использовать всё-таки пробелы..
а вообще да, ничего не мешает пользоваться табами.. особенно, если ты работаешь один..
Приветствую, kochetkov.vladimir, вы писали:
k> S>Пишу по разному. Руководствуюсь исключительно читабельностью.
k> Wow А сердечко из кода выложить сможешь?
Здравствуйте, kochetkov.vladimir, Вы писали:
F>>но вот что реально бесит в питоновских отступах, так это необходимость форматирование делать пробелами.. и всё это изза тех нехороших людей, которые не умеют пользоваться Tab-ами..
KV>Секундочку... Что мешает пользоваться табами для отступов в питоне?
Здравствуйте, Ikemefula, Вы писали:
I>>>Но вообще среди С++ код Шеридана я бы сказал типичный — отсутствие таких возможностей как, например, лямбды и замыкания, побуждают людей бороться со сложностью/дублированием используя самые идиотские способы, как например макросы или форматирование, или, чего хуже, шаблоны. F>>лямбды и замыкания не избавляют от сложности, они просто переносят её в другую часть кода.. поэтому это не в тему.. I>В одном случае у тебя будет грамотная оттестированя либа, её можно пользовать чз высокоуровневый интерфейс, а в другом весь оверхед будет прямо по месту решения задачи.
только при чём тут лямбды и замыкания?.
I>или будет куча глупого кода, долбаных циклов, макросов, вспомогательных методово, которые придется разгребать.
кажется, ты отказываешь плюсам в наличии библиотек и фреймворков.. это далеко от правды..
I> На плохом языке никогда не будет серьезных фреймворков. Стало быть, когда сплюсники пишут свои смартпоинтеры, у них попросту нет своего фреймворка по известной причине, ни использования других фреймворков по той же прчине.
Здравствуйте, Ikemefula, Вы писали:
I>При том, что лямбды и замыкания позволяют _на_порядок_ уменьшить размер оверхеда.
Я вот как в ICC появилась поддержка лямбд в трёх проектах до сих пор не нашёл куда эти новомодные лямбды прикрутить. Не нужны они нигде оказались.
Какой уж тут оверхед.
I>Или ты думаешь C++0x просто так решили родить ?
В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Как я иногда, работая с чужим кодом, ненавидел тех, кто использует табы для отступов... Я представлял себе злобного кодера, который, злорадно смеясь и покачивая короткими рогами на лбу, ставит каждый из этих табов, и постукивает копытами, предвкушая как через эти табы будут продираться несчастные безопасники, работающие над устранением уязвимостей в коде.
Тебе что чем табы мешают?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Mamut!
M>А табы внутри кода, а не только для отступов — это проблема.
Собственно, такие штуки должна IDE отслеживать и заменять табы на соответствующее число пробелов.
Может, в Visual Studio такая настройка и есть?
А если нету — можно макро написать и на Tab её повесить: если слева есть значащий символ, ставить пробелов, сколько нужно.
Здравствуйте, CreatorCray, Вы писали:
I>>При том, что лямбды и замыкания позволяют _на_порядок_ уменьшить размер оверхеда. CC>Я вот как в ICC появилась поддержка лямбд в трёх проектах до сих пор не нашёл куда эти новомодные лямбды прикрутить. Не нужны они нигде оказались. CC>Какой уж тут оверхед.
А ты покажи код тому, кто лямбдами пользуется.
CC>В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк.
Здравствуйте, QrystaL, Вы писали:
SC>>Собственно, такие штуки должна IDE отслеживать и заменять табы на соответствующее число пробелов. SC>>Может, в Visual Studio такая настройка и есть?
QL>В Visual Studio такое поведение по-умолчанию (по крайней мере, для C#)
Заменяет только те табы, что внутри кода (слева есть непробельный символ), или любые?
Здравствуйте, Ikemefula, Вы писали:
I>А ты покажи код тому, кто лямбдами пользуется.
а ты покажи код с лямбдами тому, кто ими не пользуется..
CC>>В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк. I>Функциональный стиль это оно и есть.
но весь С++0х не в функциональном стиле.. поэтому одна рюшечка для лямбда-самцов никакого особого значения для всего языка не имеет..
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Это говорит не о ненужности, а лишь о твоем неумении их применять.
Вброс мимо.
Это говорит о том, что код был написан изначально в таком стиле, что применить функциональщину там попросту негде.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, neFormal, Вы писали:
I>>А ты покажи код тому, кто лямбдами пользуется.
F>а ты покажи код с лямбдами тому, кто ими не пользуется..
Да не расстраивайся так, я тебя не призываю пользоватья лямбдами.
CC>>>В С++0х лямбды далеко не самое нужное. Скорее для фанатов функционального стиля ништяк. I>>Функциональный стиль это оно и есть.
F>но весь С++0х не в функциональном стиле.. поэтому одна рюшечка для лямбда-самцов никакого особого значения для всего языка не имеет..
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Как я иногда, работая с чужим кодом, ненавидел тех, кто использует табы для отступов... Я представлял себе злобного кодера, который, злорадно смеясь и покачивая короткими рогами на лбу, ставит каждый из этих табов, и постукивает копытами, предвкушая как через эти табы будут продираться несчастные безопасники, работающие над устранением уязвимостей в коде.
KV>А вы оказывается вон какие...
Я Astyle прикрутил к subversion, теперь до лампочки кто там чего нагородил. Очень удобно.
Приветствую, kvasya, вы писали:
k> Код хоть сейчас в журнал или на выставку. Очень читабельно.
Спасибо.
k> Но меня (честно) смущает одно — как его поддерживать? k> Ты используешь какое-либо ПО для такого форматирования? или руками все?
Руками. Если изначально в таком стиле писать — то не сложно поддерживать. А вот переписывать в такой стиль из какогото другого — бесспорно довольно трудоемко.
Я стараюсь писать всегда со скобками, и скобки расставлять на отдельной строке.
Основной принцип — чтобы мозг как можно меньше отвлекался на разбор синтаксиса.
Если скобка на одной строке с if'ом, то приходится глазами искать начало блока.
Если скобок нет, то приходится искать и начало и конец блока.
Исключения — когда такой стиль наоборот начинает затруднять чтение.
Например, когда подряд идет много однострочных if'ов.