Что нужно знать начинающему бэкенд-разработчику, кроме языка программирования
Содержание:
- Что такое backend?
- Плюсы и минусы профессии
- Как стать frontend-разработчиком? Что нужно знать и уметь?
- Лучшие книги и средства обучения
- Кто такой backend-разработчик
- Чем занимаются фулстек-разработчики
- Кто это?
- Full-stack-разработчик
- Inner source. Assess
- Карьерный рост и зарплата
- Что нужно уметь
- Где найти backend программиста на проект?
- Где учиться на бэкенд-разработчика
- Frontend-разработчик
- Machine learning in Frontend. Trial
- Немного практики с сессионными токенами и защита от CSRF
- ПРЕИМУЩЕСТВА ПЛАТНЫХ КУРСОВ
- Менеджер зависимостей
Что такое backend?
Бэкенд (англ. back-end) — это программно-аппаратная часть сервиса. Это набор средств, с помощью которых происходит реализация логики веб-сайта. Это то, что скрыто от наших глаз, т. е. происходит вне компьютера и браузера.
Как только вы введёте запрос на странице поисковика и нажмёте клавишу «Ввод», frontend закончится и начнётся backend. Ваш запрос отправится на сервер Яндекса или Google, т. е. по месту расположения алгоритмов поиска. Именно там и происходит вся «магия». Но вот, на мониторе появляются данные, которые вы запрашивали, — это происходит возвращение во frontend.
Также можно сказать, что backend — это процесс объединения пользователя с сервером.
Что касается backend-разработчика, то он использует любые инструменты, которые доступны на его сервере. На практике программисты применяют любой из универсальных языков: PHP, Ruby, Python, Java. Кроме того, при backend-разработке задействуются СУБД (MySQL, PostgreSQL, SQLite, MongoDB и пр.).
В зависимости от особенностей продукта меняются и обязанности backend-разработчика.
Плюсы и минусы профессии
Основные достоинства:
интересная и творческая работа, многие задачи – это вызов для ума;
высокая зарплата;
востребованная специальность, в ближайшее время актуальности не потеряет;
можно устроиться на работу без профильного образования;
можно работать из дома, удаленно, или устроиться в зарубежную компанию;
можно стать fullstack-программистом, если освоить фронтенд.
Минусы:
непростое обучение;
высокий порог входа: требуется многое знать и уметь;
для получения хорошей должности требуется опыт и серьезное портфолио;
требования к программисту сильно отличаются от компании к компании;
обязательное знание английского;
нет единой концепции при обучении и общего стандарта набора навыков;
для перехода с уровня на уровень требуется не менее 2-3 лет, здесь не возможно быстро построить карьеру и за 5 лет стать ведущим специалистом.

