Найти тему
Golang с 0

Gitverse - Новый github. Версионирование кода.

Оглавление

Российский аналог Github уже здесь! Попробуем на практике решение от СберТех для контроля версий программного обеспечения.

Статья предназначена для начинающих разработчиков. В ней познакомимся и попробуем на вкус отечественный ответ популярной сети для обмена кодом - Github.

А также поверхностно посмотрим на систему контроля версий Git. Это руководство поможет вам в первый раз создать новый проект и сделать его публично доступным другим людям. Аналогичным способом как это делается в Github.

-2

Мы напишем небольшой пакет на Go, в котором добавим функцию LeftPad. Эта функция позволяет получить строку, которая дополняется символами заполнителями до нужной длины.

-3

И выложим этот код на Gitverse.

О появлении отечественного аналога Github разговоры велись довольно давно. И наконец дело дошло до финального результата. СберТех — дочерняя компания ПАО Сбербанк выпустила готовую версию под названием Gitverse.

Официальная новость

https://sbertech.ru/blog/p/razrabotchiki-poluchili-dostup-k-git-verse-platforme-dlya-sovmestnoj-razrabotki-i-hostinga-koda

Gitverse

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

GitHub — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки

Любой человек может поделиться своим кодом с другими людьми.

Github.com не единственное решение для обмена и хранения кода в Интернете. Из популярных аналогов можно привести Gitlab.com.

Итак, давайте наконец познакомимся с Gitverse поближе.

GitVerse

Вот как выглядит Gitverse на момент запуска:

-4

Все довольно просто и лаконично.

Справа список ваших проектов — они называются репозиториями.

В разделе Активность показывается ваша ежедневная активность по календарю. А снизу история ваших действий по каждому из репозиториев.

Начало работы

Шаг 1 - Регистрация

Для начала работы с Gitverse необходимо зарегистрироваться. На выбор есть два варианта:

  • Сбер ID
  • Cloud.ru

Выберем первый вариант. После этого нужно будет пройти процедуру авторизации через Сбер ID.

Итак, мы наконец вошли в Gitverse.

Установим пароль для нашей учетного записи. В будущем вы сможете использовать два варианта авторизации:

1) По логину и паролю

2) По Сбер ID

Смена пароля

В правом верхнем углу нажмите на иконку аватара и выберите пункт меню Настройки

-5

Откроется экран Настроек. В нем выберите пункт — Аккаунт.

-6

Далее введите новый пароль и запомните его.

Шаг 2

После завершения регистрации нужно создать новый репозиторий.

Для этого нажмите на кнопку Добавить в верхней части экрана.

-7

Далее выбираем пункт — Новый репозиторий.

Откроется следующая форма.

Создание нового репозитория

Здесь нужно заполнить название репозитория. Напишите str.

Все остальные пункты можно оставить по умолчанию.

-8

Шаг 3

После нажатия на кнопку Создать будут показаны следующие команды:

-9

Для заполнения нашего репозитория нам понадобится установленный клиент Git.

Их мы введем когда напишем код для нашего проекта.

Основы Git

Version Control Server

Пройдите по ссылке и скачайте установщик для вашей операционной системы.

Git

Git - это распределенное серверное решение для автоматизации контроля версий программного обеспечения.

Git позволяет отслеживать изменения в вашем проекте и создавать слепки этих изменений, называемые коммитами (commits).

В основе работы с git лежит так называемый репозиторий. Фактически это папка с проектом в которой находится код нашей программы. Git умеет видеть какие файлы мы добавляем в него и как эти файлы меняются со временем.

Таким образом мы знаем кто и когда вносит изменения в наш проект, если мы работаем с ним не в одиночку. Это очень удобно.

Gitverse - это лишь система для распределенного управления репозиториями на основе git.

В данной статье мы не будем подробно разбирать структуру и список команд для Git, а лишь перечислим те, которые понадобятся для начала работы. Для дальнейшего изучения Git рекомендуется прочитать следующую статью.

Git - Book

Пришло время для испытаний.

Чем так знаменита функция 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:

golng/template: Шаблон проекта на языке Go

Можете взять его и скопировать к себе.

Далее создаем папку examples, в которой будем размещать код для локального тестирования наших новых функций. Внутри данной папки нужно поместить файл main.go со следующим содержимым:

-10

Этот код вы сможете запустить позже, чтобы убедиться в работоспособности наших функций.

Финальное дерево проекта будет выглядеть примерно так:

-11

Добавим файл str.go, в который поместим исходных код для функции LeftPad.

В нем напишем функцию со следующим кодом:

-12

Функция использует пакет string и в частности Builder для оптимального и производительного заполнения строки до нужной длины.

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

Последнее действие

Осталось открыть наш код для публичного доступа.

Для этого нужно совершить финальные штрихи.

Добавить код на удаленный репозиторий в Gitverse.

В терминале введите ряд команд:

  • git add .

Эта команда добавляет все файлы в индекс git.

  • git commit -m "left pad function"

Так мы создаем комит с сообщением, в котором описываем чтобы было добавлено.

  • git push --set-upstream origin master

При выполнении последней команды система попросить ввести пароль. Это пароль от вашей учетной записи в Gitverse.

Ниже приводится ссылка на полный исходный код из данной статьи.

Код из данной статьи

golng/str

Пожелаем успехов компании СберТех в развитии решения Gitverse.

До новых встреч!