Мені подобається думати, що все навколо нас може бути представлене так чи інакше через діаграму. Навіть якщо це лише лінійна діаграма, що представляє перехід між станами певного об'єкта протягом усього часу (як жива істота, що проходить через ряд станів від народження до смерті). Я використовую діаграми, щоб викласти свої думки та ідеї для реальної реалізації. Я досить багато імпровізую.
Тому мої діаграми більшість часу знаходяться на дуже високому рівні і відчувають себе картами розуму .
Щоб навести кілька прикладів, це насправді карта успадкування класів (та, яка була вирізана) в моїй грі, де Interactive Object є базовим типом.
Це діаграма FSM ( машина з кінцевим станом ) для пастки шипів (ті дивовижні пастки, на які ви наступаєте, і шипи, що виникають з-під землі, з’являються із землі).
Це діаграма підручника (названа таким чином, оскільки вона має на меті бути частою схемою повернення до неї ), яку я малював недавно. Він окреслює компоненти гри, а також допомагає зібрати необхідні активи, оскільки ви відразу бачите, що потрібно, а що ні. Я рекомендую їх для малих проектів, оскільки вони отримують досить великі для великих. Однак їх можна розширити ще більше, щоб виправити речі.
Коли я переходжу на нижчий рівень, це зазвичай тому, що мені потрібно спланувати найскладніші аспекти моєї архітектури, і я зазвичай маю справу з UML там. Я ніколи не концентруюся на виведенні абсолютно чистого і правильного UML, хоча. Я прийняв те, що мені найбільше сподобалось у конвенції про UML, і перетворив це на приємну UML-карту, що зробила розумну карту. Це просто і робить роботу для мене, але я б не ходив з нею в середовищі, де очікується фактичний UML з очевидних причин.
Інша ситуація, коли мені доводиться переходити на нижчий рівень, - це коли я повинен описувати фактичні алгоритми. Я використовую те, що я називаю діаграмами потоку . Це формат, натхненний діаграмами, які використовуються при тестуванні білого поля .
Зразок для шипової пастки, який я намалював зараз, виглядатиме так:
Зазвичай це заключний рівень між діаграмами та фактичними реалізаціями алгоритму. Якщо виникає потреба, я детально деталізую схеми потоків (із додатковими виконаними інструкціями) та виводжу чи оцінюю складність та будую точні тестові випадки. Я також віддаю перевагу діаграм над псевдокодом.
Не те, що стосується розробки ігор, у мене також є приємний формат для опису екранів у багатоекранному додатку, функціональність, яку користувач може запускати на кожному екрані, та взаємозв’язок між екранами. Я зазвичай будую їх перед початком реальної розробки, і вони діють як карта протягом усього процесу розробки. Якщо це для клієнта, діаграма екрану ще корисніша! Це допомагає мені пройти весь проект, від початку до початку, і врахувати всю функціональність, яка йому знадобиться. Тому безцінне надання точної оцінки витрат і часу.
Так що так, я безумовно схема всього і всього. Якщо у мене є ідея, я можу і обов'язково намалюю її схему. Якщо я якось запускаю проект без принаймні дуже широкої діаграми, щоб підкріпити мене, я відчуваю себе калікою.