Как стать frontend-разработчиком? Что нужно знать и уметь?
Ниже находится пошаговая инструкция, как стать frontend-программистом с нуля и что нужно знать для работы в этой сфере:
- Освоить HTML и CSS. HTML – это язык разметки веб-документов. CSS – каскадные таблицы стилей. Они управляют оформлением различных элементов на страницах (например, размером шрифтов).
- Изучить JavaScript – основной язык, который нужно знать frontend-программисту. Существуют различные библиотеки готовых скриптов, написанных на JavaScript. Их тоже лучше изучить, чтобы пользоваться ими и ускорять свою работу. Пример такой библиотеки – jQuery.
- Изучить методологию верстки, например, БЭМ от Яндекса. Методология помогает создавать веб-приложения по определенным принципам, которые помогают разбираться в чужом коде и в своем тоже по прошествии какого-то времени.
- Изучить фреймворки, в частности, Bootstrap. Фреймворк – это набор неких готовых решений, на базе которых можно создавать веб-сайты быстрее, чем при написании кода с нуля.
- Освоить кроссбраузерную верстку и научиться создавать страницы, которые одинаково выглядят в разных браузерах.
- Изучить адаптивный дизайн, т.е. дизайн, который подстраивается под размеры экрана пользователя. Таким образом сайт приемлемо выглядит на разных устройствах (компьютер, планшет, смартфон).
- Не лишним будет освоить языки серверного программирования на базовом уровне. Например, язык PHP – один из самых популярных в среде веб.
-
Изучить Git и научиться работать с системами контроля версий.
Как видим, программа обучения frontend-программиста весьма обширна и включает множество навыков и умений.
Лучшие книги и средства обучения
- Базовая книга по вашему языку программирования — мне нравятся издания O’Reilly, многие переведены издательством «Питер».
- Аналогично базовые книги по вашему стеку.
- Кукбуки (cookbook) по языкам и рекомендации корпораций, статьи в блогах и т.д.
- Бек Кент, Экстремальное программирование. Разработка через тестирование — отличная книга для любого разработчика в принципе, но особенно для бэкендера. Проникнуться философией TDD дорого стоит.
- Джоэл Х. Спольски — можно читать его блог, можно ещё на просторах Рунета найти электронную книгу «Джоэл о программировании» — сборник постов из блога на русском.
- Роберт Мартин «Идеальный программист», «Чистый код» — переводная книга от «Питера» хороша, но в оригинале стиль и шутки вообще бесподобны.
- Мартин Фаулер и коллектив авторов «Шаблоны корпоративных приложений» — «взрослая» книга для джавистов, но не помешает ни для одного серверного языка как сборник инсайтов и крутых находок.
- Бесплатные курсы и видео, которых бесконечно много на Youtube на русском и английском языках. Просто слушайте, повторяйте, систематизируйте знания. Для начала подойдут любые, очень скоро вы научитесь отличать крутые вещи от дилетантских.
- webref.ru — очень классный сайт для разработчиков веба, разбирайтесь, обучайтесь.
- codecademy.com — интерактивный сайт для обучения разработке на разных языках программирования на английском, с самого низкого, нулевого, уровня.
- ITc | сообщество программистов — вагон организованной информации с курсами, лекциями и чем угодно. Читайте комментарии, легко определяйте лучшее для обучения.
- Библиотека программиста — куча книг по любой айти-тематике.
Кто такой backend-разработчик
Подавляющее большинство специалистов – люди с техническим образованием. На их плечах лежит забота о внутренней и вычислительной логике веб-сервиса.
Еще они отвечают за:
- корректное функционирование сайта;
- организацию и работу с базами данных;
- обработку пользовательской информации;
- безопасное хранение личных данных;
- разработку алгоритмов работы веб-ресурса;
- взаимодействие с внешними сервисами;
- оптимизацию кода.
Обычный пользователь не увидит, насколько компетентен бэкенд-разработчик, не узнает, насколько он хорош в своем деле. Но его ошибки сразу бросаются в глаза.
Более 100 крутых уроков, тестов и тренажеров для развития мозга
Начать развиваться
Если вы видите на экране подобное сообщение или какой-то бессмысленный набор букв и цифр, то произошел сбой и за это отвечает backend-developer.

