Контроль версий для новичков: главный вопрос математики — а зачем?

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

Любой программист — не одинок. Даже сам с собой ведя переписку в коде. Завтрашний программист уже не тот, что вчерашний. Поэтому первый шаг и первая записка — о контроле и учете. Итак, зачем нам система контроля версий без умных слов)

Что такое контроль версий

Это схема (распределенная, централизированная — уже детали), в которой Ваш код храниться в безопасном для Вас режиме (форматирование диска не сотрет наработки последних лет).

  • Вы можете удобно отправлять код и вынимать код (любые файлы на самом деле).
  • Вы можете посмотреть историю отправок.
  • Вы можете поделиться с другими доступом к Вашему коду

Это собственно говоря и все важное для Вас в первый месяц работы)

Зачем он мне, если я работаю один?

Защита от внезапной пропажи компьютера, или наоборот — кодерской лихорадки субботнего вечера после пива. Сколько раз Вы хотели бы вернуться в прошлое и не ехать в тот злополучный бар? Так вот — в системах контроля версий можно откатить любое изменение! Можно путешествовать в прошлое, сравнивать его с настоящим и создавать счастливое будущее!!!!. Вы никогда не профукаете свою работу — и это огромный плюс. Вы никогда не потеряете рабочую версию в погоне за фичами (особенно когда изучите очень простую прекрасную магию вроде «веток»). Вы никогда не испытаете боль и разочарование, перегружая каждые две часа файлы по фтп на удаленный хостинг (ведь есть еще и еще мегамагии, подробнее в следующих заметках)

Зачем он мне, если я работаю не один?

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

Шаг 1. Процедура сверки каждого участника с папкой / «удаленным хранилищем» — пулл в гите — начало рабочей задачи программиста. Он узнает кто что делал, кто что менял и что новенького прилетело. Если один из измененных им файлов отличается от новых чужих изменений (ай, за последние 5 минут и я и Вася поработали вместе с одним кусочком кода) — то тут уже включайте думалку и руками сливайте изменения вместе (чтобы и Васина работа, и моя были не напрасны). Но так бывает редко, при хорошем разделении — почти никогда.

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

Вот и вся магия! Подробнее о процедуре работы над одной задачей в рамках нашего рабочего процесса — в следующей заметке (и конкретно с гитом как выбранной нами основной системы контроля версий)

Оставить комментарий

XHTML: Вы можете использовать такие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">