Книга: Идеальный программист. Как стать профессионалом разработки ПО
Ката
Ката
В боевых искусствах термином ката называется строго определенный набор отрепетированных движений, имитирующих действия одной стороны в поединке. Их целью (в реальности недостижимой) является достижение совершенства. Мастер стремится к тому, чтобы научить свое тело идеально выполнять каждое движение и объединить отдельные приемы в плавную серию. Хорошо исполняемые ката очень красивы.
Но несмотря на красоту, ката изучаются не для сценического исполнения. Мастера изучают их для того, чтобы обучить ум и тело реагировать на конкретные боевые ситуации. Отработанные движения должны выполняться инстинктивно, чтобы они срабатывали именно в тот момент, когда они нужны.
Программные ката представляют собой строго определенный набор отрепетированных нажатий клавиш и перемещений мыши, имитирующих решение некоторой программной задачи. Вы не решаете задачу, потому что уже знаете решение. Вместо этого вы тренируетесь в выполнении действий и принятии решений, необходимых для решения задачи.
И снова целью является асимптотическое приближение к совершенству. Упражнение повторяется снова и снова, чтобы научить ваш мозг реагировать, а пальцы двигаться. В ходе тренировки могут обнаружиться определенные улучшения и повышение эффективности ваших действий или самого решения.
Отработка нескольких ката помогает запомнить «горячие клавиши» и идиомы навигации. Она также хорошо работает при изучении таких дисциплин, как разработка через тестирование (TDD) и непрерывная интеграция (CI, Continuous Integration). Но самое важное – ката помогают закрепить в подсознании пары «задача/решение»; столкнувшись с этими задачами в реальном программировании, вы попросту будете знать, как они решаются.
Программист, как и мастер боевых искусств, должен знать разные ката и регулярно тренировать их, чтобы они не стерлись из памяти. Описания многих ката находятся по адресам http://katas.softwarecraftsmanship.org и http://codekata.pragprog.com. Некоторые из моих любимых ката:
• Игра в кегли: http://butunclebob.com/ArticleS.UncleBob.TheBowling-GameKata
• Простые числа: http://butunclebob.com/ArticleS.UncleBob.ThePrime-Factors-Kata
• Перенос текста: http://thecleancoder.blogspot.com/2010/10/craftsman-62-dark-path.html
Если вам захочется непростых испытаний, попробуйте выучить ката настолько хорошо, чтобы выполнять их под музыку. Сделать это очень трудно.[32]
- Заполнение справочников и каталогов
- Каталог BIN в SuperServer
- Каталог BIN в InterBase Classic Server для Linux
- Улучшенная стратегия вычисления предиката IN и условий, объединенных по OR
- Просмотр каталогов
- Описание каталогов
- На компьютере катастрофически не хватает памяти. Как ее освободить?
- Можно ли указать использование по умолчанию вместо C:Program Files другого каталога для установки программ?
- Как открыть каталог с помощью командной строки?
- У файла и каталога есть атрибуты (например: Скрытый, Только чтение). Как ими управлять из командной строки?
- 10.1.34. Поиск файлов и каталогов
- Управление сертификатами с помощью ММС