Читая Кори Хейнс. Понимание четырех правил простого дизайна, я был поражен следующим наблюдением:
Большинство людей начинают работать над проблемой так, как им удобно. Ограничения существуют для того, чтобы лишить их возможности кодировать знакомым и удобным способом… Отделение идентичности от кода освобождает их для экспериментов с новыми идеями. Когда ценность не привязана к количеству (или качеству) кода, они могут с большей готовностью признать, что попытка не работает, и отказаться от нее. — Кори Хейнс. Четыре правила простого дизайна
Как я упоминал в предыдущем сообщении в блоге, я хотел поэкспериментировать с этим подходом, заключающимся в наличии ограничений при работе над одним и тем же ката, чтобы было удобно выбрасывать код и каждый раз начинать с нуля. Цель состоит в том, чтобы заставить себя меньше отождествлять себя с кодом и попробовать новые способы решения проблемы, которые находятся вне моей зоны комфорта.
Ката римских цифр
Я начал новое репо, где каждый день я пытался выделить всего 30 минут, чтобы начать с нуля на одном и том же ката. Я работаю над ката Римскими цифрами, которая преобразует арабские числа в их римские эквиваленты.
Хотя это новый ежедневный эксперимент, вот несколько вещей, которые я уже заметил:
- Я обращаю внимание на детали: поскольку я уже знаю правила ката, я сосредотачиваюсь на более мелких деталях. Например, синтаксис оператора ruby case и роль ключевого слова case.
- Я больше сосредоточен на процессе, чем на завершении задачи: поскольку у меня есть только 30 минут, я еще не закончил ката. Я обнаружил, что это освобождает, потому что я уделяю время процессу, а не сосредотачиваюсь на завершении ката. Я думаю, что это приводит к более продуманному коду.
- Мне приходится пробовать что-то новое: опять же, поскольку это каждый раз одна и та же ката, меня подталкивают к тому, чтобы расширяться и пробовать некоторые подходы, в которых я сразу чувствую себя менее уверенно. Например, я перешел от условных операторов if/else к операторам case и циклам.
- Я сосредоточен: учитывая, что у меня есть всего 30 минут каждый день, я заметил, что очень сосредоточен на поставленной задаче. Иногда, по иронии судьбы, наличие меньшего количества времени означает, что вы можете уделить задаче все свое внимание.
- Каждый раз, когда я узнаю что-то новое: это может показаться нелогичным, учитывая, что я делаю одно и то же ката каждый день, но каждый раз я наблюдаю и узнаю что-то новое о рубине. Позволить себе изучить только одну ката означает, что я могу углубиться в изучение.
- Я менее эмоционально привязан к своему коду и тестам: поскольку я выделяю только 30 минут и знаю, что удалю код в конце, я начинаю и заканчиваю, чувствуя себя менее лично вовлеченным в код, который я пишу. . Я заметил, что это психологически раскрепощает меня, когда я пишу каждую строчку, потому что в моем уме ясно, что если мне это не нравится, я могу просто удалить это. Я не привязан к коду просто потому, что я его написал.
На более позднем этапе я продолжу еще одну запись в блоге о различных подходах, которые я применил к ката римских цифр, и о том, чему я научился в процессе.