fbpx

В гитхабе заниматься рекрутингом неудобно.

Да и мало кто это делает. Но проверить кандидата. особенно того, у которого на гите есть профиль, сам Бог велел. Поэтому стоит узнать подробнее про этот сервис. Тем более он настолько популярен в IT-среде.

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

Присоединяйся к школе HRPR в Telegram-сообществе IT-Рекрутеров и в соцсетях

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

Система контроля версий (VCS)

— специальная программа для разработчиков, которая отслеживает изменения в коде и управляет этими изменениями. Вы создаете аккаунт в система контроля версий, заливаете в репозиторий (хранилище) код вашего проекта и даете разработчикам доступы к этому репозиторию. Теперь команда может работать одновременно над проектом и в любой момент получить актуальное состояние кода. В системе контроля версий видно кто, когда и какие изменения внес. Если была допущена ошибка, можно “откатить” эти изменения назад и исправить код.

Системы контроля версий возникли эволюционно, каждый день разработчики сталкивались со следующими проблемами:

  • затирания и потери изменений в коде,
  • потери части исходного кода.
  • конфликт изменений, сделанных разными разработчиками

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

Итак, наш словарь:

  • Коммитить — разработчик сохраняет изменения в коде, но локально, на сервер они не улетают, а ждут одобрения техлида проекта. Когда техлид просмотрел и одобрил код, он пишет “reviewed”, все, код можно пушить.
  • Пушитьзаливать закоммиченные изменения на сервер, код добавляется в репозиторий (хранилище кода) и может исполняться машиной.
  • Мержить — разрешать конфликты, которые возникают при слиянии версий (изменения внесенные разными разработчиками). То есть, система сама подсказывает, где и какой конфликт возник, а также варианты его разрешения: оставить код разработчика 1, оставить код разработчика 2, исправить код вручную. Первые 2 варианта может исполнить VCS, третий вариант реализует разработчик — просматривает конфликтный код и ищет компромиссное решение.

Рассмотрим несколько популярных систем контроля версий:

Subversion (SVN)

— одна из первых систем контроля версий, по сравнению с более современными проигрывает в функционале. Одноступенчатая работа — можно только коммитить (в этом случае код сразу попадает на сервер, а не сохраняется окально), пушить нельзя,  мержить сложно. Из особенностей — для работы всегда нужна сеть, может подтормаживать. Вполне в состоянии справиться с нуждами небольшого проекта, так как не позволяет работать распределенно.

Git

— одна из самых популярных VCS с двухступенчатой работой: сначала нужно коммитить, потом пушить. Это здорово выручает, если есть проблемы с интернетом. Система была разработана в 2005 году создателем операционного ядра Linux — Линусом Торвальдсом. Сейчас Git используется в огромном количестве коммерческих проектов и проектов с открытым кодом.

GitHub

— также популярнейшая система контроля версий, это веб-продукт, основанный на Git. Был разработан в 2008 году на  Ruby on Rails и Erlang. Github доступен в бесплатной версии для проектов с открытым исходным кодом. Именно и зарекомендовал себя как площадка для работы над Open Source проектами. Под каждым бесплатным аккаунтом можно создать неограниченное количество репозиториев, но публичных!  Для больших проектов предусмотрены различные платные пакетные тарифы.

Дополнительные функции Github:

  1. создание портфолио. Описание проектов привязывается к публичному репозиторию и вуаля — готово портфолио разработчика с кодовой базой, что дает возможность оценить его навыки еще до собеседования.
  2. создать страницу — резюме в доменной области github.io, где описать навыки, опыт и дать ссылку на проекты. Очень удобно, не нужно покупать хостинг и всегда можно дать ссылку рекрутеру на это резюме (описание опыта и портфолио — отличное сочетание).
  3. глобальный поиск. Для разработчика: поиск проектов, разбор ошибок, код с комментариями.
    Для рекрутеров: поиск сотрудников по резюме. Можно использовать просто поисковую строку, но есть и специальные инструменты:

Awesome Autocomplete for GitHub — поиск релевантных страниц пользователей и репозиториев, текст вводится в поисковую строку.

OctoHunt — поиск осуществляется по техническому стеку (языки, фрейворки, платформы и т.д.) и локации (Минск, Чикаго, Беларусь, США). Списком выдаются странички-резюме, релевантные запросу.

 Github Email — поиск имэйла по имени профиля разработчика.

