Российский аналог Github уже здесь! Попробуем на практике решение от СберТех для контроля версий программного обеспечения.
Статья предназначена для начинающих разработчиков. В ней познакомимся и попробуем на вкус отечественный ответ популярной сети для обмена кодом - Github.
А также поверхностно посмотрим на систему контроля версий Git. Это руководство поможет вам в первый раз создать новый проект и сделать его публично доступным другим людям. Аналогичным способом как это делается в Github.
Мы напишем небольшой пакет на Go, в котором добавим функцию LeftPad. Эта функция позволяет получить строку, которая дополняется символами заполнителями до нужной длины.
И выложим этот код на Gitverse.
О появлении отечественного аналога Github разговоры велись довольно давно. И наконец дело дошло до финального результата. СберТех — дочерняя компания ПАО Сбербанк выпустила готовую версию под названием Gitverse.
Официальная новость
Gitverse
Компания СберТех выпустила в открытый доступ свою версию популярной социальной сети Github для разработки программного обеспечения. Читатель уже вероятно наслышан о Github. Эта площадка позволяет хранить и распространять ваш код между разработчиками программного обеспечения.
GitHub — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки
Любой человек может поделиться своим кодом с другими людьми.
Github.com не единственное решение для обмена и хранения кода в Интернете. Из популярных аналогов можно привести Gitlab.com.
Итак, давайте наконец познакомимся с Gitverse поближе.
Вот как выглядит Gitverse на момент запуска:
Все довольно просто и лаконично.
Справа список ваших проектов — они называются репозиториями.
В разделе Активность показывается ваша ежедневная активность по календарю. А снизу история ваших действий по каждому из репозиториев.
Начало работы
Шаг 1 - Регистрация
Для начала работы с Gitverse необходимо зарегистрироваться. На выбор есть два варианта:
- Сбер ID
- Cloud.ru
Выберем первый вариант. После этого нужно будет пройти процедуру авторизации через Сбер ID.
Итак, мы наконец вошли в Gitverse.
Установим пароль для нашей учетного записи. В будущем вы сможете использовать два варианта авторизации:
1) По логину и паролю
2) По Сбер ID
Смена пароля
В правом верхнем углу нажмите на иконку аватара и выберите пункт меню Настройки
Откроется экран Настроек. В нем выберите пункт — Аккаунт.
Далее введите новый пароль и запомните его.
Шаг 2
После завершения регистрации нужно создать новый репозиторий.
Для этого нажмите на кнопку Добавить в верхней части экрана.
Далее выбираем пункт — Новый репозиторий.
Откроется следующая форма.
Создание нового репозитория
Здесь нужно заполнить название репозитория. Напишите str.
Все остальные пункты можно оставить по умолчанию.
Шаг 3
После нажатия на кнопку Создать будут показаны следующие команды:
Для заполнения нашего репозитория нам понадобится установленный клиент Git.
Их мы введем когда напишем код для нашего проекта.
Основы Git
Version Control Server
Пройдите по ссылке и скачайте установщик для вашей операционной системы.
Git - это распределенное серверное решение для автоматизации контроля версий программного обеспечения.
Git позволяет отслеживать изменения в вашем проекте и создавать слепки этих изменений, называемые коммитами (commits).
В основе работы с git лежит так называемый репозиторий. Фактически это папка с проектом в которой находится код нашей программы. Git умеет видеть какие файлы мы добавляем в него и как эти файлы меняются со временем.
Таким образом мы знаем кто и когда вносит изменения в наш проект, если мы работаем с ним не в одиночку. Это очень удобно.
Gitverse - это лишь система для распределенного управления репозиториями на основе git.
В данной статье мы не будем подробно разбирать структуру и список команд для Git, а лишь перечислим те, которые понадобятся для начала работы. Для дальнейшего изучения Git рекомендуется прочитать следующую статью.
Пришло время для испытаний.
Чем так знаменита функция LeftPad
Очень вероятно, что вам приходилось слышать про NodeJS - это платформа для серверной разработки на языке JavaScript.
В недалеком прошлом произошел исключительный случай в экосистеме пакетов для NodeJS - npm.
Один из разработчиков удалил пакет с одной единственной функцией left_pad. Она дополняет строку до нужной длины слева и заполняет эти позиции символом заполнителем. Простая функция на 10 строк кода. Но неожиданно на эту функцию и пакет опирались многие другие пакеты в npm.
Удаление пакета привело к поломке большого количества связанных репозиториев. В том числе, таких крупных как React. Этот случай серьезно подорвал доверие разработчиков к системе npm.
В Go эту проблему можно решать несколькими способами. Одним из них является концепция вендоринга. А также созданием своего прокси сервера для пакетов.
LeftPad
Попробуем написать подобную функцию для демонстрации того, как можно использовать Gitverse для публикации своего кода.
Структура модуля
Создайте новую папку с названием str. В ней мы будем храниться весь исходный код приложения.
Далее нужно создать новый репозиторий git с помощью команды
git init
Наш репозиторий должен быть каким-то образом быть связан с удаленным репозиторием gitverse.
Сделать это можно с помощью команды:
git remote add origin https://gitverse.ru/sc/[username]/src.git
Теперь пришло время для наполнения проекта кодом.
В терминале выполните команду
go mod init gitverse.ru/sc/[myusername]/str
Где myusername замените на ваше имя пользователя в Gitverse.
После выполнения этой команды в папке появится файл go.mod. Это файл для описания зависимостей вашего проекта.
Создайте файл .gitignore и напишите туда те названия файлов, которые не должны отслеживаться системой контроля версий.
Для проекта на Go есть шаблон файла gitignore:
Можете взять его и скопировать к себе.
Далее создаем папку examples, в которой будем размещать код для локального тестирования наших новых функций. Внутри данной папки нужно поместить файл main.go со следующим содержимым:
Этот код вы сможете запустить позже, чтобы убедиться в работоспособности наших функций.
Финальное дерево проекта будет выглядеть примерно так:
Добавим файл str.go, в который поместим исходных код для функции LeftPad.
В нем напишем функцию со следующим кодом:
Функция использует пакет string и в частности Builder для оптимального и производительного заполнения строки до нужной длины.
Также в коде вы сможете познакомиться с тестами и бенчмарками. Тестирование мы рассмотрим в одной из следующих статей.
Последнее действие
Осталось открыть наш код для публичного доступа.
Для этого нужно совершить финальные штрихи.
Добавить код на удаленный репозиторий в Gitverse.
В терминале введите ряд команд:
- git add .
Эта команда добавляет все файлы в индекс git.
- git commit -m "left pad function"
Так мы создаем комит с сообщением, в котором описываем чтобы было добавлено.
- git push --set-upstream origin master
При выполнении последней команды система попросить ввести пароль. Это пароль от вашей учетной записи в Gitverse.
Ниже приводится ссылка на полный исходный код из данной статьи.
Код из данной статьи
Пожелаем успехов компании СберТех в развитии решения Gitverse.