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

Вниз

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

 
@!!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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.79 MB
Время: 0.054 c
2-1196076386
новый новичок
2007-11-26 14:26
2007.12.23
Как защититься от совместного досупа к файлу в данном случае?


3-1187120241
Anti
2007-08-14 23:37
2007.12.23
Как создать генератор


15-1195682297
GanibalLector
2007-11-22 00:58
2007.12.23
Россия в ЕВРО2008


15-1195637042
Nucer
2007-11-21 12:24
2007.12.23
Themida


2-1196319865
Dennis I. Komarov
2007-11-29 10:04
2007.12.23
GetApplicationDataPath





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