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

Вниз

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

 
@!!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 - удобнее и вполне читабельно.


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

> Вообще, проблема  в том, что нет возможности в редакторе
> вставить нормальные символы. Такие как ???????

Неее. не надо такого счастья. не удобно было бы.


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

там была нормальная дельта значек суммы, больше или равно, неравно. Мне было бы привычнее.


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

> Тем боее что называть переменные как a,b,c,d,..,aa,ab,ac,
> ...,ba,bb, нету.

нету привычки


 
DVM ©   (2007-11-22 21:27) [124]


> @!!ex ©

Форматирование плохое. Не приемлю никакого другого форматирования, отличного от VCL.


 
DVM ©   (2007-11-22 21:39) [125]

Этот код вобщем не стоит приводить в качестве портфолио. У меня лично к человеку который принесет такой код возникнет много вопросов тоько из-за плохого оформления кода.


 
@!!ex ©   (2007-11-23 08:58) [126]

Учитывая что почти все конторы занимающиеся графикой в 3Д пишут на С++, им мое форматирование по любому не понравится.
Так что это не так актуально. :)


 
@!!ex ©   (2007-11-23 09:31) [127]

> Прочтите про рефакторинг(видимо еще не прочли «Рефакторинг.
> Улучшение существующего кода.» еще лучьше на английском.

Все на Яве... Очень сложно воспринимать. :(


 
Kolan ©   (2007-11-23 09:34) [128]

> Все на Яве&#133 Очень сложно воспринимать.

Да это так кажется. Основа там вообше текстом описана + UML, а понимать Джаву всеравно надо, так как большинство OO bigots"ов(как они себя называют) используют Джаву для примеров&#133


 
@!!ex ©   (2007-11-23 09:40) [129]

> [128] Kolan ©   (23.11.07 09:34)

читаю минут 15, уже несколько идей как разбить методы на части и избавиться от дублирования кода... спасибо! отличная вещь! хоть примеры  все равно плохо воспринимаю


 
Kolan ©   (2007-11-23 09:42) [130]

> читаю минут 15,

Прочтите до третей главы(Chapter 3. Bad Smells in Code) включительно. Запахи надо помнить иначе можешь пропустить, а исправление их — дело технику уже&#133


 
Kolan ©   (2007-11-23 09:51) [131]

И помните рефакторить код ради рефакторинга ненадо, рефакторьте когда добавляете новые функциональности, когда исправляете ошибку&#133 Ну там написано когода&#133


 
Andrey ©   (2007-11-23 10:24) [132]

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

Оставлю форматирование и имена переменных на усмотрение разработчика. В конце концов "на глазок" всё терпимо )

Вопрос, код критичен по скорости? Если да, то я нашел несколько моментов к которым докопался бы )

В частности:
1. Попробуй переписать TGun.Create представив себе что у PModel есть функция GetMeshCount.
2. Попробуй обойтись меньшим количеством Round-ов в TGun.Shoot.
Новые варианты сюда запости.

Кстати, ще заметил тут следы некоторых глобальных переменных, хотя их объявления не нашел. Очевидно они все в юните Data. Было бы интересно узнать сколько там глобальных переменных )

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

И еще, написать на скорую руку можно и:
Field: TFieldType
а уже потом, когда вдруг резко изменятся требования к коду и понадобится осуществлять контроль шаловливых ручек наших братьев по разуму - индусов, тогда можно и наростить обертку property... Конечно если на это (подготовку кода к... агрессивной среде) будет выделено дополнительное время/деньги.

Мое резюме: код интуитивно понятен, есть неоптимальные моменты (которые возможно будут исправлены в следующих постах), нет привычки работать в команде, нет коментариев.
А оценка уже зависит от того кто конторе нужен )


 
Kerk ©   (2007-11-23 10:25) [133]


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

"The site www.podgoretsky.com was blocked, it is in the Restricted Personal Homepages category"

