Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Вниз

Оцените код.   Найти похожие ветки 

 
@!!ex ©   (2007-11-22 20:13) [80]

еще сильно напрягает то, что я смотрю на код, который писали профи у которых я учился... и там не все хорошо, если судить по тому, что говорили в этой ветке...


 
Kolan ©   (2007-11-22 20:15) [81]

> Главное чтобы он был опеределен.

Я те говорю он обределен — это VCL. Если трудно понять его, то есть выделеное описание этого формата.
Писать не по стандарту это как не чистить зубы — не умрешь, но всем вокруг противно.


 
@!!ex ©   (2007-11-22 20:18) [82]

dt, кстати, используют..


 
Anatoly Podgoretsky ©   (2007-11-22 20:19) [83]

> @!!ex  (22.11.2007 20:10:17)  [77]

> if a > b then C := True;

Так нельзя

> C:=a>b;

Это не взаимозаменяемые конструкции, мне правда не понятна зачем нужна эта конструкция, может где ни будь делается C := False иначе это одноразовый выключатель.
Без всего кода и его разборки не понять, но что то странное.
А код как сказали "тебя не поймут".


 
vpbar ©   (2007-11-22 20:20) [84]

>>@!!ex ©   (22.11.07 20:10) [77]


> C:=true строго определенное. в C помойму -1 лежит.
> А если использовать C:=a>b то там может лежать что угодно.
> .. Накололся так однажды не хило...

???!!! В C лежит или True или False. Остальное от лукаваго. Это ж тебе не Си.
Наколешься конечно если с логическими переменными будешь пытаться делать то к чему они не предназначены.


 
@!!ex ©   (2007-11-22 20:21) [85]

http://afera-net.narod.ru/src.rar


 
@!!ex ©   (2007-11-22 20:21) [86]

> [84] vpbar ©   (22.11.07 20:20)

например в файл сохранять, в один бит данных.


 
Anatoly Podgoretsky ©   (2007-11-22 20:26) [87]

> @!!ex  (22.11.2007 20:12:19)  [79]

> Форматирование - это вещь которая в каждой фирме определяется по свойму, и работать по конкретному стандарту - это не вопрос. Главное чтобы он был опеределен.

Как раз вопрос, тебе указали смешение сразу нескольких стилей в одном коде, это очень плохо, путаница с глаголами и существительными.

Плюс непонимание ООП в части скрытие полей, их контроль через свойства.
Свойство это очень мощный механизм, позволяющий легко контролировать доступ до поля, делая программу надежной и управляемой.
В идеале доступ должен быть только через свойства и методы, никакого прямого доступа извне до переменной, только в пределах одного модуля такое допустимо и то, только в дозируемых случаях.
Стоит только привыкнуть и по другому уже не захочешь делать. Снижение производительности нет, это всего лишь указание компилятору и защита от дурака.


 
vpbar ©   (2007-11-22 20:26) [88]

>>@!!ex ©   (22.11.07 20:21) [86]
один бит. это как? В смысле при чем тут работа с boolean как с целым числом?


 
Anatoly Podgoretsky ©   (2007-11-22 20:27) [89]

> @!!ex  (22.11.2007 20:13:20)  [80]

Ну мы же люди, человеки и можем себе позволить отойти от нормы, прекрасно зная почему и где мы это делаем. Но одно дело внутренний код и код выставляемый наружу. Кроме того нестандартные вещи положено комментировать, почему так, а не иначе.


 
Anatoly Podgoretsky ©   (2007-11-22 20:29) [90]

> @!!ex  (22.11.2007 20:18:22)  [82]

Но не как DelayTime, а как локальная переменная DataTime.
Ведь тебя не зря спросили, что такое dt - значит это вызывает вопрос.


 
Anatoly Podgoretsky ©   (2007-11-22 20:31) [91]

> vpbar  (22.11.2007 20:20:24)  [84]

Вот в его конструкции с if как раз черт знает что лежит, может вообще неопределенное значение.
Но конструкции не равны из-за if ветви то else нет.
Это известная логическая ловушка, применение конечно возможно, как стоп-флаг.


 
@!!ex ©   (2007-11-22 20:33) [92]

> Как раз вопрос, тебе указали смешение сразу нескольких стилей
> в одном коде, это очень плохо, путаница с глаголами и существительными.