Чем отличается от frontend-разработчика
Бэкенд и фронтенд-разработчики должны работать вместе, чтобы в результате получился “вкусный” продукт.
Все остальное – обработка личной информации, ее хранение, связь между полем регистрации и корзиной с товарами, интеграция с платежным шлюзом, автоматическое отправление писем, добавление нового контента и обновление старого – детище backend-разработчика.
При работе с навигатором вы взаимодействуете с результатом работы фронтенд-специалиста – когда пишете адрес и видите карту. С бэкенд-developer – когда ваш запрос проверяется, выстраиваются возможные варианты пути и передаются данные.
Может, труд бэкенд-разработчика и незаметен, но без него будет бесполезна и работа фронтенд-специалиста – ничего попросту не будет функционировать.
На бэкенд-разработчике лежит большая ответственность, чем на его коллеге. Если из-за ошибки фронтенд-программиста пользователи просто останутся недовольными, то из-за промаха backend-специалиста бизнес может рухнуть и заказчик потеряет деньги.
Чем занимаются фулстек-разработчики
Фулстек-разработчик — это специалист, который сочетает в себе навыки фронтендера и бэкендера. Он может разрабатывать как клиентское, так и серверное ПО.
Клиентом в программировании называют систему, которая отправляет запросы на выполнение каких-то процедур, получает ответы и отдаёт результат пользователю. Сервер же выполняет процедуры в ответ на запросы пользователя и передаёт на клиент результат выполнения этих процедур. В веб-контексте клиентом чаще всего выступает браузер, а сервер — это веб-сервер (машина и набор программ в облаке).
В разрезе веб-разработки клиентское ПО — это те программы, которые выполняются в браузере. Например, браузер рисует весь интерфейс, реализует его анимацию, отправляет какие-то данные на сервер. Серверное ПО — это те программы, которые выполняются на сервере. Например, сервер может отфильтровать данные миллионов пользователей Яндекса по году рождения и отправить клиенту только рожденных в 1990 году.
Фулстек-разработчик может создать графический интерфейс, запрограммировать всю необходимую логику, выполняемую на сервере, а потом построить связь между этими двумя частями, чтобы получить единое приложение. Помимо работы с HTML и CSS он также знает, как писать программы, которые исполнит браузер, — и то, как запрограммировать сервер. Фулстек может сам создать форму регистрации и дописать к этой задаче весь серверный код, который проверит, не был ли зарегистрирован такой пользователь ранее. Если человек уже есть в базе, то сервер отправит сообщение об ошибке в браузер, если нет — сохранит данные в базу данных, а браузеру отправит ответ об успешной регистрации пользователя.
Кто это?
- обеспечение корректной работы всех функций сайта и его вычислительной логики;
- организация и работа с базами данных посредством СУБД;
- разработка базовой логики и алгоритмов работы приложения;
- API;
- необходимые интеграции с внешними сервисами;
- тестирование и отладка приложения и отдельных компонентов.
Фронтэнд-разработчики красят лампу в жёлтый цвет и втирают бэкенду, что лампочка работает, но только в дневное время.
Бэкенд-разработчики удивляются, откуда у всех взялись проблемы с этими лампочками, вспоминает, что забыл задеплоить свет в базу данных, успокаивается и валит вину на фронтэнд.
Full-stack-разработчик
По данным «Мой круг» full-stack и back-end разработчики в 2018 году получают до 140 тысяч рублей. Front-end – до 125 тысяч.
Может ли один и тот же человек заниматься и фронтенд, и бэкенд разработкой? Если он разбирается и в том, и в другом – почему нет: такой разработчик называется Full Stack.
Он умеет решать любые задачи по разработке веб-сервисов и сайтов: знает серверные языки, JavaScript, HTML и CSS, может оптимизировать сайт под поисковики и превратить сделанный в Photoshop макет дизайна в рабочий интерфейсный код (вы же помните, что интерфейс сайта рисует дизайнер, но на самом сайте всё будет описано кодом?).
Как правило, fullstack-разработчика нанимают для небольших проектов, с которыми может справиться один человек. Такие программисты, как правило, не становятся экспертами ни во фронтенде, ни в бэкенде, зато неплохо разбираются в общей логике работы сайта и взаимодействии пользовательской части с серверной
Это, кстати, очень важно: многие front-end и back-end разработчики просто не понимают друг друга и ставят невыполнимые задачи, а full-stack специалист как раз может стать связующим звеном
Учиться сразу на fullstack нет смысла: обычно программист сперва осваивает одну часть работы – frontend или backend – и уже потом добавляет к багажу знаний навыки по смежному направлению.
Inner source. Assess
Если вы нацелены на ускорение поставки, распространение владения кодовой базы и межкомандное сотрудничество, то подход Inner Source может быть вам интересен.
Inner Source — это как Open Source, только внутри компании, который позволяет уменьшить зависимость от смежных команд разработки, что должно привести к ускорению выполнения задач.
Разберем на примере. Допустим, у вас есть две команды и первая команда хочет доработку от второй. Команда 1 приходит к команде 2, добавляет свою задачу в очередь бэклога и получает блокирующую зависимость в исполнении своего проекта. В случае с Inner Source все репозитории открыты внутрь компании. В таком подходе команда 1 может сделать pull request в целевую систему, а владелец системы — команда 2 — эти изменения проверит и вольет в основную ветку. Выходит, что первая команда получит свою доработку быстрее за счет использования собственного ресурса, чем если бы ждала, своей очереди в бэклоге другой команды.
Чтобы Inner Source работал, недостаточно просто открыть все репозитории — важно применять общие стандарты, такие как хорошая документация, понятный и прозрачный процесс контрибьютинга, качественная инфраструктура для развертывания изменений. Эта практика может положительно повлиять на мотивацию вашей команды, благодаря возможности влиять на любую систему компании, а также улучшить горизонтальные связи — допустим, между всеми фронтенд-разработчиками компании
Эта практика может положительно повлиять на мотивацию вашей команды, благодаря возможности влиять на любую систему компании, а также улучшить горизонтальные связи — допустим, между всеми фронтенд-разработчиками компании.
Подробней ознакомиться с Inner Source можно на сайте комьюнити Inner Source.
Карьерный рост и зарплата
Карьера бэкенд-разработчика начинается со ступени “стажер”. Средняя заработная плата – 20–40 тыс. руб.
Далее идет младший backend-программист. Он как минимум прилично разбирается в одном языке программирования и может работать с базой данных. Младший специалист знает, где искать информацию и как выполнить мелкое поручение.
Он работает под началом своих старших коллег и перенимает у них опыт. Зарабатывает от 30 до 60 тыс. руб.
Средний специалист на продвинутом уровне разбирается в языках программирования. Активно использует фреймворки и начинает самостоятельно выполняет задачи на проекте. Зарплата колеблется в районе 70–120 тыс. руб.
Старший бэкенд-разработчик имеет опыт работы от 3 лет, хорошо знает специфику и особенности своей деятельности, быстро приспосабливается к новым условиям и коллегам.
Проектирует и решает сложные задачи, работает в проектах крупного масштаба. Часто консультирует других программистов.
Обладает развитыми навыками общения, может поладить как с заказчиком, так и с другими работниками. Имеет ярко выраженные управленческие черты.
Цена за его работу начинается от 150 тыс. и может удваиваться, а в некоторых случаях – утраиваться.
После карьеры бэкенд-разработчика можно осваивать новую вершину – должность фулстек-разработчика – специалиста, совмещающего в себе frontend и backend-программиста.
Если говорить о зарплатах в городах, то выстраивается такая картина:
- Москва: 80 000–300 000 руб.
- Санкт-Петербург: 70 000–250 000 руб.
- Калининград: 40 000–170 000 руб.
- Ростов-на-Дону: 30 000–220 000 руб.
- Омск: 40 000–150 000 руб.
- Хабаровск: 60 000–160 000 руб.
Все цифры – это средние значения. Все зависит от навыков программирования, общих тематических знаний, опыта и личностных характеристик.