эх :(


 
Anatoly Podgoretsky ©   (2007-11-23 10:31) [134]

> Kerk  (23.11.2007 10:25:13)  [133]

Не нравлюсь я вам. А может podgoretsky.com понравится или по ИП


 
@!!ex ©   (2007-11-23 10:36) [135]


> 1. Попробуй переписать TGun.Create представив себе что у
> PModel есть функция GetMeshCount.

GetMeshCount - там есть. Но он возвращает общее количчество мешей, а мне нужны именно конкретные, и их количество нигде не указано к сожалению. и указать - возможности нет...


> 2. Попробуй обойтись меньшим количеством Round-ов в TGun.Shoot.

В отдельную переменную вынести - не вопрос.
Только не нужно это пока.
Это место не является узким с точки зрения скорости.
Оно отрабатываеться сотые доли процента, от общего времени работы кода.

> Кстати, ще заметил тут следы некоторых глобальных переменных,
> хотя их объявления не нашел. Очевидно они все в юните Data.
> Было бы интересно узнать сколько там глобальных переменных
> )

Много. Но там в основном контейнеры. Например, текстурные, модельные. вобщем те вещи, которые должны быть реализованы через singleton, но тогда я еще не знал что глобальные переменные - это плохо, и что есть такая вещь, как singleton.
собственно модуль Data и был создан для того, чтобы хранить там переменные, которые должны существовать в единичном экзмепляре и должны быть доступны везде.
А сейчас если переделывать, придеться все переписывать.
В ледующем проекте так и собираюсь поступить, а текущий придеться оставлять как есть.


> нет привычки работать в команде, нет коментариев.

Да, уже два кода как работаю в гордом одиночестве...
А комментарии.. никто никогд ан учил их ставить. Даже когда в команде работал.


> А оценка уже зависит от того кто конторе нужен )

Мда.. эникейщие из меня получится замечательный.


 
Andrey ©   (2007-11-23 10:52) [136]

>singleton
Эх... как говорила одна знакомая: "илитарная выдумка" )
Хотя конечно поупражнять мозги этим можно. Даже потом можно красивыми словами поразмахивать.

>А комментарии.. никто никогд ан учил их ставить. Даже когда в команде работал.
Знач фиговая команда... Или не команда вовсе, а просто потом сидели толпой и собирали куски вместе, попутно объясняя друг другу детали интерфейсов и реализации. Коментарии, как это ни прискорбно, нужны.

>Мда.. эникейщие из меня получится замечательный.
Смелее ) "Лучше сожалеть о сделаном, чем о не сделаном." (це) непомню.
Ты главное объясни, что ты хочешь учиться работать в команде, повышать качество и отказоустойчивость своего кода, изучать новые технологии, придумывать/находить и использовать новые идеи... Думать головой и этим приносить прибыль себе и компании.


 
@!!ex ©   (2007-11-23 10:58) [137]

> Знач фиговая команда... Или не команда вовсе, а просто потом
> сидели толпой и собирали куски вместе, попутно объясняя
> друг другу детали интерфейсов и реализации. Коментарии,
> как это ни прискорбно, нужны.

25 челевок(было когда я там работал, сейчас не знаю).
за 10 лет три успешных проекта, каждый бюджетом на несколько миллионов долларов.
один проект точно получил минимум 7 наград. Это почти все журналы отечественные + КРИ.
Да и не было проблем с пониманием кода. В свое время влился в проект на 4 метра исходников примерно за месяц, почти при полном отсутствии комментариев.

С тех пор и не особо воспринимаю необходимость комментариев.


 
@!!ex ©   (2007-11-23 11:08) [138]

> >singleton
> Эх... как говорила одна знакомая: "илитарная выдумка" )
> Хотя конечно поупражнять мозги этим можно. Даже потом можно
> красивыми словами поразмахивать.

А как еще? Либо глобальная переменная, либо singleton.
Можно, конечно, запихать в отдельный класс и через него получать туда доступ, но смысл какой? чем это будет лучше глобальной переменной?


 
_xxx_   (2007-11-23 12:00) [139]


   inc(FireCount);
   SetLength(Fires,FireCount);
   Fires[FireCount-1].effect:=TLinearEmitter.Create(effect_ShootFire,1);
   Fires[FireCount-1].PBegin:=Model^.GetMeshID("Fire_begin_"+IntToStr(I));
   Fires[FireCount-1].PEnd:=Model^.GetMeshID("Fire_end_"+IntToStr(I));
   Model^.SetMeshVisible(Fires[FireCount-1].PBegin,False);
   Model^.SetMeshVisible(Fires[FireCount-1].PEnd,False);
   inc(I);


Имхо, зачем делать inc(FireCount) в начале, когда лучше сделать это в конце? Не придется 5 раз повторять FireCount-1, лишняя трата ресурсов.


 
@!!ex ©   (2007-11-23 12:02) [140]

> [139] _xxx_   (23.11.07 12:00)

Это привычка.
Даже на этом форуме давно давно меня в этом упрекали, такими вещами весь код пестрит.
Проблема в том, что если я сейчас начну писать подругому, то либо переписывать весь код, либо получиться солянка: здесь так, а здесь по другому.


 
_xxx_   (2007-11-23 12:12) [141]

Хм. Интересно, а в той конторе когда твой код проверять будут, догадаются ли они сделать следующее или нет?:
http://www.yandex.ru/yandsearch?clid=9582&text=SetMeshVisible

:)


 
@!!ex ©   (2007-11-23 12:14) [142]

> [141] _xxx_   (23.11.07 12:12)

Этот код я им посылать не буду. :)
Сказал уже. :))


 
_xxx_   (2007-11-23 12:16) [143]


> @!!ex ©   (23.11.07 12:14) [142]

Всю ветку не читал, тогда не вопрос:)


 
vpbar ©   (2007-11-23 12:30) [144]

>>_xxx_   (23.11.07 12:00) [139]
Каких ресурсов? Если вы о скорости, то об этом пусть компилятор заботится. А если сделать так как вы сказали, то логика немного теряется, по-моему. Хотя этот кусок кода вообже нехороший.


 
Kolan ©   (2007-11-23 12:36) [145]

> >singleton
> Эх&#133 как говорила одна знакомая: «илитарная выдумка» )

Ты нас недалеких просвети, что это значит-то&#133


 
Andrey ©   (2007-11-23 12:44) [146]

>Kolan ©   (23.11.07 12:36) [145]
Кто как услышит, тот так и поймет.


 
_xxx_   (2007-11-23 12:52) [147]


> vpbar ©   (23.11.07 12:30) [144]
> >>_xxx_   (23.11.07 12:00) [139]Каких ресурсов? Если вы
> о скорости, то об этом пусть компилятор заботится. А если
> сделать так как вы сказали, то логика немного теряется,
> по-моему. Хотя этот кусок кода вообже нехороший.

Точно компилятор позаботится? Что-то не уверен я в этом.


 
_xxx_   (2007-11-23 13:29) [148]

немного беру слова обратно:)... Компилятор оптимизирует, хотя 4 лишние команды таки добавляется.


 
Некто ©   (2007-11-23 13:35) [149]


> Да и не было проблем с пониманием кода. В свое время влился
> в проект на 4 метра исходников примерно за месяц, почти
> при полном отсутствии комментариев.С тех пор и не особо
> воспринимаю необходимость комментариев.


Через годик-два загляни в сорсы этого проекта. Восприятие изменится.


 
@!!ex ©   (2007-11-23 13:44) [150]

> [149] Некто ©   (23.11.07 13:35)

Нормально.
Есть старые проекты, конечно сразу их не воспримешь, но чтобы влиться в старый проект нужно не так уж и много времени.



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

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.8 MB
Время: 0.027 c
2-1196336326
F@T@L_Err0r
2007-11-29 14:38
2007.12.23
TChar


11-1181802744
max727
2007-06-14 10:32
2007.12.23
kollistbox


2-1196023535
Бэтман
2007-11-25 23:45
2007.12.23
Как проверить являеться ли строка числом ?


2-1196173492
misha_gr
2007-11-27 17:24
2007.12.23
Application.BringToFront


3-1182843398
DelphiN!
2007-06-26 11:36
2007.12.23
Округление даты-время в дату в SQL