![]() |
Показать все 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
Блог разработчика в телеграме
Дядя Миша по всем канонам - это в смысле "на основе паттернов Кармака"?
__________________
Programming by permutation
Иногда страдаю, если наличествует булевый выбор.ну например отсечение плоскости по нечетному или четному planenum.
Я, допустим могу не помнить, как правильно. мне проще проверить оба варианта и сравнить FPS
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Спагетти - редкость, хотя в здешних краях исходники попадаются.
Копи-паста - мой любимый.
Хард кодед - редкость, но бывает. Предпочитаю таскать инишник за ехе, хотя значения по-умолчанию всегда прошиты (в силу реализации самих функций работы с ини)
Магичсекие числа - почти никогда. Я наоборот страдаю введением огромного количества глобальных констант и макро.
Велосипед многократен.
Блобы? Нет, не ко мне.
Метод подбора... Пока не встречался.
Раздутый интерфейс. Дададададада.
Волшебная кнопка. Я от этого отказался, хотя раньше не испытывал проблем. Просто решил стать правильнее.
Преждевременная оптимизация? Нет, оптимизация ждет рефакторингов.
Пессимизация?
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
Блог разработчика в телеграме
__________________
"Злобным гениям не нужна харизма." © 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
Блог разработчика в телеграме
Преждевременная оптимизация - ну это всегда пожалуйста. Предпочитаю оптимизировать, не дожидаясь, пока оно начнёт тормозить
Разрастание кода - да вобщем-то тоже. Ну и что с того, что одну функцию апдейта надо скроллить хер знает сколько, и что она содержит почти всю игровую логику?
Зато для меня на первом месте стоит "голый выхлоп" программы - неважно, какая у неё там внутри архитектура, но если она каждый спрайт рисует по дипу, то это плохая программа.
Добавлено 11-10-2008 в 12:18:
Правда тут ещё немаловажную роль играют способы постановки задач геймдизайнерами и менеджментом.
Геймдизайнеры вечно меняют игровую механику на любом этапе разработки игры так, что никакая архитектура не учтёт все возможные повороты.
А менеджмент планирует этапы разработки, озираясь только на качество арта, а не кода. То есть, в first playable у нас арт может быть хоть черно-белый, в альфе арт уже цветной, но не детализованный, в бете полностью готовый... А код? Код они не понимают, и поэтому просто хотят, чтобы в first playable работали первые 60 минут игры! А это 80% кода.
Ну и как после такого подхода коду не быть напичканным всевозможными костылями и хаками?
Добавлено 11-10-2008 в 12:23:
Притом начинаешь им что-то объяснять, а они тебе - "но ведь так все крутые фирмы работают!"
__________________
XaeroX
Говорить ультиматумами тоже не есть хорошо. Вопрос ведь скорее не в возможности это сделать, а в соотношении качества и времени. Всё-равно все эти костыли потом вылезают наружу в виде кучи багов.
Вот для одной игры как-то устроили пару недель экстренной спешки (поснимали кучу народа с других проектов, лишь-бы быстрее этот сделать), в итоге получили потом пару месяцев отладки и переделки. В конце-концов, некоторые порталы так и не дождались, пока все баги будут выловлены, и начали продавать игру
Надеюсь такие эпизоды их хоть чему-нибудь будут учить.
__________________
Мне, как быдлокодеру, положено.
Конечно, использую. Особо любимые мной антипаттерны - копипейст и спагетти. Ну и в качестве приправы - отсутствие комментирования и неинформативные (точнее, информативные только для меня и только во время разработки) названия переменных. Те, кто видели мой код, с этим ознакомлены, некоторые до сих пор под впечатлением. Говорят, были смертельные случаи...
__________________
- Между прочим, все охранники - мудаки!
- Ят, но ты же тоже охранник?
- Я тоже мудак.
Встреча модеров и админов в Москве. Избранное.
__________________
С работы, имхо, увольнять надо гемдизайнеров, которые посередине разработки решают кардинально переделать проект (о, блин, давайте вместро скроллера-двухмерки сделаем трехмерный шутер с элементами РПГ! С блекджеком и шлюхами!). Особенно не посоветовавшись с кодерами (художниками, моделлерами, звуковиками, everybody else), возможно ли это без кардинальной переделки всего, что уже наработано. Причем по профнепригодности - потому что это не геймдизайнеры тогда получаются, а какие-то менеджеры-маркетологи.
Вообще, имхо, любая разработка должна вестись, грубо говоря, в единой команде, а не отделами-филиалами, связь между которыми - только через генерального деректора. И главное - народ должен вникать в проблемы других, знать, что к чему и что от них требуется на самом деле, а не выполнять поставленую задачу, аки роботы. А то будут вечно получаться подводные лодки с вертикальным взлетом, которые еще и после сборки надо тщательно доработать напильником. Но это, видимо, возможно только в Идеальном Мире...
Впрочем, когда я в свое время успел поработать в геймдеве, в одной фирме, все так и было. Но там у нас был очень хороший руководитель. Жаль, что все обломилось по причинам, независящим от.
__________________
- Между прочим, все охранники - мудаки!
- Ят, но ты же тоже охранник?
- Я тоже мудак.
Встреча модеров и админов в Москве. Избранное.
почему нет варианта "Что такое 1 паттерн"
__________________
Half-Life:Star-X тут:
Of site
moddb.com
vkontakte.ru - клуб
Nev
Потому что в этом варианте тебе надо сначала узнать, что это такое, попользоваться, а затем проголосовать!
Nev это называется, ничего не понимаю, но мнение имею, да.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Временная зона GMT. Текущее время 08:48. | Показать все 20 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024