Пушыстый (_winnie) wrote,
Пушыстый
_winnie

Categories:

Armed Pig Pattern

При программировании, при тупом кодировании, при выборе имён переменных, при выборе места вставки очереднй заплатки вроде if (объект != NULL) - важно разобраться в себе, чего же ты на самом деле хочешь, понять законы вселенной в которой живёт предметная область, и сделать исправления именно в пространстве этой вселенной.

Может, не очень удачный пример, но предположим делаем мы симулятор бара. И предположим, геймдизайнер вставил нового персонажа, Дженифер, для которого игровая логика чуть отличается от остальных.

Важно понимать, где нам писать if (посетитель == Дженифер) и if (IsWoman(посетитель)) (а может на самом деле, мы хотели написать, if ( ПосетительОдетВЖенскуюОдежду(посетитель)) ?, не смотря на то что пока этот персонаж только один - это эквиваленты.

Программисты же новички часто пишут не то что хотят, а то что в данный момент является эквивалентом того что они хотят. А потом эта эквивалентность ломается. И они потом по всему коду всё равно заменяют на if (посетитель == Дженифер || посетитель == Барбара). Или наоборот, if (IsWoman(посетитель) && посетитель != Барбара). Хотя надо было в начале написать IsWoman(посетитель) и посетитель == Дженифер, и тогда при добавлении Барбары не пришлось бы менять код.

Кстати, часто это касается не программистов, а заказчиков/дизайнеров. Тогда надо разбираться не в себе, а в них и в их вселенных :)

updated:
Со свиньями был связан, кстати, ещё один баг, из-за которого игра падала
кенгуру, перегруппировавшись, появились из-за холма и выпустили тучу стингеров по злополучным вертолетам
Tags: gamedev, soft-dev
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 35 comments