На второй неделе мы снова сосредоточились на основах TDD и объектно-ориентированного проектирования. Это дало нам возможность продолжать укреплять и совершенствовать наши знания в этих областях. С первым испытанием на выходных за плечами я чувствовал себя достаточно уверенно в понедельник утром. Первые несколько дней второй недели оказались относительно легкими по сравнению с лихорадочной кривой обучения того, что было раньше. Однако нас предупредили об изменении темпа по мере приближения к третьей неделе, что оказалось вполне оправданным.

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

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

Тренировки мозга

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

Официальные часы занятий с 9:30 до 18:00, но обычно я продолжаю работать до позднего вечера. Это определенно интенсивно. Однако у меня есть только двенадцать недель, чтобы освоить все, что может предложить Makers Academy, и я полон решимости проглотить все до последней капли. В этом духе я начал читать более широко за пределами курса, включая погружение в почтенный POODR.

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

Стать более внимательным кодером

Самый важный урок, который я усвоил на этой неделе, заключался в важности принятия хорошо обоснованных предварительных дизайнерских решений. Теперь я понимаю ценность наличия четкого намерения относительно того, что вы хотите, чтобы ваша программа делала, и как вы хотите, чтобы она это делала, прежде чем писать строку кода. Исправление плохо продуманной, хрупкой кодовой базы мучительно. Я думаю, пора пересмотреть принципы SOLID.

Хотя это не всегда было гладко — на самом деле, большую часть времени это было больше похоже на попытку плыть на заболоченном каноэ вверх по неспокойному течению, с разъяренными медведями на берегу — вспоминая чуть более двух недель назад, я могу Не поверите, как далеко я чувствую, как будто я уже пришел. Есть вещи, над которыми я все еще работаю — я смотрю на то, как вы забиваете методы — я знаю, что это просто вопрос настойчивости и часов работы.