Истории

Три профессиональных совета от разработчика Twitter

Истории
Елена Лиханова
Елена Лиханова

Редактор

Елена Лиханова

Почти год назад разработчик Йен Хуан ушел из Amazon в Twitter. Вот чему его успела научить соцсеть за это время.

Три профессиональных совета от разработчика Twitter

1. Поддерживать сервисы в рабочем состоянии

Разработка — это не только создание новых функций, но и поддержка существующих. Сервисы никогда не должны отставать в производительности. Это нужно, чтобы сохранить доверие клиентов. Если существующие сервисы не могут обеспечивать тот же SLA (соглашение об уровне обслуживания), то зачем клиентам их использовать?

Существует множество способов поддерживать сервисы в рабочем состоянии.

  • Oncall
Эта система подразумевает, что кто-то из разработчиков постоянно находится на связи и готов принять заявку от клиента. Это основной способ поддерживать работу сервисов. Если произойдет сбой, дежурный сможет оперативно с ним справиться. Чем дольше инцидент остается нерешенным, тем серьезнее будут последствия. Например, не получится привлечь новых пользователей, что приведет к потере денег. Очень важно никогда не подвергать продукт такой опасности.
  • Мониторинг
Внутренние клиенты могут отправлять заявки через коммуникационную платформу, например, Slack. Большую часть времени заявки дежурному поступают от системы мониторинга. Она позволяет разработчикам отслеживать производительность сервисов с помощью таких показателей, как коэффициент успешности, задержка чтения/записи, трафик, объем памяти и так далее. В результате дежурный может получать полную информацию о том, что происходит в сервисах, и быстрее решать проблемы.
В системах мониторинга можно установить порог для ключевых показателей, и, когда они будут превышены, дежурный получит уведомление. Но это — палка о двух концах. Если небрежно определить порог (то есть установить слишком низкие или слишком высокие показатели), заявок будет слишком много. Поэтому нужно выбрать такой порог, который будет указывать на реальные проблемы сервиса. Кроме того, не стоит усердствовать и устанавливать порог для каждой метрики. Оповещения должны приходить о важнейших показателях, которые могут иметь разрушительные последствия, если их быстро не вернуть в норму.
  • Автоматизация
Это подходящее решение для oncall и поддержания работы сервисов. Если определенная проблема постоянно повторяется и ее можно решить без ручного вмешательства, автоматизация для этого подойдет. Она может быть очень полезна, но в то же время способна привести к нежелательным результатам. Например, важно не перезапускать все экземпляры сервиса с отслеживанием состояния одновременно. Системы автоматизации даже можно интегрировать с системами мониторинга. Вторые способны запускать автоматизацию всякий раз, когда для определенной метрики достигается пороговое значение.
  • Операционная гигиена. Очень важно иметь высокую операционную гигиену, чтобы ручные операции не спровоцировали проблемы. Один из способов решить эту задачу — написать инструкцию, в которой будут подробно описаны шаги для выполнения каждой ручной операции. Кроме того, другой член команды может проверить работу оператора, особенно если известно, что эта операция вызывает проблемы.

50% задач разрабочика — поддержание сервисов в рабочем состоянии. И эту задачу нельзя назвать заурядной. Разработка — это не просто написание кода.

2. Писать надежный код

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

  • Принцип DRY

DRY означает Don’t Repeat Yourself — «не повторяйтесь». Один и тот же фрагмент кода не должен повторяться несколько раз. Если это так, то вам, возможно, придется оптимизировать его, чтобы избежать избыточности. Если понадобится изменить логику кода, корректировки нужно будет внести только в одном месте.

  • Тесты

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

  • Архитектура

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

  • Постоянные значения

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

3. Проявлять инициативу

Разработчику вредно стагнировать — ему стоит стремиться к лидерству в команде. Чтобы увеличить влиятельность, проявляйте инициативу и готовьтесь взять на себя новые задачи, которые вам не нравятся. Хороший разработчик может справиться с новой задачей с минимальной помощью. Я начал больше анализировать код сервисов, с которыми я не был знаком. Я заставил себя чаще критиковать технические проектные документы, касающиеся крайних случаев или уязвимостей. Я даже попросил руководителя, чтобы он назначил меня на проекты, которые помогут мне развить свои слабые стороны.

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

Источник.

Фото: Unsplash 

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Число запросов белорусских IT-разработчиков на работу в России выросло в 5 раз — исследование
  2. 2 Четыре книги, которые должен прочитать каждый разработчик
  3. 3 Три полезных привычки, которые помогут стать отличным разработчиком
  4. 4 Каких ошибок нужно избегать разработчику: 21 совет от специалиста c 21-летним опытом

Актуальные материалы —
в Telegram-канале @Rusbase