2013-12-09
Это пост одного чикагского разработчика, который в 2010 году начал работать в команде YouTube. До этого он был единственным UI-инженером в небольшом стартапе.
Конечно, он с двойственными чувствами шёл работать в знаменитую корпорацию: ведь в монстре индустрии совершенно точно всё будет совсем не так, как в небольшой дружеской фирме. Он даже не предполагал, насколько всё будет не так.
Предисловие
Когда я начал работать в стартапе, я был недавним выпускником, горячим и неопытным идеалистом. Там я строил совершенную веб-консоль, которая должна была стать настоящим шедевром. А поскольку я был единственным инженером, код был именно таким, каким я хотел. Каждый его кусочек был создан с любовью и нежностью.
Самый сок был в том, что никто этот код не использовал. Кроме парочки бета-пользователей.
Вскоре после того, как я покинул эту компанию, она была продана, и моё дражайшее HTML-CSS–произведение было выброшено в урну.
Я решил, что хочу работать над популярным продуктом, ориентированным прежде всего на пользователя. Я хотел перейти на новый уровень: научиться лучше организовывать свой код, писать осмысленные тесты.
Как всё началось в YouTube
Итак, представьте: апрель 2010 г. Я уже три месяца работаю в YouTube. Обедаю с техническим директором одного сейчас-очень-известном-стартапа. Технический директор был чрезвычайно мил и срывающимся голосом, взахлёб рассказывал о том, как у него там всё здорово работает. Наконец он задал вопрос, которого я со страхом ждал: «Ну, а ты-то чем занимаешься?»
И я, превозмогая боль, начал рассказывать о том коде, которым я три месяца занимался в YouTube. Я работал над низкотраффиковой страницей, содержащей <script>-блоки, которые открывали всплывающие окна с другими скрипт-блоками, которые вызывали родительские окна для заполнения форм. Вся эта прелесть писалась на JavaScript и форматировалась внутри длиннющих модулей. А ещё всё это дело связывалось триггерами с другим JavaScript-кодом, вызываемом по клику. Короче говоря, код был недоступен пониманию простым смертным. Это был ад для перфекциониста.
Я проехал полстраны, переехав из Чикаго в Сан-Франциско, чтобы познать Истину в веб-разработке, а в итоге работал над самым кривым кодом в моей жизни.
После этой встречи ещё около месяца я паниковал и бесился. Пока в мессендежере мне не прилетела крепкая дружеская пощёчина и просьба перестать быть таким инфантильным. Примерно тогда я поменял ход своих мыслей, и выглянул наконец за пределы кода.
Что я понял
YouTube взлетел стремительно. Он завёлся с полутолчка, ещё в самом начале был продан за 1,6 миллиардов долларов, и умудрился справиться со всё возрастающим спросом. Аудитория ресурса и по сей день продолжает расти с космической скоростью.
Инженеры YouTube делали всё возможное, чтобы успевать за спросом: а ведь команда была небольшая. У них просто не было времени на разработку генерального плана и совершенной архитектуры.
Им нужно было релизить и релизить.
Именно поэтому некоторые куски кода — особенно для низкотраффиковых страниц — выглядили как кусок чего-то неаппетитного. И знаете, что?
ЭТО НЕ ИМЕЕТ НИКАКОГО ЗНАЧЕНИЯ.
Значение для YouTube имеет только то, что видит пользователь, и с чем пользователю приходится взаимодействовать.
Выводы
Со временем в YouTube менялась инженерная культура. Стала более зрелой. В конце концов, в компании стало работать несколько сотен инженеров: это уже не был скромный стартап.
За те два года, что я работал в YouTube, мы переработали почти весь ранний фронтенд-код. Мы избавились от тонн ненужного JavaScript-кода, сделали проще разметку. Мы многое сделали лучше.
Но вряд ли кто-то из пользователей это заметил.
Успех вашей компании или продукту приносит отнюдь не красивый код. Да, я сейчас капитан Очевидность, но эти вещи до сих пор очевидны далеко не для всех.
Самая главная Истина, которая открылась мне в YouTube, звучит так:
Порой наскоро написанный код, который просто работает, жизненно важен для того, чтобы продукт продолжал жить.
Если небольшой костыль поможет вам побыстрее релизнуть фичу — так используйте его и не рвите на себе волосы. Когда-нибудь мы его уберём.
Перевод: Люся Ширшова. По материалам поста Taylor Hughes на Medium.com.