Мои размышления о спаривании в реальном мире

К концу обучения в 8th Light у учеников есть возможность работать вместе с мастером по работе с клиентами. После месяцев создания специальных приложений для ученичества с нуля, в одиночку или с другим учеником, я буду работать вместе с Николь в течение 3 недель по заявке на ruby ​​padrino для страховой компании. Это краткое размышление о моих первых трех днях.

Первое, что мне нужно было понять, это понимание (или, по крайней мере, привыкание) всего предметного языка / знаний. Я не очень разбираюсь в страховании, но работа над приложением для страховой компании, очевидно, означала, что придется использовать много делового жаргона. Хотя программирование само по себе не требует глубокого понимания всего жаргона, нужно было время, чтобы привыкнуть (и Николь любезно освежила меня в отношении любых терминов и процессов, с которыми я не был знаком).

Я учился работать с большой кодовой базой с большим количеством движущихся частей. Помимо понимания абстракций в незнакомой области, сначала было пугающим ориентироваться в такой большой кодовой базе. Было полезно объединиться с кем-то, кто хорошо разбирается в кодовой базе, и я также узнал несколько отличных советов и быстрых клавиш от Николь о том, как искать и быстро находить то, что мне нужно в кодовой базе. Было особенно полезно выставить Николь доску системы, чтобы я имел визуальное представление о различных движущихся частях, прежде чем приступить к конкретным историям.

Работа над кодовой базой в дикой природе также означает изучение множества интересных инструментов, которые помогают поддерживать ее в обслуживании. Есть ряд различных инструментов, с которыми у меня раньше не было опыта, и теперь я вижу их ценность, когда код находится в стадии разработки. Sorbet используется для проверки статического типа в ruby, линтер помогает поддерживать чистоту и согласованность форматирования кода, а создание пользовательских задач rake упрощает процессы. До сих пор все проекты на основе Ruby, над которыми я работал, были относительно простыми, и они были либо сольными проектами, либо с одним или двумя другими сотрудниками. Было здорово узнать об инструментах, которые помогают поддерживать чистоту и удобство обслуживания большой базы кода со многими соавторами.

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

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