Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1356035402
Юрий
2012-12-21 00:30
2013.04.14
С днем рождения ! 21 декабря 2012 пятница


2-1349379021
qwerty123
2012-10-04 23:30
2013.04.14
TreeView и системные иконки


15-1355730455
Vegeta
2012-12-17 11:47
2013.04.14
Мультиварка или хлебопечка?


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


2-1349897717
Anariem
2012-10-10 23:35
2013.04.14
Перемещение Label





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский