HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Антипаттерны проектирования (https://hlfx.ru/forum/showthread.php?threadid=1519)


Отправлено XaeroX 29-09-2008 в 09:23:

Red face Антипаттерны проектирования

Вот здесь есть отличный список антипаттернов.
http://insidecpp.ru/antipatterns/

Я сам частенько ловлю себя на их применении. Причем копипаст - это еще не самое страшное Встречается и хардкод, и магические числа (хотя обычно они у меня действительно независимые константы). Обожаю изобретать колесо и преждевременно оптимизировать
А как у вас с этим? Применяете? Боретесь? Насколько успешно?

__________________

xaerox on Vivino


Отправлено Дядя Миша 29-09-2008 в 09:39:

XaeroX супир, читаю с удовольствием.
Но юзать антипаттерны мне постоянно мешает природная лень.
действую по принципу - лучше весь код один раз переписать, чтобы потом не иметь проблем.
так шо xash3D по всем канонам написан

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 29-09-2008 в 09:47:

Дядя Миша по всем канонам - это в смысле "на основе паттернов Кармака"?

__________________

xaerox on Vivino


Отправлено Дядя Миша 29-09-2008 в 09:54:

Programming by permutation
Иногда страдаю, если наличествует булевый выбор.ну например отсечение плоскости по нечетному или четному planenum.
Я, допустим могу не помнить, как правильно. мне проще проверить оба варианта и сравнить FPS

Цитата:
Дядя Миша по всем канонам - это в смысле "на основе паттернов Кармака"?

Архитектура-то у меня своя.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Scrama 29-09-2008 в 09:56:

Спагетти - редкость, хотя в здешних краях исходники попадаются.
Копи-паста - мой любимый.
Хард кодед - редкость, но бывает. Предпочитаю таскать инишник за ехе, хотя значения по-умолчанию всегда прошиты (в силу реализации самих функций работы с ини)
Магичсекие числа - почти никогда. Я наоборот страдаю введением огромного количества глобальных констант и макро.
Велосипед многократен.
Блобы? Нет, не ко мне.
Метод подбора... Пока не встречался.
Раздутый интерфейс. Дададададада.
Волшебная кнопка. Я от этого отказался, хотя раньше не испытывал проблем. Просто решил стать правильнее.
Преждевременная оптимизация? Нет, оптимизация ждет рефакторингов.
Пессимизация?

code:
'Пауза для внушительности Sleep 1000

Слепая вера.... Такая слепая...
Исключения. Применил туту один раз в силу кривущей индусской реализации интерфейса. Долгая история.

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено Дядя Миша 29-09-2008 в 09:57:

Interface bloat
Этим да, страдаю в тяжелой форме, утешаю себя мыслью, что у valve тожесамое.
Lava flow
Отважно матеря пространство всегда переписываю, пусть даже на это уйдет не одна неделя.
Зато потом чувствую тепло и лечу )
Exception handling
Чушь ИМХО. есть jmp_buf, его вполне хватает для сложных мест. Да и goto иногда можно, если очень хочется

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Scrama 29-09-2008 в 10:29:

Цитата:
Дядя Миша писал:
Да и goto иногда можно, если очень хочется
В VB обработка исключений тесно сопряжена с goto, так что коктейль там заведомо ядерный получается )

__________________
"Злобным гениям не нужна харизма." © Shooter__Andy
"Making stuff for an "old ugly game" can be ten times more fun than grinding on a map for a dull, next-gen title." © Lunaran


Отправлено XaeroX 29-09-2008 в 11:04:

Цитата:
Scrama писал:
Преждевременная оптимизация? Нет, оптимизация ждет рефакторингов.

А я из принципа не занимаюсь рефакторингом.
На самом деле не завидую я той фирме, которая возьмет меня на работу...

__________________

xaerox on Vivino


Отправлено Government-Man 29-09-2008 в 12:01:

Как правило начинаю писать что-либо с наивной детской уверенностью, что на этот раз все буду делать "по правилам", но потом все неизменно скатывается в жесткую кашу, переполненную Blob, Interface bloat, при этом

Цитата:
Дядя Миша писал:
утешаю себя мыслью, что у valve тожесамое


А вот Blind faith страдаю в обратной форме, параноидально перепроверяя код... Иногда я даже не могу уснуть - мне кажется, что они могут придти и запустить на моем компе мою неправильно работающую программу.