Что нужно уметь
Если вы откроете вакансию любого бэкенд-разработчика, то там будут примерно следующие требования:
- знание Python, PHP, Ruby или Java (если всё сразу — это огромный плюс);
- часто хотят, чтобы вы знали JavaScript и Node.js, чтобы реализовывать часть логики на клиенте;
- AJAX — помогает обновлять данные на странице без её перезагрузки;
- базы данных — MySQL, PostgreSQL или MongoDB;
- Django и другие фреймворки для быстрой разработки;
- умение работать с API;
- владение Git или любым инструментом контроля версий.
Отдельно ценится умение работать в UNIX-системах, разбираться в том, как устроены сетевые технологии и владение сетевыми протоколами. Но на самом старте можно и без этого.
Где найти backend программиста на проект?
- В интернете есть много профильных ИТ-сайтов, на которых можно бесплатно разместить объявление о поиске разработчика.
- Посмотрите каталог веб-программистов. При помощи фильтров в каталоге можно найти разработчиков, владеющих нужными вам технологиями.
-
Добавьте проект на биржу для программистов. Добавление вакансий на ней – бесплатное.
Рекомендуем
Профессия менеджер по персоналу (HR-менеджер)
По прогнозам экспертов, востребованность профессии будет только расти. HR-менеджеры – это специалисты по управлению персоналом компании. Они …
Профессия репетитор
Если Вы любите обучать других людей, общаться и делиться знаниями, профессия репетитор будет Вам интереса. Это очень популярная и востребованная …
Где учиться на бэкенд-разработчика
Вы можете самостоятельно освоить эту специальность по статьям, книгам и курсам (бесплатные варианты во множестве представлены на YouTube). К сожалению в этом случае, все полученные знания будут иметь фрагментарный характер и для работы по найму их объема не хватит (как вариант – фриланс, но так же весьма маловероятно).
Отсюда вывод – лучше идти на платные курсы с теоретической и практической частью. В интернете есть компании, которые предполагают подобное обучение. Их безусловный плюс – выполнение максимально приближенных к настоящим проектов, а кроме того – помощь в стажировке или даже в трудоустройстве.
Frontend-разработчик
Front-end – «лицевая» часть сайта: всё, что видит пользователь. Меню, текст, картинки, раздражающие (или, если сделано хорошо, не раздражающие) рекламные баннеры – всем этим занимается frontend-разработчик. В разработке дизайна он тоже участвует: «рисует» всё, конечно, веб-дизайнер, но контролирует его работу именно фронтенд.
Задачи frontend-разработчика
- Придумать и сделать удобный и понятный интерфейс сайта;
- Сделать так, чтобы сайт понравился и пользователям, и владельцу. Например, владелец захочет разместить рекламу – фронтенд должен поставить её так, чтобы баннер было видно, но он никому не мешал;
- Добиться того, чтобы сайт одинаково выглядел и на компьютере, и на смартфоне независимо от браузера и размера экрана.
Три основных инструмента frontend-разработчика: HTML, CSS, JavaScript.
Machine learning in Frontend. Trial
ML может применяться в задачах разработки веб-интерфейсов. Благодаря библиотеке Tensorflow, которая является одной из популярных библиотек для ML и имеет версию для Node.js и браузера, мы получаем возможность машинного обучения на известном стеке. Здесь JavaScript подтверждает свою универсальность.
Эти возможности позволяют решать задачи такими способами, о которых раньше не задумывались, но для этого необходимо теоретическое знание ML. Пример задач, где применим ML, — повышение скорости работы интерфейса.
Одна из наших команд экспериментировала и сделала сервис, предсказывающий вероятность посещения следующей страницы. Затем интегрировала этот сервис в стратегию предзагрузки одного из проектов — теперь в некоторых случаях пользователь при переходе на следующую страницу увидит ее моментально, без ожидания загрузки. Мы разработали свое решение на базе Tensorflow.js. Конкретно для этой задачи существует open-source-решение от Google — Guess.js, которое на основе данных из Google Analytics делает похожее. Советуем попробовать.
Еще из примеров использования ML в задачах фронтенда можно выделить анализ кода для выявления дубликатов, анализ верстки на соответствие гайдлайнам и даже возможность поправлять ее, распознавать документы в браузере, не передавая их по сети, генерировать пользователям индивидуально подстроенный интерфейс, повышать accessibility — допустим, голосовым управлением.
Немного практики с сессионными токенами и защита от CSRF
Сессионные токены — лакомый кусочек для злоумышленников. Это очень важные данные, сродни паре «логин-пароль». Можно использовать различные схемы защиты этих токенов, предлагаю рассмотреть одну из них.
Для начала сделаем такой токен доступа, у которого будет небольшой срок жизни. Тогда злоумышленник, предпринимающий атаку на похищение токена, может не успеть им воспользоваться даже в случае кражи. Однако если сделать период действия слишком коротким, обычному пользователю будет неудобно: перелогиниваться каждые 10 минут — то ещё удовольствие. Поэтому токены можно разделить на 2 вида: токен доступа (access_token) и токен обновления (refresh_token). С помощью access_token пользователь получает доступ к ресурсам API, а с помощью refresh_token пользователь запрашивает у API новый access_token. В чем же смысл? Злоумышленник ведь может украсть refresh_token и с помощью него получить действительный access_token. Для того, чтобы разобраться в этом, давайте рассмотрим небольшую модель с REST API.
Пусть эндпоинт аутентификации POST /auth имеет следующий вид:
| Запрос | Ответ | |
|---|---|---|
| Body |
Пользователь вводит свой логин и пароль, в теле ответа получает access_token. Фронтенд-приложение этот токен запоминает и далее может делать авторизованные xhr-запросы, например GET /user
| Запрос | Ответ | |
|---|---|---|
| Body | ||
| Headers |
Время жизни access_token, предположим, 10 минут, значит, через 10 минут пользователю придется перелогиниться для продолжения работы в приложении. Чтобы пользователя «не выбрасывало», нужен refresh_token, время жизни которого существенно выше, например, сутки. Тут встаёт вопрос, где же хранить эти токены со стороны браузерного клиента, ведь очевидно, что хранить их вместе не стоит. Рассматривать будем только 2 вида хранилища: localStorage, способное держать информацию в рамках одного источника одностраничного приложения, и httpOnly Cookie, привязанное к конкретному домену бэкенда
Session storage привязан к конкретной вкладке, поэтому не подходит, а обычные Cookie слишком небезопасны.
Важно понимать, что refresh token нужен только пользователям веб-страницы, а пользователи, обращающиеся к API со своих серверов, могут сами обновлять access_token при помощи логина и пароля
Приложение на другом сервере, обращающееся к нашему API, не использует Cookie для общения. Ему необходимо добавлять access_token в заголовок запроса для подтверждения авторизации. Фронтенду тоже нужен доступ к access_token для добавления этого заголовка. Поэтому использование localStorage в качестве хранилища access_token — неплохой путь с учётом небольшого времени жизни и принятых мер по защите от XSS. А в качестве хранилища для refresh_token стоит использовать httpOnly cookie. Тогда в бэкенде нужно сделать так, чтобы на запрос авторизации POST /token/auth он формировал ответ с соответствующим заголовком Set-cookie.
| Запрос | Ответ | |
|---|---|---|
| Body | ||
| Headers |
Мы помним, что любые cookies уязвимы к CSRF-атакам. Необходимо защитить refresh_token от CSRF атак дополнительно CSRF-токеном. Что? Ещё один токен? А его где хранить? Дополнительный токен не нужен, с задачей хорошо справится access_token. Используем его для проверки, что запрос POST /refresh выполнен санкционировано от авторизованного пользователя.
В эндпоинте POST /token/refresh используем для проверки сразу 2 токена: старый access_token взятый из localStorage и refresh_token взятый из httpOnly cookie при помощи заголовка cookie
| Запрос | Ответ | |
|---|---|---|
| Body | ||
| Headers |
Со стороны бэкенда проверка access_token из заголовка X-CSRF-Token должна пропускать случай, если этот токен уже просрочен, но не так давно (~ время жизни refresh_token).
Важно знать, что если мы работаем в рамках политики CORS, то при совершении XHR-запроса с участием cookie нужно проводить такой запрос со специальным флагом withCredentials: true для XMLHttpRequest и credentials: ‘include’ для fetch. Без этого флага браузер запретит использовать cookie, в том числе и httpOnly, серверу с доменом, отличным от домена источника
Таким образом, храня access_token и refresh_token в разных хранилищах, используя доступные средства защиты от XSS и CSRF-атак, мы сделаем наше приложение безопаснее.
ПРЕИМУЩЕСТВА ПЛАТНЫХ КУРСОВ
Для самостоятельной учебы профессия очень сложная. Придется долго и кропотливо учиться, это займет много времени. В изучении дисциплин помогут различные учебники, статьи на специализированных ресурсах, видеоролики, размещенные в открытом доступе. Однако из-за охвата различных областей могут возникнуть пробелы в знаниях, которые будут иметь решающее значение при работе в проекте. Также не будет обратной связи от наставника, анализа ошибок и рассказов о том, почему нужно делать именно так, а не иначе. Лучший способ погрузиться в профессию — это сочетание самообразования и курсов для обучения. Курсы имеют ряд преимуществ:
- Структурированная информация. Все материалы расположены по темам, создавая единую схему от начала обучения до конца. Вы видите прогресс, вы чувствуете, что уровень знаний растет.
- Обратная связь. Наставник ответит на все вопросы, поэтому вы сможете прояснить для себя любые нюансы гораздо быстрее, чем гуглить и переключаться с одной ссылки на другую. Кроме того, у него уже есть практический опыт, и вы можете получить ответ, основанный не только на теории из учебников.
- Профессиональная ценность. После платных курсов вы получите сертификат, с помощью которого сможете устроиться на работу. Вы повысите свою ценность как специалиста, пройдя курсы повышения квалификации.
Подумайте обо всех плюсах и минусах, чтобы решить, является ли это вашей специальностью или нет. Но лучше попробовать пройти стажировку или сделать небольшой заказ на бирже фриланса, чтобы вы могли быть на 100% уверены в своем выборе.
Менеджер зависимостей
Долго писать не буду, а сразу скажу, что это без сомнений Glide. Если вы работали с gradle или maven, то вам наверняка знакома парадигма объявлений зависимостей в неком файле с последующим их задействованием по необходимости. Так вот Glide — это хомячий Gradle, с решением конфликтов и прочими плюшками.
Кстати, если у вас возникнут проблемы при тестировании, когда go test лезет в папку vendor, жадно тестируя каждую либу, то проблема решается элементарно:
Этот параметр исключает папку vendor из тестирования. В сам репозиторий достаточно положить glide.yaml и glide.lock файлы.
Мобильной разработке это все никак не поможет, но просто, чтобы вы знали)
