Найти тему
Mad Devs

Разработчикам нужно иметь опыт системного администрирования.

Это наш очередной перевод. Оригинал статьи тут.

Быть разработчиком и быть системным администратором — это разные вещи. Да, многие люди совмещают две профессии, но навыки в этих профессиях часто не совпадают. Разработчики пишут код. Системные администраторы эксплуатируют этот код на боевых системах.

-2

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

Компаниям нравится держать разработчиков и сисадминов в разных командах. Ведь в теории это два набора навыков для двух разных профессий. Так почему бы не сделать две разные команды?

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

-3

Но когда кто-то попытается его построить, то он получится под наклоном.

-4

Упс.

Если разработчик никогда не сталкивался с эксплуатацией, то он будет писать код, который работает в теории. Обычно разработчик, как правило, пишет код на своем компьютере и для своего компьютера. Когда как большинство софта в интернете работает на нескольких серверах. У больших компаний, как например, у Фейсбука или Гугла тысячи серверов. Как и наш дом, построенный в теории, который стоял на идеально плоской земле, код, который работает в теории, может полностью развалиться, когда он начинает работать на боевом окружении. Он начинает бажить или падать.

Вспомните сайт, где вы загружаете картинки. К примеру, Фейсбук или Твиттер. На этих ресурсах слишком много пользователей и эти проекты не могут быть запущены на одном сервере. Поэтому у них есть несколько веб серверов, которые настроены на то, чтобы отдавать контент.

-5

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

Если у нас есть три веб сервера и картинка, которая хранится на диске на одном сервере, тогда 2е из 3х людей не увидят её. И если у вас есть 300 друзей, то тогда только 100 человек смогут увидеть картинку, которую вы загрузили. Ужасный сервис!

-6

Правильный путь — это использовать распределенную файловую систему, которая доступна на всех веб серверах.

-7

Разработчик с маленьким опытом не поймет этого.

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

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

Это понимание поможет ловить ошибки гораздо раньше. Разработчик без опыта эксплуатации будет проходить через процесс, где:
1. Он пишет код
2. Он пропускает его через ревью и/или тестирование
3. И это обычно долгий процесс

Ситуация может усугубиться, потому что сисадмины не смотрят код разработчика. Это может означать, что пользователи видят баги первыми! С такими проблемами сложно разбираться, потому что окружение разное и разработчик не всегда сможет воспроизвести проблему у себя на компьютере.

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

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

Ранее статья была опубликована тут.