Форум: "Прочее";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];
ВнизЛюди, которые пишут begin..end вокруг одного оператора Найти похожие ветки
← →
Владислав © (2012-12-14 23:42) [120]Rouse_ © (13.12.12 21:02) [82]
> O"ShinW © (13.12.12 17:49) [74]
> ь :)
>
> чем это s += j лучше, чем s = s + j - непонятно
Ну например тем, что можно написать вот так i += ++i+i++; и оно даже скомпилится :)
Жуть какая! Это не Вам, а тем, кто так пишет.
Игорь Шевченко © (13.12.12 21:46) [83]
Я начинаю всерьез думать о создании движения за лишение гражданских свобод программистов, пишущих подобный код :)
Игорь, ты стал очень категоричным в своих утверждениях. :) А как же "овощь..."?
RWolf © (14.12.12 09:29) [96]
> [94]
если кодер вдумывается в приоритеты, значит, он не знает языка.
приведённая конструкция прозрачна.
Дело не в том, сколько кодер тратит времени на чтение конструкции. Дело в том, что эту конструкцию за время жизни кода прочитает еще "мульюн" кодеров. Конструкция должна читаться, а не пониматься.
Игорь Шевченко © (14.12.12 15:36) [111]
Что касается инвариантов по отношению к языку - у каждого языка есть культура стиля, и я предпочитаю писать именно в культуре конкретного языка. Этот опыт основан на том, что читать мой (не мой) код будут люди, которые привыкли к культуре того языка, на котором я пишу.
Хорошо и понятно сказано. Аналогия - общение с неносителем языка.
← →
знайка (2012-12-14 23:54) [121]
> Конструкция должна читаться, а не пониматься.
Это не художественная литература, чего ее мульену читать?
← →
Kerk © (2012-12-15 00:01) [122]знайка (14.12.12 23:54) [121]
> > Конструкция должна читаться, а не пониматься.
> Это не художественная литература, чего ее мульену читать?
Это в общем-то очевидная вещь, что код читается в разы чаще, чем пишется. Не?
← →
Игорь Шевченко © (2012-12-15 00:03) [123]знайка (14.12.12 23:54) [121]
> Это не художественная литература, чего ее мульену читать?
За чтение художественной литературы деньги программистам не платят. За чтение кода - платят. Разница налицо.
Владислав © (14.12.12 23:42) [120]
> Игорь, ты стал очень категоричным в своих утверждениях.
> :)
Надо сеять разумное доброе и вечное. А неразумное злое и временное - выпалывать! :)
← →
Rouse_ © (2012-12-15 00:13) [124]Чтоб мудро жизнь прожить, знать надобно немало.
Два важных правила запомни для начала:
Ты лучше голодай, чем что попало есть,
И лучше будь один, чем вместе с кем попало.
Омар Хайям (1978г)
← →
Rouse_ © (2012-12-15 00:14) [125]ЗЫ: ну год есесно перевода :))
← →
знайка (2012-12-15 00:38) [126]
> Это в общем-то очевидная вещь, что код читается в разы чаще,
> чем пишется. Не?
За всех не знаю, а у нас нет. Да и зачем его постоянно перечитывать ? наизусть запомнить?
> За чтение художественной литературы деньги программистам
> не платят. За чтение кода - платят. Разница налицо.
Во-во, а как известно, кто платит тот и танцует, какой стиль принят, и более менее придется его придерживаться.
Как то у Paladdin (если правильно помню) параметры начинались с литеры "р", вот и объясните им, что это не по феншую.
Да и в той-же vcl, можно найти, наверное, все что угодно.
← →
знайка (2012-12-15 00:41) [127]Ой сори конечно Palladin.
← →
Владислав © (2012-12-15 00:48) [128]
> Игорь Шевченко © (15.12.12 00:03) [123]
> знайка (14.12.12 23:54) [121]
>
> Надо сеять разумное доброе и вечное. А неразумное злое и
> временное - выпалывать! :)
По сути ты прав. Я даже поддерживаю. Но как поколение воспитывать? "Казнить" нас неразумных? Это жестко!
Да и вот посмотри, что Александр (если не ошибаюсь. Я про Rouse_) пишет/цитирует в: "Rouse_ © (15.12.12 00:13) [124] "
С кем быть попало, если не с вами?..
Разумное на то и "разумное", что его разумно нужно сеять. "Угу", или не "угу"? :)
← →
Владислав © (2012-12-15 00:58) [129]
> знайка (15.12.12 00:38) [126]
Вы затронули тему корпоративных стандартов. С ними не нужно спорить, их нужно принять.
← →
Германн © (2012-12-15 01:37) [130]Удалено модератором
← →
Германн © (2012-12-15 01:50) [131]Я лично не совсем понимаю почему борьба за разумное, доброе, вечное начинается с "лишних" begin..end?
Тут бы ещё как бы не обидеть уважаемого мастера :)
А вот наличие "ненужных" скобок в сравнительно длинном арифметическом и особенно логическом выражении считаю более важным предметом для обсуждения.
← →
Аббат Пиккола (2012-12-15 02:59) [132]Внесу немного своей лепты в святую борьбу за вечное.
:)
Как лучше назвать объекты метаданных в базах данных?
По-английски, по-русски транслитом на латиницу, по-русски русскими буквами, вообще суррогатно (как в 1С, например: SC110, SC111...).
Я лично предпочитаю называть по-английски.
Понятно, что если есть стандарт в совместной работе, его приходится придерживаться volens nolens...
Ну а если это все же выбор стиля за разработчиком?
← →
картман © (2012-12-15 03:18) [133]
> По-английски, по-русски транслитом на латиницу, по-русски
> русскими буквами
коль уж зашла речь: т_вэри_импотэнт_дэйта
← →
Inovet © (2012-12-15 04:17) [134]> [116] Аббат Пиккола (14.12.12 15:55)
> закомментировать любую строчку.
Так-с, продолжим писать читабельный код с комментариями
*i---=*i---=*/*-+-*/i+++=*i+++=--*i+++/***/*i--+*--i-*i++;
← →
Игорь Шевченко © (2012-12-15 11:07) [135]знайка (15.12.12 00:38) [126]
> как известно, кто платит тот и танцует, какой стиль принят,
> и более менее придется его придерживаться.
> Как то у Paladdin (если правильно помню) параметры начинались
> с литеры "р", вот и объясните им, что это не по феншую.
Общий феншуй описан подробно и с картинками:
http://citforum.ru/programming/delphi/style_delphi/
Каждая компания вполне может внедрять свой феншуй, для того, чтобы программисты могли разобраться в написанном коллегами.
> Да и в той-же vcl, можно найти, наверное, все что угодно.
vcl написан в едином стиле, поверь. По меньшей мере базовая часть.
← →
Игорь Шевченко © (2012-12-15 11:10) [136]Аббат Пиккола (15.12.12 02:59) [132]
> Как лучше назвать объекты метаданных в базах данных?
>
> По-английски, по-русски транслитом на латиницу, по-русски
> русскими буквами, вообще суррогатно (как в 1С, например:
> SC110, SC111...).
>
> Я лично предпочитаю называть по-английски.
Я лично тоже предпочитаю использовать английские названия, потому что ключевые слова вокруг этих имен, как ни крути, английские.
SELECT там всякий...
← →
Фокс Йожин (2012-12-15 11:47) [137]Оптимизируем код
> Люди, которые пишут begin..end
> Являются тормозом прогресса и врагами нации :)
:-D
← →
Пит (2012-12-15 17:18) [138]ну вот тот же стандарт http://citforum.ru/programming/delphi/style_delphi/
я не понимаю почему бы иногда if"у не располагаться на одной строчке.if (a=b) then exit;
что в этом коде нечитабельно и чем он принципиально хуже:if (a=b) then
exit;
?
← →
Пит (2012-12-15 17:21) [139]нет, я знаю одну штуку насчет однострочного if"а - при пошаговой отладке непонятно - сработало условие или нет. Но при варианте с exit - даже это не аргумент.
Насчет отладки - гораздо круче несоответствие pas файла и dcu. Вот там бывает шикарно :-)
← →
asail © (2012-12-15 21:47) [140]
> Пит (15.12.12 17:18) [138]
> if (a=b) then exit;
А такой код в VCL встречается очень часто, насколько помню...
← →
TUser © (2012-12-15 22:34) [141]
> Ega23 © (13.12.12 00:36) [33]
>
> > кто-то пишет begin/end побуквенно?
>
> Плюс мильён. Среда сама подставляет, как минимум end; :)
Ну я пишу, держите меня семеро. Обычно в FARе. Автозаполнение кода в IDE просто раздражает - специально отключаю. Вообще, набивание кода - это от силы 1% времени, остальное - его обдумывание. Так что большой разницы между {, begin и start_of_code_block не вижу.
← →
Аббат Пиккола (2012-12-16 00:50) [142]Я тоже набиваю весь код руками. Зрение слабое. А руки сильные. :)
← →
Германн © (2012-12-16 03:07) [143]
> TUser © (15.12.12 22:34) [141]
>
> Ну я пишу, держите меня семеро. Обычно в FARе. Автозаполнение
> кода в IDE просто раздражает - специально отключаю.
Вот почему я этому не удивлён?
:)
← →
TUser © (2012-12-16 07:55) [144]Вот, допустим, есть код
for ... do
aaa
а мне надо его дополнить до
for ... do
begin
bbb
aaa
end
Допустим, я ввел begin. IDE (Turbo Delphi) после Enter сразу сделает мне
for ... do
begin
// тут курсор
end;
aaa
то есть просто введет в код ошибку, которую надо быстро-быстро исправлять. Это для удобства разработчика сделано, да? Нафиг.
← →
Игорь Шевченко © (2012-12-16 12:49) [145]Автокомплит - он не для удобства внесения изменений, а для удобства создания нового кода и пользы от него больше, чем вреда.
← →
QAZ9 (2012-12-16 20:47) [146]я бы так называл людей которые одну строчку кода обертывают в функцию
← →
Rouse_ © (2012-12-16 21:01) [147]
> QAZ9 (16.12.12 20:47) [146]
> я бы так называл людей которые одну строчку кода обертывают
> в функцию
Кошмар, люди реализовавшие Inc/Dec/Max/Min уже прямо сейчас должны покаяться? :)
← →
Игорь Шевченко © (2012-12-16 21:06) [148]Rouse_ © (16.12.12 21:01) [147]
в Max и Min больше одной строки, а люди, реализовавшие Inc и Dec в виде функций, и, более того, использующие их, заслуживают живительной эвтаназии чуть более, чем полностью.
← →
Kerk © (2012-12-16 21:25) [149]
> QAZ9 (16.12.12 20:47) [146]
>
> я бы так называл людей которые одну строчку кода обертывают
> в функцию
Ну ты слишком обобщаешь. Легко могу придумать примеры, когда это оправдано. Различные get-еры сразу на ум приходят.
← →
QAZ9 (2012-12-16 21:26) [150]
> Rouse_ © (16.12.12 21:01) [147]
а как же быстродействие о котором ты так печешся рассказывая про выдергивание вложенных "недокументированных" функции из "обычных" в своем бложике?
← →
Rouse_ © (2012-12-16 21:33) [151]
> Игорь Шевченко © (16.12.12 21:06) [148]
> Rouse_ © (16.12.12 21:01) [147]
>
> в Max и Min больше одной строки, а люди, реализовавшие Inc
> и Dec в виде функций, и, более того, использующие их, заслуживают
> живительной эвтаназии чуть более, чем полностью.
Да, с Max и Min перепутал, у меня собственная интерпретация в одну строчку.
А вот по поводу второго утверждения не понял? Опять предлагаешь лоботомировать всю эмбаркадеру?
> QAZ9 (16.12.12 21:26) [150]
> а как же быстродействие о котором ты так печешся рассказывая
> про выдергивание вложенных "недокументированных" функции
> из "обычных" в своем бложике?
В своем "бложике" я пишу статьи для людей включающих внутренние отсеки черепной коробки. Конечно по поводу инлайн функций ты в курсе и наверное сможешь сделать выводы по поводу производительности в том числе?
← →
QAZ9 (2012-12-16 21:35) [152]
> по поводу инлайн функций
в курсе что их в старых версиях нет
← →
QAZ9 (2012-12-16 21:37) [153]
> внутренние отсеки черепной коробки
там как бы один отсек, если что ...
← →
Игорь Шевченко © (2012-12-16 21:39) [154]Rouse_ © (16.12.12 21:33) [151]
> Опять предлагаешь лоботомировать всю эмбаркадеру?
Ты про Delphi Intrinsic Routines или про что ?
← →
Rouse_ © (2012-12-16 21:46) [155]
> QAZ9 (16.12.12 21:35) [152]
> в курсе что их в старых версиях нет
Не - не слышал...
> QAZ9 (16.12.12 21:37) [153]
> там как бы один отсек, если что ...
ну у кого как...
> Игорь Шевченко © (16.12.12 21:39) [154]
Не понял.
← →
Rouse_ © (2012-12-16 21:50) [156]
> QAZ9 (16.12.12 21:26) [150]
Ах, да и по поводу быстродействия, еще раз включи чего там у тебя есть и уясни что отключение двух трех, да шут с ним даже пяти однотактовых асм инструкций, не дадут прироста в производительности, за исключением их вызова в продолжительном цикле на несколько миллионов итераций, в отличие от того примера, что я показывал в своем "бложике" ;)
← →
DVM © (2012-12-16 21:54) [157]
> Игорь Шевченко © (16.12.12 21:06) [148]
> а люди, реализовавшие Inc и Dec в виде функций, и, более
> того, использующие их, заслуживают живительной эвтаназии
> чуть более, чем полностью.
А что в этом плохого? Особенно с учетом inline?
> QAZ9 (16.12.12 20:47) [146]
> я бы так называл людей которые одну строчку кода обертывают
> в функцию
вот здесь одна строчка:function ROL16(const AValue: Word; const AShift: Byte): Word;
begin
Result := (AValue shl AShift) or AValue shr (16 - AShift);
end;
В криптоалгоритме эта функция встречается в сотне мест. И что теперь дублировать это сто раз? Я уж не говорю о наглядности. А inline она прекрасно становится.
← →
Игорь Шевченко © (2012-12-16 22:07) [158]Rouse_ © (16.12.12 21:46) [155]
> Не понял.
These intrinsic routines are actually handled by the compiler rather than the run-time library.
System.Dec Decrements a variable by 1 or N.
System.Inc Increments an ordinal value by one or N.
← →
Rouse_ © (2012-12-16 22:09) [159]
> Игорь Шевченко © (16.12.12 22:07) [158]
Угу, и чем они тебе плохи?
← →
DVM © (2012-12-16 22:18) [160]Inc и Dec это и не функции или процедуры вообще в привычном понимании, это магия компилятора скорее, Inc(p) дает более оптимальный код, чем p := p + 1
Страницы: 1 2 3 4 5 6 вся ветка
Форум: "Прочее";
Текущий архив: 2013.04.14;
Скачать: [xml.tar.bz2];
Память: 0.82 MB
Время: 0.061 c