![]() |
Страницы (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)
Антипаттерны проектирования
Вот здесь есть отличный список антипаттернов.
http://insidecpp.ru/antipatterns/
Я сам частенько ловлю себя на их применении. Причем копипаст - это еще не самое страшное Встречается и хардкод, и магические числа (хотя обычно они у меня действительно независимые константы). Обожаю изобретать колесо и преждевременно оптимизировать
А как у вас с этим? Применяете? Боретесь? Насколько успешно?
__________________
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'
Дядя Миша по всем канонам - это в смысле "на основе паттернов Кармака"?
__________________
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'
Спагетти - редкость, хотя в здешних краях исходники попадаются.
Копи-паста - мой любимый.
Хард кодед - редкость, но бывает. Предпочитаю таскать инишник за ехе, хотя значения по-умолчанию всегда прошиты (в силу реализации самих функций работы с ини)
Магичсекие числа - почти никогда. Я наоборот страдаю введением огромного количества глобальных констант и макро.
Велосипед многократен.
Блобы? Нет, не ко мне.
Метод подбора... Пока не встречался.
Раздутый интерфейс. Дададададада.
Волшебная кнопка. Я от этого отказался, хотя раньше не испытывал проблем. Просто решил стать правильнее.
Преждевременная оптимизация? Нет, оптимизация ждет рефакторингов.
Пессимизация?
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
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'
__________________
"Злобным гениям не нужна харизма." © 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
__________________
Как правило начинаю писать что-либо с наивной детской уверенностью, что на этот раз все буду делать "по правилам", но потом все неизменно скатывается в жесткую кашу, переполненную Blob, Interface bloat, при этом
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'
Преждевременная оптимизация - ну это всегда пожалуйста. Предпочитаю оптимизировать, не дожидаясь, пока оно начнёт тормозить
Разрастание кода - да вобщем-то тоже. Ну и что с того, что одну функцию апдейта надо скроллить хер знает сколько, и что она содержит почти всю игровую логику?
Зато для меня на первом месте стоит "голый выхлоп" программы - неважно, какая у неё там внутри архитектура, но если она каждый спрайт рисует по дипу, то это плохая программа.
Добавлено 11-10-2008 в 12:18:
Правда тут ещё немаловажную роль играют способы постановки задач геймдизайнерами и менеджментом.
Геймдизайнеры вечно меняют игровую механику на любом этапе разработки игры так, что никакая архитектура не учтёт все возможные повороты.
А менеджмент планирует этапы разработки, озираясь только на качество арта, а не кода. То есть, в first playable у нас арт может быть хоть черно-белый, в альфе арт уже цветной, но не детализованный, в бете полностью готовый... А код? Код они не понимают, и поэтому просто хотят, чтобы в first playable работали первые 60 минут игры! А это 80% кода.
Ну и как после такого подхода коду не быть напичканным всевозможными костылями и хаками?
Добавлено 11-10-2008 в 12:23:
Притом начинаешь им что-то объяснять, а они тебе - "но ведь так все крутые фирмы работают!"
__________________
XaeroX
Говорить ультиматумами тоже не есть хорошо. Вопрос ведь скорее не в возможности это сделать, а в соотношении качества и времени. Всё-равно все эти костыли потом вылезают наружу в виде кучи багов.
Вот для одной игры как-то устроили пару недель экстренной спешки (поснимали кучу народа с других проектов, лишь-бы быстрее этот сделать), в итоге получили потом пару месяцев отладки и переделки. В конце-концов, некоторые порталы так и не дождались, пока все баги будут выловлены, и начали продавать игру
Надеюсь такие эпизоды их хоть чему-нибудь будут учить.
__________________
Мне, как быдлокодеру, положено.
Конечно, использую. Особо любимые мной антипаттерны - копипейст и спагетти. Ну и в качестве приправы - отсутствие комментирования и неинформативные (точнее, информативные только для меня и только во время разработки) названия переменных. Те, кто видели мой код, с этим ознакомлены, некоторые до сих пор под впечатлением. Говорят, были смертельные случаи...
__________________
- Между прочим, все охранники - мудаки!
- Ят, но ты же тоже охранник?
- Я тоже мудак.
Встреча модеров и админов в Москве. Избранное.
Временная зона GMT. Текущее время 02:08. | Страницы (2): [1] 2 » Показать все 20 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024