Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.04.14;
Скачать: CL | DM;

Вниз

Люди, которые пишут 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;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.013 c
15-1355776202
Юрий
2012-12-18 00:30
2013.04.14
С днем рождения ! 18 декабря 2012 вторник


15-1355814263
alexdn
2012-12-18 11:04
2013.04.14
Фон в пхп


2-1349481129
Вова
2012-10-06 03:52
2013.04.14
как получить handle запускамемого приложения


15-1355922292
картман
2012-12-19 17:04
2013.04.14
хочу 32 часа


15-1355838147
Kerk
2012-12-18 17:42
2013.04.14
Проблема с memory-mapped file