Отправлено Дядя Миша 29-09-2008 в 14:15:

Government-Man ну я как-то попробывал упорядочить интерфейс по структурам с указателями на функции, вышло дико неудобно, пришлось вернуть все обратно

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено BUzer 11-10-2008 в 08:23:

Преждевременная оптимизация - ну это всегда пожалуйста. Предпочитаю оптимизировать, не дожидаясь, пока оно начнёт тормозить

Разрастание кода - да вобщем-то тоже. Ну и что с того, что одну функцию апдейта надо скроллить хер знает сколько, и что она содержит почти всю игровую логику?

Зато для меня на первом месте стоит "голый выхлоп" программы - неважно, какая у неё там внутри архитектура, но если она каждый спрайт рисует по дипу, то это плохая программа.

Добавлено 11-10-2008 в 12:18:

Правда тут ещё немаловажную роль играют способы постановки задач геймдизайнерами и менеджментом.
Геймдизайнеры вечно меняют игровую механику на любом этапе разработки игры так, что никакая архитектура не учтёт все возможные повороты.
А менеджмент планирует этапы разработки, озираясь только на качество арта, а не кода. То есть, в first playable у нас арт может быть хоть черно-белый, в альфе арт уже цветной, но не детализованный, в бете полностью готовый... А код? Код они не понимают, и поэтому просто хотят, чтобы в first playable работали первые 60 минут игры! А это 80% кода.
Ну и как после такого подхода коду не быть напичканным всевозможными костылями и хаками?

Добавлено 11-10-2008 в 12:23:

Притом начинаешь им что-то объяснять, а они тебе - "но ведь так все крутые фирмы работают!"


Отправлено XaeroX 11-10-2008 в 11:02:

Цитата:
BUzer писал:
Притом начинаешь им что-то объяснять, а они тебе - "но ведь так все крутые фирмы работают!"

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

__________________

xaerox on Vivino


Отправлено BUzer 11-10-2008 в 11:58:

XaeroX
Говорить ультиматумами тоже не есть хорошо. Вопрос ведь скорее не в возможности это сделать, а в соотношении качества и времени. Всё-равно все эти костыли потом вылезают наружу в виде кучи багов.

Вот для одной игры как-то устроили пару недель экстренной спешки (поснимали кучу народа с других проектов, лишь-бы быстрее этот сделать), в итоге получили потом пару месяцев отладки и переделки. В конце-концов, некоторые порталы так и не дождались, пока все баги будут выловлены, и начали продавать игру
Надеюсь такие эпизоды их хоть чему-нибудь будут учить.


Отправлено XaeroX 11-10-2008 в 13:49:

Цитата:
BUzer писал:
Говорить ультиматумами тоже не есть хорошо.

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

__________________

xaerox on Vivino


Отправлено Jaturkenjensirhiv 13-10-2008 в 19:05:

Мне, как быдлокодеру, положено.

Конечно, использую. Особо любимые мной антипаттерны - копипейст и спагетти. Ну и в качестве приправы - отсутствие комментирования и неинформативные (точнее, информативные только для меня и только во время разработки) названия переменных. Те, кто видели мой код, с этим ознакомлены, некоторые до сих пор под впечатлением. Говорят, были смертельные случаи...

Цитата:
Правда тут ещё немаловажную роль играют способы постановки задач геймдизайнерами и менеджментом.
Геймдизайнеры вечно меняют игровую механику на любом этапе разработки игры так, что никакая архитектура не учтёт все возможные повороты.

Эта проблема легко решается. В начале разработки диздок печатается на самой плотной и тяжелой бумаге. Неважно, сколько там текста, хоть 36 шрифтом и с двойным межстрочным интервалом, но должно получиться не меньше 700 листов. Все это обшивается твердой обложкой.
И вот этим талмудом, при попытке что-нибудь туда добавить или изменить, геймдизайнеру с размаху наносится удар по голове с криком "нна, сцука! Ничего не меняем!". Отлично помогает от попыток внесения кардинальных переделок в процессе работы.

__________________
- Между прочим, все охранники - мудаки!
- Ят, но ты же тоже охранник?
- Я тоже мудак.
Встреча модеров и админов в Москве. Избранное.


Временная зона GMT. Текущее время 02:08. Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024