Да не смешение стилей. У нас в фирме стандарт такой:
стандартные типа с маленькой быквы пишутся.
привефиксы пишутся с маленькой буквы и отделяются подчеркиванием.
обычные перменные пишутся с большой буквы и в качестве разделителя тоже большая буква.
Смешение стилей - это когда:
GetBigValue
get_small_value


> путаница с глаголами и существительными.

Это есть, постараюсь исправиться.


> Плюс непонимание ООП в части скрытие полей, их контроль
> через свойства.

понимаю. уже достаточно объяснили.
просто ООП обучали на С++, там не property.


> Стоит только привыкнуть и по другому уже не захочешь делать.
> Снижение производительности нет, это всего лишь указание
> компилятору и защита от дурака.

Меня только один момент волнует по данному вопросу.
Если есть поле Value и к нему внешний доступ полный должен быть.
Зачем делать обертку property?


> один бит. это как? В смысле при чем тут работа с boolean
> как с целым числом?

Надо было сохранить boolean значение в 1 бит данных в файле.
Я исходил из того, что там либо 0, либо -1, в итоге пролетел нехило, как раз из-за присваения переменной булевских выражений.


 
vpbar ©   (2007-11-22 20:34) [93]

>>Anatoly Podgoretsky ©   (22.11.07 20:31) [91]
Дык я и не говорил что конструкции одинаковые.  Я по этому поводу
> А если использовать C:=a>b то там может лежать что угодно.

возмущался.


 
@!!ex ©   (2007-11-22 20:35) [94]

> [90] Anatoly Podgoretsky ©   (22.11.07 20:29)

Не. как раз народ у которого я код смотрел dt была везде и значила она delaytime.
Т.к. в играх всеже считается исяходя из проемужтка времени прошедшего с последнего расчета, то dt - везде.
наверно поэтому и такое сокращение, если везде писать DelayTime, очень много замусорится.


 
vpbar ©   (2007-11-22 20:41) [95]


> Меня только один момент волнует по данному вопросу.
> Если есть поле Value и к нему внешний доступ полный должен
> быть.
> Зачем делать обертку property?

Незачем. Если только на будущее.


> > один бит. это как? В смысле при чем тут работа с boolean
>
> > как с целым числом?
>
> Надо было сохранить boolean значение в 1 бит данных в файле.
>  
> Я исходил из того, что там либо 0, либо -1, в итоге пролетел
> нехило, как раз из-за присваения переменной булевских выражений.


:) Это наследие Си. В делфи, по-моему, не гарантируется что там -1. "A value of type ByteBool, LongBool, or WordBool is considered True when its ordinality is nonzero. " Цитата из справки


 
Anatoly Podgoretsky ©   (2007-11-22 20:43) [96]

> @!!ex  (22.11.2007 20:33:32)  [92]

> Меня только один момент волнует по данному вопросу.
> Если есть поле Value и к нему внешний доступ полный должен быть.
> Зачем делать обертку property?

Сравни


public
  FVar: type

и


private
  F: type
  procedure Setter(F: type);
public/published
  property Var1: FVar read FVar write FVar;
  property Var2: FVar read FVar write Setter;
  property Var2: FVar read FVar;

 
В первом случае имеем прямой доступ из любого места программы, со всеми возможными последсвиями, а во втором случае,

1.  только косвенный, контролируемый компилятором.
2. только косвенный на чтение и контролируемый запись.
3. только косвенный на чтение, доступ по записи запрещен.

А доступ выглядит одинаково, весь механизм в других модуляд скрыт от конечного пользователя, а в модуле можно обращаться как к Var, так и к  F

V := Var;

Это очень мощный механизм и он не ограничен приведеными примерами, синтаксис шире.


 
vpbar ©   (2007-11-22 20:47) [97]

>>Anatoly Podgoretsky ©   (22.11.07 20:43) [96]
Так вы за наших или за марсиан :).
Если нужен прямой доступ для чтение-записи то чем  property Var1: FVar read FVar write FVar; лучше public  FVar: type ?
По-моему ничем. Все одинакова, ну кроме извращений с получением адресов.


 
Anatoly Podgoretsky ©   (2007-11-22 20:48) [98]

> vpbar  (22.11.2007 20:34:33)  [93]

Если это Boolean, а по присвоению именно он, то там не может лежать ничего кроме True/False, это же не Boolean := Bool


 
vpbar ©   (2007-11-22 20:48) [99]

>>Anatoly Podgoretsky ©   (22.11.07 20:43) [96]
Так вы за наших или за марсиан :).
Если нужен прямой доступ для чтение-записи то чем  property Var1: FVar read FVar write FVar; лучше public  FVar: type ?
По-моему ничем. Все одинаково, ну кроме извращений с получением адресов и published.


 
@!!ex ©   (2007-11-22 20:49) [100]


> [96] Anatoly Podgoretsky ©   (22.11.07 20:43)

А какая разница косвенный доступ или прямой?

Ну в любом случае мне не избежать переменных в паблике.
потому что есть места куда надо сохранять указатели на переменные и с ними работать...
А тут никак через property не реализовать...


 
vpbar ©   (2007-11-22 20:51) [101]

>>@!!ex ©   (22.11.07 20:49) [100]
Ууу. Указатели на поля. Жуть. Аккуратнее.

> А тут никак через property не реализовать

Да. Это надо просто по другому решать.


 
Anatoly Podgoretsky ©   (2007-11-22 20:51) [102]

> @!!ex  (22.11.2007 20:35:34)  [94]

Для меня подобно сокращение значит, или дельта t, или DateTime - но никогда не DelayTime
А касательно насчет "мусорить", то программист не имеет права на лень. Если будет написано DelayTime, то вопросов нет, а если dt то это вопрос.

Ты читал http://www.podgoretsky.com/DM/BadTips.html совет 0?
Это про тебя и для тебя.


 
Anatoly Podgoretsky ©   (2007-11-22 20:54) [103]

> vpbar  (22.11.2007 20:41:35)  [95]

> Если есть поле Value и к нему внешний доступ полный должен
> быть.
> Зачем делать обертку property?

> Незачем. Если только на будущее.

Как раз наоборот, что бы не было полного внешнего доступа, а будущее будет выражать в том, что изменение будет проводиться в одном месте, если надо проконтролировать доступ, позволить выполнить побочные действия, не затрагивая других мест. Поэтому лучше все поля скрыть от прямого доступа, только косвенно. Плохо от этого не станет, а вот лучше 100 процентно, поскольку контроль и управляемость.


 
Anatoly Podgoretsky ©   (2007-11-22 20:56) [104]

> vpbar  (22.11.2007 20:47:37)  [97]

> Так вы за наших или за марсиан :).

Я уже объяснил, чем лучше.
Так что я за культурных марсиан.


 
@!!ex ©   (2007-11-22 20:58) [105]

> [101] vpbar ©   (22.11.07 20:51)

Знаю что жуть. Но другие способы очень медленные.
Скрипт должен работать с переменными(например жизнью игрока).
ему либо косвенно задавать переменную(что влечет за собой несколько вызовов всевозможных методов).
Либо просто работать со своими внутренними переменынми, среди которых зарегена и жизнь игрока.
Что не влечет за собой ниодного вызова.


> [102] Anatoly Podgoretsky ©   (22.11.07 20:51)

Читал.
dt - единственное сокращение во всем коде.
и, кстати, я таки ошибся, кодеры действительно имели ввиду dt - как дельта тайм. :)
переводы строк есть, там где это удобнее.
Например в больших блоках if.
Комментариев нету... Это да. На это тупо нет времени, комментарии писать. Да и никгде не учат писать комменты, даже в сорсах VCL их минимум.
Юнитов у меня много. около 50 штук. А лишние пложить ох как нехочеться(если вы намекаете на то, что все ИИ в одном юните собраны), ИМХо им в одном юните самое место.
Так что из совета 0 про меня только отсутствие большого количчества комментов, и единственная переменная сокращенная.


 
Anatoly Podgoretsky ©   (2007-11-22 21:00) [106]

> @!!ex  (22.11.2007 20:49:40)  [100]

Разница простая, ты не можешь передать адрес и над ним извращенно издеваться. А скажем завтра тебе потребовалось при присвоение делать проверки, так достаточно будет дописать private метод и переписать определение свойства и продолжать работать. Без этого тебе возможно придется переворошить кучу кода заменить где встретится присвоение на вызов функции/процедуры, ничего не пропустить.
Свойство для того и придумали, чтобы уменьшить расходы на программирование и повысить надежность программы, а кое кому укоротить ручки по непредусмотренному использованию полей, в обход проверок и диких манипуляций с адресами.


 
Anatoly Podgoretsky ©   (2007-11-22 21:03) [107]

> @!!ex  (22.11.2007 20:58:45)  [105]

> Например в больших блоках if.
> Комментариев нету... Это да. На это тупо нет времени, комментарии писать.

Лень не приветствуется.
При нормальном имени комментарий не требуется.
Делай выводы.


 
vpbar ©   (2007-11-22 21:03) [108]

>>Anatoly Podgoretsky ©   (22.11.07 20:56) [104]
Понял я понял. Собственно я согласен. Сам делаю обертки полей всегда. Автоматически так сказать.


 
Anatoly Podgoretsky ©   (2007-11-22 21:04) [109]

> @!!ex  (22.11.2007 20:58:45)  [105]

> Так что из совета 0 про меня только отсутствие большого количчества комментов, и единственная переменная сокращенная.

Компилятору конечно тяжело работать с длинными переменными, это такая нагрузка на него и программа будет медленне работать.


 
@!!ex ©   (2007-11-22 21:06) [110]

> Лень не приветствуется.

Дело не в лени. А в отсутствии времени.


> При нормальном имени комментарий не требуется.

Дайте материала по правильному названию методов и переменных?


 
Anatoly Podgoretsky ©   (2007-11-22 21:08) [111]

> @!!ex  (22.11.2007 21:06:50)  [110]

Правило номер один - не сокращайте до 1/2 символов, если это не является общепринятым, в твоем случае это не так, поскольку несколько человек спросили, что это такое.

Правило номер два - никогда не выставляйте подобный код на всеобщее обозрение.


 
@!!ex ©   (2007-11-22 21:10) [112]

> Компилятору конечно тяжело работать с длинными переменными,
> это такая нагрузка на него и программа будет медленне работать.

Да чего ж вы так все привязались к единственному сокращению, к тому же для данной сферы стандартному. :)
в проекте около 700 раз используется сочетание dt...
код вообще не читаемый будет, если писать delaytime или deltatime, потому что dt - вездею ниодно действие без него не происходит.


 
vpbar ©   (2007-11-22 21:10) [113]

я http://www.ozon.ru/context/detail/id/3159814/ читал. Полезно было и есть.


 
@!!ex ©   (2007-11-22 21:12) [114]

> Правило номер один - не сокращайте до 1/2 символов, если
> это не является общепринятым, в твоем случае это не так,
> поскольку несколько человек спросили, что это такое.

Видимо те кто спрашивал - никогд ане писали приложений, которые синхронизируются по времени.


> Правило номер два - никогда не выставляйте подобный код
> на всеобщее обозрение.

Почему? Наоборот вроде очень полезно!


 
@!!ex ©   (2007-11-22 21:12) [115]

> [113] vpbar ©   (22.11.07 21:10)

Прочитал где-то на четверть. потом время кончилось.
Никак не соберусь дочитать..


 
vpbar ©   (2007-11-22 21:13) [116]

>>@!!ex ©   (22.11.07 21:10) [112]
Согласен. К тому там где связано со временем dt вполне логично. t -время. d - дельта( ну греческая букавка такая. Ее замена.)  dt- приращение времени.


 
Anatoly Podgoretsky ©   (2007-11-22 21:15) [117]

> @!!ex  (22.11.2007 21:10:52)  [112]

Можно согласиться со всем, кроме читаемости.
Похоже ты сам себя уговариваешь.


 
Anatoly Podgoretsky ©   (2007-11-22 21:17) [118]

> @!!ex  (22.11.2007 21:12:54)  [114]

> Видимо те кто спрашивал - никогд ане писали приложений, которые синхронизируются по времени.

Ошибаешься.
Но никогда в голову не приходило так сокращать, в угоду лени.


 
vpbar ©   (2007-11-22 21:18) [119]

Вообще, проблема  в том, что нет возможности в редакторе вставить нормальные символы. Такие как ΔΣ≤≥∆≠∏


 
@!!ex ©   (2007-11-22 21:19) [120]

> [118] Anatoly Podgoretsky ©   (22.11.07 21:17)

Нет. Че мне себя уговаривать?
Тем боее что называть переменные как a,b,c,d,..,aa,ab,ac,...,ba,bb, нету.
dt - удобнее и вполне читабельно.



Страницы: 1 2 3 4 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.7 MB
Время: 0.057 c
15-1195800245
KSergey
2007-11-23 09:44
2007.12.23
Пресловутый переход на висту


2-1195933899
riko
2007-11-24 22:51
2007.12.23
Клиент сервер


2-1196417567
Pacific
2007-11-30 13:12
2007.12.23
Как


2-1196079946
webpauk
2007-11-26 15:25
2007.12.23
FindFirst, FindNext


2-1196107164
cyber
2007-11-26 22:59
2007.12.23
Проблема с DBGid





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