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

Вниз

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

Наверх




Память: 0.83 MB
Время: 0.031 c
15-1355337472
Игорь Шевченко
2012-12-12 22:37
2013.04.14
Люди, которые пишут begin..end вокруг одного оператора


2-1349793591
ixen
2012-10-09 18:39
2013.04.14
cxDBTreeList и поле колонки


15-1355231463
boriskb
2012-12-11 17:11
2013.04.14
Российские школьники лидируют в изучении математики


4-1264548546
hattak
2010-01-27 02:29
2013.04.14
Скриншот свёрнутого окна


2-1349542966
FIL-23
2012-10-06 21:02
2013.04.14
Как установить компоненты