Better Search for GitHub — похож на OctoHunt, но более с широким функционалом поиска по технологиям и даже репозиториям.

GitHub User Languages — инструмент для визуализации, приложение собирает и обрабатывает информацию по навыкам и опыту разработчиков и строит наглядные диаграммы.

CoderStats — приложение для анализа страницы кандидата с последующим выведением рейтинга в сравнении с коллегами.

GitHub Hovercard — выдаст всю информацию о пользователе: актуальную компанию, где трудится специалист, репозитории, локацию и количество фолловеров.

Glossary Tech — поможет начинающим специалистам разобраться в терминологии GitHub сразу же на странице сайта.

Bitbucket

— система управления версиями из DevOps‑предложения Atlassian, поэтому легко интегрируется с другими его продуктами (Jira, Confluence). Богатый функционал намекает, что система подходит для больших сложные коммерческих проектов, которые не выкладывают код в публичный доступ, а наоборот оберегают его от раскрытия коммерческой тайны. Есть бесплатный вариант создания приватных репозиториев, но в таком случае владелец аккаунта может предоставить доступ только 4 другим пользователям для совместной работы. Для небольшой команды (5 человек) или стартапа этого вполне достаточно.

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

Преимуществами Bitbucket в том, что в нем встроена интеграция с другими продуктами Atlassian. Если команда большая удобнее работать с Jira, если небольшая и задач немного, то подойдет и Trello. Также можно настроить права на развертывание кода на сервере, чтобы избежать случайных и нежелательных изменений в коде. Еще в Bitbucket есть система устранения инцидентов и откатывать изменения, приведшее к инциденту.

В целом, Bitbucket больше подходит для работы распределенных команд, а GitHub хорош для индивидуальных проектов. Сейчас GitHub все еще более популярен, но не обязательно так будет и через 5 лет.

Теперь вы знаете, что такое система контроля версий, какие они бывают, для чего нужны, сможете определить, с какой системой контроля версий взаимодействовал разработчик, был ли вообще этот опыт, нужно ли разработчику обучение или ментор на первое время. Также эти знания помогут вам грамотно составить заявку на вакансию и саму вакансию. Кроме того вы сможете искать специалистов на Github и Bitbucket с помощью специальных инструментов для поиска, многие из которых бесплатные.

На занятиях в школе HRPR вы пройдете технический ликбез

Чтобы знать, какие особенности следует учитывать при поиске самых разных IT-специалистов

01

ШАГ

Приходите на курс HRPR для IT-рекрутеров. Скоро старт новой группы. 125+ часов, 40+ занятий, 10+ спикеров из ведущих IT-компаний

Последнее из блога

IT-СловарьITHR & IT-РекрутингТехнологии IT-сорсинга
4 января, 2022

Golang. Где искать разработчиков и сколько они стоят?

В ноябре 2021 года, языку программирования GO исполнилось 12 лет. Название GO, язык получил как производное от материнской компании Google, но позднее, чтобы не пересекаться с еще одним языком программирования “Go!”,…
IT-ПродажиIT-СловарьITHR & IT-РекрутингЛикбез для IT-SalesТехнологии IT-сорсинга
4 января, 2022

Embedded system. Что это? Почему так востребовано?

АМбЭдет или ЭМбэдед. Только не скажите - эмбед, как это делает большинство.  Встраиваемая, или встроенная, система (Embedded System) ― это микропроцессорная вычислительная система, являющаяся модулем какого-либо устройства и предназначенная для…
Human managementIT-МенеджментITHR & IT-РекрутингТехнологии ITHRM
17 декабря, 2021

Мотивация в IT: деньгами или проектами? Тренды 2021-2022

Работодатели конкурируют друг с другом в попытках найти и удержать лучших IT-специалистов. При этом конкурируют они не только на внутреннем, но и на внешнем рынке - с западными IT-компаниями. В…
Human managementITHR & IT-РекрутингТехнологии ITHRM
6 декабря, 2021

STAR-Интервью. Применимо ли для оценки разработчиков в IT?

«Где вы видите себя через пять лет, Ирина?» - один из шаблонных вопросов, которые задают рекрутеры на собеседованиях и которые ненавидит большинство кандидатов.  Для IT рекрутеров такой вопрос неприемлем. Скажем…