Читая Кори Хейнс. Понимание четырех правил простого дизайна, я был поражен следующим наблюдением:

Большинство людей начинают работать над проблемой так, как им удобно. Ограничения существуют для того, чтобы лишить их возможности кодировать знакомым и удобным способом… Отделение идентичности от кода освобождает их для экспериментов с новыми идеями. Когда ценность не привязана к количеству (или качеству) кода, они могут с большей готовностью признать, что попытка не работает, и отказаться от нее. — Кори Хейнс. Четыре правила простого дизайна

Как я упоминал в предыдущем сообщении в блоге, я хотел поэкспериментировать с этим подходом, заключающимся в наличии ограничений при работе над одним и тем же ката, чтобы было удобно выбрасывать код и каждый раз начинать с нуля. Цель состоит в том, чтобы заставить себя меньше отождествлять себя с кодом и попробовать новые способы решения проблемы, которые находятся вне моей зоны комфорта.

Ката римских цифр

Я начал новое репо, где каждый день я пытался выделить всего 30 минут, чтобы начать с нуля на одном и том же ката. Я работаю над ката Римскими цифрами, которая преобразует арабские числа в их римские эквиваленты.

Хотя это новый ежедневный эксперимент, вот несколько вещей, которые я уже заметил:

  • Я обращаю внимание на детали: поскольку я уже знаю правила ката, я сосредотачиваюсь на более мелких деталях. Например, синтаксис оператора ruby ​​case и роль ключевого слова case.
  • Я больше сосредоточен на процессе, чем на завершении задачи: поскольку у меня есть только 30 минут, я еще не закончил ката. Я обнаружил, что это освобождает, потому что я уделяю время процессу, а не сосредотачиваюсь на завершении ката. Я думаю, что это приводит к более продуманному коду.
  • Мне приходится пробовать что-то новое: опять же, поскольку это каждый раз одна и та же ката, меня подталкивают к тому, чтобы расширяться и пробовать некоторые подходы, в которых я сразу чувствую себя менее уверенно. Например, я перешел от условных операторов if/else к операторам case и циклам.
  • Я сосредоточен: учитывая, что у меня есть всего 30 минут каждый день, я заметил, что очень сосредоточен на поставленной задаче. Иногда, по иронии судьбы, наличие меньшего количества времени означает, что вы можете уделить задаче все свое внимание.
  • Каждый раз, когда я узнаю что-то новое: это может показаться нелогичным, учитывая, что я делаю одно и то же ката каждый день, но каждый раз я наблюдаю и узнаю что-то новое о рубине. Позволить себе изучить только одну ката означает, что я могу углубиться в изучение.
  • Я менее эмоционально привязан к своему коду и тестам: поскольку я выделяю только 30 минут и знаю, что удалю код в конце, я начинаю и заканчиваю, чувствуя себя менее лично вовлеченным в код, который я пишу. . Я заметил, что это психологически раскрепощает меня, когда я пишу каждую строчку, потому что в моем уме ясно, что если мне это не нравится, я могу просто удалить это. Я не привязан к коду просто потому, что я его написал.

На более позднем этапе я продолжу еще одну запись в блоге о различных подходах, которые я применил к ката римских цифр, и о том, чему я научился в процессе.