Обдумываю монолит: первые месяцы в Doctolib

После двух месяцев работы в Doctolib я написал небольшую статью, в которой поделился своим новым взглядом на компанию. Был конец декабря, поэтому в офисе было довольно спокойно, и я хотел поделиться некоторыми отзывами с командой. Со мной связалась команда, которая ведет блог, и они посоветовали мне поделиться своим мнением со всем миром, так что вот оно. Вот мои мысли о том, каково это, когда новый разработчик присоединяется к Doctolib в 2020 году.

Организация

#PeopleOverProcesses

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

Однако в качестве следствия я могу сказать, что этот баланс хрупок. Легко окунуться в бюрократию или хаос.

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

#Onboarding

Я подумал, что DA (примечание редактора, DA - это то, что мы называем нашей Академией Doctolib, чем занимается вся наша команда в первые несколько недель), и технический специалист DA стали отличным опытом адаптации. Опять же, управление знаниями имеет решающее значение в любой компании, и я почувствовал себя правильным начать свою работу с интенсивного ускоренного курса по всему в Doctolib.

Если у меня есть небольшая придирка, я бы хотел, чтобы технические модули DA были упакованы сразу после общего DA, а не растягивались на несколько недель, потому что:

  1. Это мешало многому, когда я брался за свои первые задачи в моей команде,
  2. Приходя позже, он неизбежно затрагивал некоторые темы, о которых я узнал во время работы.

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

Starsky & Hutch - тоже фантастическая вещь, и немного похожая на технологию DA, мне только хотелось, чтобы она появилась еще раньше. Для тех из вас, кто может этого не знать, Starsky & Hutch - это система технического наставничества в Doctolib, где вы проходите через Rails и React 101, а наставник загружает их для изучения стека. Мне на самом деле понравилось!

В качестве очень незначительного последнего замечания я заметил, что новым участникам (в том числе и мне) приходилось делать довольно много запросов, хотя они одинаковы для всех. Я уверен, что для простых вещей, таких как доступ к репозиторию GitHub и определенным спискам рассылки, есть исправление.

Код

Я никогда не работал с такой большой кодовой базой, поэтому меня многое удивило.

# Рельсы

Все говорили мне, но я должен был испытать это, чтобы поверить в это: изучение Rails трудное, даже разочаровывающее, около месяца, а затем оно начинает очень и очень быстро окупаться. Я не знаю, почему я не мог поверить в то, что «вы увидите, дайте ему месяц, и станет намного лучше» - вероятно, это мой синдром самозванца на работе, но оказалось, что я был совершенно неправ.

Я думаю, что есть две основные причины такой крутой кривой обучения. Один из них, очевидно, - «Соглашение важнее конфигурации». Другой - конкретное проявление этого: в Rails просто тонна неявного кода. Когда вы впервые сталкиваетесь, скажем, с помощником типа ‹controller_action› _path или ‹attribute› _was, вы просто не можете найти для него явного определения, и Google, скорее всего, окажется бесполезным. Тем не менее, оглядываясь назад, можно сказать, что эти методы и до боли очевидны, и дьявольски полезны. В первый раз это может привести к сложным сеансам исследования кода и даже вызвать некоторые негативные чувства («Неужели я должен был просто угадать это?»).

Но именно здесь помогает настойчивость и, прежде всего, наставничество со стороны товарищей по команде. Опять же, на другой стороне туннеля выигрыш огромен.

#TDD

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

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

Даже в том случае, если на раннем этапе возня с кодом, когда я практиковал дикую форму разработки на основе консоли или разработки на основе Chrome-dev-tools, теперь я могу сказать, что в 90% случаев я обнаружил, что использую тесты.

Два предостережения:

  • Единственная часть TDD, требующая усилий с моей стороны, - это написание тестов перед переходом к реализации. Хотя я становлюсь лучше в этом.
  • Что касается внешнего интерфейса, я бы хотел, чтобы Capybara была настроена для вращения Chromes с помощью инструментов разработки React. Это было бы очень полезно, когда мне нужно было бы разделить компоненты на странице и выяснить, что для чего делает. (Примечание редактора, теперь мы обновили наши инструменты разработки React, чтобы включить это)

#Монолит

Монолит впечатляюще прочен. Вы действительно можете пойти дальше и внести изменения, не зная на 100%, как все работает, и с небольшим риском все сломать ...

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

В заключение

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

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

Подпишитесь на нашу рассылку, чтобы получать больше новостей о нашей команде и всех наших любимых статьях о Ruby on Rails и JavaScript.