Форум: "Прочее";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];
ВнизЛюди, которые пишут begin..end вокруг одного оператора Найти похожие ветки
← →
Игорь Шевченко © (2012-12-12 22:37) [0]Являются тормозом прогресса и врагами нации :)
← →
брат Птибурдукова (2012-12-12 22:39) [1]Решил во всём походить на Великого Кормчего, душитель свобод? %-)
← →
antonn © (2012-12-12 22:40) [2]всегда пишу полностью begin..end и { .. }
← →
Dimka Maslov © (2012-12-12 22:41) [3]В процессе своего эволюцинирующего развития программный код может потерять часть операторов, в результате чего между бегином и эндом останется один оператор. Тогда бегин и энд становятся рудиментами. Это нормально.
← →
Rouse_ © (2012-12-12 22:47) [4]
> Игорь Шевченко © (12.12.12 22:37)
> Являются тормозом прогресса и врагами нации :)
Та не, просто не следуют стандартам написания кода, в которых кстати рассмотрен данный случай.
← →
Игорь Шевченко © (2012-12-12 22:52) [5]Dimka Maslov © (12.12.12 22:41) [3]
И как всякие рудименты должны отмирать. В коде процесс эволюции обычно менее затратен и более быстр, чем в природе.
← →
alexdn © (2012-12-12 22:55) [6]> Игорь Шевченко © (12.12.12 22:52) [5]
> В коде процесс эволюции
> обычно менее затратен и более быстр, чем в природе.
begin end -> {}?
← →
TUser © (2012-12-12 22:55) [7]Полагаю, большинство программистов зачеркнули бы слова "вокруг одного оператора" ))
← →
DVM © (2012-12-12 22:57) [8]Иногда, просто begin..end сначала окружают 2 оператора, потом один удаляют по каким либо причинам, удалять begin..end либо лень, либо есть вероятность, что туда потом еще потребуется дописать что-либо. Так оно и остается.
Тоже мне проблема, если это единственная проблема в оформлении кода.
Что же меня лично ну просто бесит, когда в коде программы на Delphi начинают массово использовать вот такие названия _my_super_puper_var и код изобилует такими названиями, все названия переменных функций такие, все выглядит как пропущенное через обфускатор. Речь именно о паскале.
вот например:
http://www.felix-colibri.com/papers/web/tcp_ip_sniffer/tcp_ip_sniffer.html
даже не сразу понятно, что этот код - это паскаль.
← →
Inovet © (2012-12-12 22:59) [9]Лучше стразу поставить операторные скобки для одного оператора, чем потом добавить второй и забыть их поставить.
Если без скобок, то писать так:
if(выражение) оператор1;
а не так
if(выражение)
оператор1;
← →
Inovet © (2012-12-12 23:02) [10]> [8] DVM © (12.12.12 22:57)
> вот например:
> http://www.felix-colibri.com/papers/web/tcp_ip_sniffer/tcp_ip_sniffer.htm l
> даже не сразу понятно, что этот код - это паскаль.
Он явно на VS C++ раньше писал.
← →
Игорь Шевченко © (2012-12-12 23:03) [11]DVM © (12.12.12 22:57) [8]
> есть вероятность, что туда потом еще потребуется дописать
> что-либо.
Тогда и надо дописать begin и end, не так ли ? 8 символов написать не так уж и трудно :)
> вот например:
> http://www.felix-colibri.com/papers/web/tcp_ip_sniffer/tcp_ip_sniffer.
> html
Так это прямая переделка с С, возможно, даже автоматическая
← →
Игорь Шевченко © (2012-12-12 23:05) [12]Inovet © (12.12.12 22:59) [9]
> Лучше стразу поставить операторные скобки для одного оператора
Люди, которые пишут код не думая, не читая и не тестируя, являются дважды тормозом прогресса и врагами нации.
← →
Inovet © (2012-12-12 23:07) [13]> [12] Игорь Шевченко © (12.12.12 23:05)
У всех свои тараканы.
← →
alexdn © (2012-12-12 23:07) [14]Вот потому я и завидую сишникам и пхп шникам, бахнул {} и готово..)
← →
antonn © (2012-12-12 23:10) [15]
> Тогда и надо дописать begin и end, не так ли ? 8 символов
> написать не так уж и трудно :)
не знаю кто как, а я и begin/end, и любые скобки сразу набираю вместе, потом делаю шаг назад и вбиваю то, что будет у них внутри. Получается быстро, а если учесть, что при необходимости потом придется их писать уже целясь в текст...
к тому же лично мне проще воспринимать такое:if(visible) then begin
halt;
end;
if(vasia){
MessageBox.Show("1");
}
чем такоеif(vasia)
MessageBox.Show("1");
PS часто пишу в одну строку на дельфи "if(visible) then halt;" когда не надо переносить и оно никогда не будет переноситься или обрастать кодом вокруг :)
← →
Rouse_ © (2012-12-12 23:10) [16]
> Люди, которые пишут код не думая, не читая и не тестируя,
> являются дважды тормозом прогресса и врагами нации.
Золотые слова, а мне за это умудрились двойку по статье влупить, мол оскорбил чувства чьи-то :)
http://alexander-bagel.blogspot.ru/2012/12/api.html
← →
Inovet © (2012-12-12 23:12) [17]> [15] antonn © (12.12.12 23:10)
> к тому же лично мне проще воспринимать такое:
Аналогично.
← →
TSas (2012-12-12 23:14) [18]Я пишу иногда во вложенных ифах, чтобы написать "//-Да." А в самом низу написать "//если не... "
← →
Rouse_ © (2012-12-12 23:16) [19]
> к тому же лично мне проще воспринимать такое:
> if(visible) then begin
> halt;
> end;
Хм, имхо за такое - казнить, мало того что бессмысленно, так еще и не по стандарту оформлено.
А вот второе:if(vasia){
MessageBox.Show("1");
}
Это читабельно и по стандарту, в отличие от третьего примера...
← →
DVM © (2012-12-12 23:17) [20]
> Игорь Шевченко © (12.12.12 23:03) [11]
> <
I>
> Так это прямая переделка с С, возможно, даже автоматическая
Не, это автор кода видно фанат такого стиля, там даже элементы интерфейса так названы. Это и для Си жесть какая то.
← →
antonn © (2012-12-12 23:19) [21]а третий пример я часто вижу и в мсдн, кстати
← →
Rouse_ © (2012-12-12 23:22) [22]
> antonn © (12.12.12 23:19) [21]
> а третий пример я часто вижу и в мсдн, кстати
пруфлинк
← →
RWolf © (2012-12-12 23:33) [23]
> [14]
кто-то пишет begin/end побуквенно?
← →
antonn © (2012-12-12 23:42) [24]
> Rouse_ © (12.12.12 23:22) [22]
сейчас не найду, но если увижу - скину :)
← →
Inovet © (2012-12-12 23:44) [25]Из исходника Builder dstring.cpp
if (src)
{
while (*src++)
++len;
}
...
if (idx < 1 || idx > Length()) // NOTE: AnsiString is 1-based !!
throw Sysutils::ERangeError(System_Sysconst_SRangeError);
← →
Inovet © (2012-12-12 23:46) [26]> [25] Inovet © (12.12.12 23:44)
Бардак-с?
← →
Игорь Шевченко © (2012-12-12 23:55) [27]Inovet © (12.12.12 23:07) [13]
Это не тараканы, это горький опыт :)
← →
Аббат Пиккола (2012-12-13 00:01) [28]Да, и еще враги те, кто избыточные точки с запятой после end ставят. :)
← →
Игорь Шевченко © (2012-12-13 00:07) [29]Rouse_ © (12.12.12 23:10) [16]
> мне за это умудрились двойку по статье влупить
Статью прочитал, двойку не увидел, недокументированные API стоит использовать в очень редких и особых случаях, не забывая, что завтра они могут стать другими, удалиться или перестать соответствовать той цели, ради которой использовались.
Как пример изменений могу привести функции работы с CSRSS в NTDLL - их сигнатура изменилась при переходе от Windows 2000 к XP
← →
имя (2012-12-13 00:12) [30]Удалено модератором
← →
Inovet © (2012-12-13 00:15) [31]Удалено модератором
← →
имя (2012-12-13 00:18) [32]Удалено модератором
← →
Ega23 © (2012-12-13 00:36) [33]
> кто-то пишет begin/end побуквенно?
Плюс мильён. Среда сама подставляет, как минимум end; :)
← →
Empleado © (2012-12-13 00:43) [34]
> Являются тормозом прогресса и врагами нации
+1 !!!!!
а еще те, кто ";" перед end ставят; :)))
а еще те, кто begin .. end ставят сразу между repeat .. until
← →
TSas (2012-12-13 00:53) [35]>а еще те, кто ";" перед end ставят; :))) Я всегда ставлю. Оператор должен, ИМХО, быть завершённым, а вдруг потом ещё один надо вставить?
← →
TStas (2012-12-13 00:54) [36]Ой, я в нике буковку пропустил. :(
← →
Pavia © (2012-12-13 01:02) [37]Очень часто
if () then
Oper1;
Просто бывает что оптимизатор выкидывает строку Oper1 и на неё невозможно брейкпоинт поставить.
А если сделать так
if () then
Begin
Oper1;
end;
То брейкпоинт ставиться.
← →
Германн © (2012-12-13 01:49) [38]
> Pavia © (13.12.12 01:02) [37]
>
> Очень часто
> 1
> 2
>
> if () then
> Oper1;
>
>
> Просто бывает что оптимизатор выкидывает строку Oper1 и
> на неё невозможно брейкпоинт поставить.
> А если сделать так
> 1
> 2
> 3
> 4
>
> if () then
> Begin
> Oper1;
> end;
>
> То брейкпоинт ставиться.
А отключить оптимизатор что не позволяет?
← →
Германн © (2012-12-13 01:58) [39]
> Да, и еще враги те, кто избыточные точки с запятой после
> end ставят. :)
А вот это я расцениваю либо как неудачную шутку разработчиков паскаля, либо как удачную шутку вышеуказанных. :)
← →
Дмитрий С © (2012-12-13 04:26) [40]
> Плюс мильён. Среда сама подставляет, как минимум end; :)
Среда, стерва такая, перестает дописывать их, если есть вложенная процедура или замыкание :(
По теме. Осознанно пишу begin end для одного оператора в условиях с многооператорным ELSE-ом, например:if conditional then
begin
operator1
end
else
begin
operator2;
operator3;
end;
ЗЫ. Посмотреть бы на повседневный код автора:)
Страницы: 1 2 3 4 5 6 вся ветка
Форум: "Прочее";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.006 c