Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1347787786
ddd
2012-09-16 13:29
2013.04.14
значение соответствующее значению в combobox


8-1231170249
Б
2009-01-05 18:44
2013.04.14
Как загрузить GIF в Image?


2-1349695018
aka
2012-10-08 15:16
2013.04.14
SSH cryptlib, кто работал с этим?


15-1355754563
Vegeta
2012-12-17 18:29
2013.04.14
Проблема с доступом к этому сайту


4-1264407457
QAZ
2010-01-25 11:17
2013.04.14
uac + действия или





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский