Форум: "Прочее";
Текущий архив: 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