В гитхабе заниматься рекрутингом неудобно.
Да и мало кто это делает. Но проверить кандидата, особенно того, у которого на гите есть профиль, сам бог велел. Поэтому стоит узнать подробнее про этот сервис. Тем более он весьма популярен в IT-среде.
Коммитить, пушить, мержить. Приобщимся к сленгу разработчиков и попытаемся разобраться, что такое системы контроля версий, почему в работе команды без них никак. Какие они бывают, чем похожи и чем отличаются. И зачем все это рекрутеру.
Источник https://seo.ru/blog/chto-takoe-git/
Если разработчик работает себе тихонько над проектом один, сам пишет код, автоматические тесты (проверка кода на наличие ошибок — багов), рефакторит (улучшает код для легкости внесения последующих изменений), выпускает релизы (версия продукта с ощутимыми изменениями для пользователя), то, может, система контроля версий ему и не нужна (на самом деле нужна). Но если над проектом работают несколько человек, все они вносят изменения — и без системы контроля версий никак не обойтись. Давайте поговорим подробнее о том, что же это такое.
Система контроля версий (VCS)
Это специальная программа для разработчиков, которая отслеживает изменения в коде и управляет этими изменениями. Вы создаете аккаунт в система контроля версий, заливаете в репозиторий (хранилище) код вашего проекта и даете разработчикам доступы к этому репозиторию. Теперь команда может работать одновременно над проектом и в любой момент получить актуальное состояние кода. В системе контроля версий видно, кто, когда и какие изменения внес. Если была допущена ошибка, можно «откатить» эти изменения назад и исправить код.
Системы контроля версий возникли эволюционно. Каждый день разработчики сталкивались со следующими проблемами:
- затирания и потери изменений в коде,
- потери части исходного кода,
- конфликт изменений, сделанных разными разработчиками.
При возникновении этих проблем приходилось проверять код глазами, что увеличивало риск просмотреть что-то и допустить ошибку, а также исправлять все конфликты руками. Система контроля версий отслеживает изменения и подсвечивает несоответствия между версиями. Некоторые конфликты система может исправить сама, но при сложных конфликтах нужно непосредственное вмешательство специалиста.
Итак, наш словарь.
- Коммитить — разработчик сохраняет изменения в коде, но локально, на сервер они не улетают, а ждут одобрения техлида проекта. Когда техлид просмотрел и одобрил код, он пишет reviewed. Все, код можно пушить.
- Пушить — заливать закоммиченные изменения на сервер, код добавляется в репозиторий (хранилище кода) и может исполняться машиной.
- Мержить — разрешать конфликты, которые возникают при слиянии версий (изменения, внесенные разными разработчиками). То есть система сама подсказывает, где и какой конфликт возник, а также варианты его разрешения: оставить код разработчика 1, оставить код разработчика 2, исправить код вручную. Первые 2 варианта может исполнить VCS, третий вариант реализует разработчик: просматривает конфликтный код и ищет компромиссное решение.
Рассмотрим несколько популярных систем контроля версий.
Одна из первых систем контроля версий, по сравнению с более современными проигрывает в функционале. Одноступенчатая работа: можно только коммитить (в этом случае код сразу попадает на сервер, а не сохраняется локально), пушить нельзя, мержить сложно. Из особенностей: для работы всегда нужна сеть, может подтормаживать. Вполне в состоянии справиться с нуждами небольшого проекта, так как не позволяет работать распределенно.
Одна из самых популярных VCS с двухступенчатой работой: сначала нужно коммитить, потом пушить. Это здорово выручает, если есть проблемы с интернетом. Система была разработана в 2005 году создателем операционного ядра Linux Линусом Торвальдсом. Сейчас Git используется в огромном количестве коммерческих проектов и проектов с открытым кодом.
Также популярнейшая система контроля версий, это веб-продукт, основанный на Git. Был разработан в 2008 году на Ruby on Rails и Erlang. GitНub доступен в бесплатной версии для проектов с открытым исходным кодом. Именно и зарекомендовал себя как площадка для работы над Open Source проектами. Под каждым бесплатным аккаунтом можно создать неограниченное количество репозиториев, но публичных! Для больших проектов предусмотрены различные платные пакетные тарифы.
Дополнительные функции GitНub
- Создание портфолио. Описание проектов привязывается к публичному репозиторию — и вуаля — готово портфолио разработчика с кодовой базой, что дает возможность оценить его навыки еще до собеседования.
- Создать страницу-резюме в доменной области github.io, где описать навыки, опыт и дать ссылку на проекты. Очень удобно, не нужно покупать хостинг и всегда можно дать ссылку рекрутеру на это резюме (описание опыта и портфолио — отличное сочетание).
- Глобальный поиск. Для разработчика: поиск проектов, разбор ошибок, код с комментариями.
Для рекрутеров: поиск сотрудников по резюме. Можно использовать просто поисковую строку, но есть и специальные инструменты:
Awesome Autocomplete for GitHub — поиск релевантных страниц пользователей и репозиториев, текст вводится в поисковую строку.
OctoHunt — поиск осуществляется по техническому стеку (языки, фрейворки, платформы и т.д.) и локации (Минск, Чикаго, Беларусь, США). Списком выдаются странички-резюме, релевантные запросу.
Github Email — поиск имейла по имени профиля разработчика.
Better Search for GitHub — похож на OctoHunt, но с более широким функционалом поиска по технологиям и даже репозиториям.
GitHub User Languages — инструмент для визуализации, приложение собирает и обрабатывает информацию по навыкам и опыту разработчиков и строит наглядные диаграммы.
CoderStats — приложение для анализа страницы кандидата с последующим выведением рейтинга в сравнении с коллегами.
GitHub Hovercard — выдаст всю информацию о пользователе: актуальную компанию, где трудится специалист, репозитории, локацию и количество фолловеров.
Glossary Tech — поможет начинающим специалистам разобраться в терминологии GitHub сразу же на странице сайта.
Система управления версиями из DevOps‑предложения Atlassian, поэтому легко интегрируется с другими его продуктами (Jira, Confluence). Богатый функционал намекает, что система подходит для больших сложных коммерческих проектов, которые не выкладывают код в публичный доступ, а наоборот, оберегают его от раскрытия коммерческой тайны. Есть бесплатный вариант создания приватных репозиториев, но в таком случае владелец аккаунта может предоставить доступ только 4 другим пользователям для совместной работы. Для небольшой команды (5 человек) или стартапа этого вполне достаточно.
На Bitbucket в разы меньшее количество пользователей, чем на GitНub, ведь он появился значительно позже и многие не знают про условия бесплатного пользования.
Преимущество Bitbucket в том, что у него встроена интеграция с другими продуктами Atlassian. Если команда большая, удобнее работать с Jira, если небольшая и задач немного — то подойдет и Trello. Также можно настроить права на развертывание кода на сервере, чтобы избежать случайных и нежелательных изменений в коде. Еще в Bitbucket есть система устранения инцидентов, которая позволяет откатывать изменения, приведшие к инциденту.
В целом Bitbucket больше подходит для работы распределенных команд, а GitHub хорош для индивидуальных проектов. Сейчас GitHub все еще более популярен, но необязательно так будет и лет через 5.
Теперь вы знаете, что такое система контроля версий, какие они бывают, для чего нужны, сможете определить, с какой системой контроля версий взаимодействовал разработчик, был ли вообще такой опыт, нужно ли разработчику обучение или ментор на первое время. Также эти знания помогут вам грамотно составить заявку на вакансию и саму вакансию. Кроме того, вы сможете искать специалистов на GitНub и Bitbucket с помощью специальных инструментов для поиска, многие из которых бесплатные.
Источник https://github.com/
Источник https://www.google.com/
Сравнение количества пользователей и репозиториев. https://stackshare.io/stackups/bitbucket-vs-github-vs-gitlab
На занятиях в школе HRPR вы пройдете технический ликбез.
Чтобы знать, какие особенности следует учитывать при поиске самых разных IT-специалистов.