Не так важен код, как его рисуют

3

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.