Я сам частенько ловлю себя на их применении. Причем копипаст - это еще не самое страшное Встречается и хардкод, и магические числа (хотя обычно они у меня действительно независимые константы). Обожаю изобретать колесо и преждевременно оптимизировать
А как у вас с этим? Применяете? Боретесь? Насколько успешно?
XaeroX супир, читаю с удовольствием.
Но юзать антипаттерны мне постоянно мешает природная лень.
действую по принципу - лучше весь код один раз переписать, чтобы потом не иметь проблем.
так шо xash3D по всем канонам написан
Programming by permutation
Иногда страдаю, если наличествует булевый выбор.ну например отсечение плоскости по нечетному или четному planenum.
Я, допустим могу не помнить, как правильно. мне проще проверить оба варианта и сравнить FPS
Цитата:
Дядя Миша по всем канонам - это в смысле "на основе паттернов Кармака"?
Спагетти - редкость, хотя в здешних краях исходники попадаются.
Копи-паста - мой любимый.
Хард кодед - редкость, но бывает. Предпочитаю таскать инишник за ехе, хотя значения по-умолчанию всегда прошиты (в силу реализации самих функций работы с ини)
Магичсекие числа - почти никогда. Я наоборот страдаю введением огромного количества глобальных констант и макро.
Велосипед многократен.
Блобы? Нет, не ко мне.
Метод подбора... Пока не встречался.
Раздутый интерфейс. Дададададада.
Волшебная кнопка. Я от этого отказался, хотя раньше не испытывал проблем. Просто решил стать правильнее.
Преждевременная оптимизация? Нет, оптимизация ждет рефакторингов.
Пессимизация?
code: 'Пауза для внушительности
Sleep 1000
Слепая вера.... Такая слепая...
Исключения. Применил туту один раз в силу кривущей индусской реализации интерфейса. Долгая история.
Interface bloat
Этим да, страдаю в тяжелой форме, утешаю себя мыслью, что у valve тожесамое. Lava flow
Отважно матеря пространство всегда переписываю, пусть даже на это уйдет не одна неделя.
Зато потом чувствую тепло и лечу ) Exception handling
Чушь ИМХО. есть jmp_buf, его вполне хватает для сложных мест. Да и goto иногда можно, если очень хочется
Как правило начинаю писать что-либо с наивной детской уверенностью, что на этот раз все буду делать "по правилам", но потом все неизменно скатывается в жесткую кашу, переполненную Blob, Interface bloat, при этом
Цитата:
Дядя Миша писал: утешаю себя мыслью, что у valve тожесамое
А вот Blind faith страдаю в обратной форме, параноидально перепроверяя код... Иногда я даже не могу уснуть - мне кажется, что они могут придти и запустить на моем компе мою неправильно работающую программу.
Преждевременная оптимизация - ну это всегда пожалуйста. Предпочитаю оптимизировать, не дожидаясь, пока оно начнёт тормозить
Разрастание кода - да вобщем-то тоже. Ну и что с того, что одну функцию апдейта надо скроллить хер знает сколько, и что она содержит почти всю игровую логику?
Зато для меня на первом месте стоит "голый выхлоп" программы - неважно, какая у неё там внутри архитектура, но если она каждый спрайт рисует по дипу, то это плохая программа.
Добавлено 11-10-2008 в 12:18:
Правда тут ещё немаловажную роль играют способы постановки задач геймдизайнерами и менеджментом.
Геймдизайнеры вечно меняют игровую механику на любом этапе разработки игры так, что никакая архитектура не учтёт все возможные повороты.
А менеджмент планирует этапы разработки, озираясь только на качество арта, а не кода. То есть, в first playable у нас арт может быть хоть черно-белый, в альфе арт уже цветной, но не детализованный, в бете полностью готовый... А код? Код они не понимают, и поэтому просто хотят, чтобы в first playable работали первые 60 минут игры! А это 80% кода.
Ну и как после такого подхода коду не быть напичканным всевозможными костылями и хаками?
Добавлено 11-10-2008 в 12:23:
Притом начинаешь им что-то объяснять, а они тебе - "но ведь так все крутые фирмы работают!"
BUzer писал: Притом начинаешь им что-то объяснять, а они тебе - "но ведь так все крутые фирмы работают!"
Тупо говоришь им, что не сможешь это сделать, и все. Если у них за воротами нет очереди жаждущих получить работу программистов игр (а это скорее всего так и есть), то они умерят свой пыл
XaeroX
Говорить ультиматумами тоже не есть хорошо. Вопрос ведь скорее не в возможности это сделать, а в соотношении качества и времени. Всё-равно все эти костыли потом вылезают наружу в виде кучи багов.
Вот для одной игры как-то устроили пару недель экстренной спешки (поснимали кучу народа с других проектов, лишь-бы быстрее этот сделать), в итоге получили потом пару месяцев отладки и переделки. В конце-концов, некоторые порталы так и не дождались, пока все баги будут выловлены, и начали продавать игру
Надеюсь такие эпизоды их хоть чему-нибудь будут учить.
BUzer писал: Говорить ультиматумами тоже не есть хорошо.
С другой стороны, мутные формулировки тоже не есть хорошо. У них может сложиться впечатление, что программист сам не знает, что может, а что не может сделать. Или еще хуже - что он может все, но лентяйничает
Конечно, использую. Особо любимые мной антипаттерны - копипейст и спагетти. Ну и в качестве приправы - отсутствие комментирования и неинформативные (точнее, информативные только для меня и только во время разработки) названия переменных. Те, кто видели мой код, с этим ознакомлены, некоторые до сих пор под впечатлением. Говорят, были смертельные случаи...
Цитата:
Правда тут ещё немаловажную роль играют способы постановки задач геймдизайнерами и менеджментом.
Геймдизайнеры вечно меняют игровую механику на любом этапе разработки игры так, что никакая архитектура не учтёт все возможные повороты.
Эта проблема легко решается. В начале разработки диздок печатается на самой плотной и тяжелой бумаге. Неважно, сколько там текста, хоть 36 шрифтом и с двойным межстрочным интервалом, но должно получиться не меньше 700 листов. Все это обшивается твердой обложкой.
И вот этим талмудом, при попытке что-нибудь туда добавить или изменить, геймдизайнеру с размаху наносится удар по голове с криком "нна, сцука! Ничего не меняем!". Отлично помогает от попыток внесения кардинальных переделок в процессе работы.
__________________
- Между прочим, все охранники - мудаки!
- Ят, но ты же тоже охранник?
- Я тоже мудак. Встреча модеров и админов в Москве. Избранное.