Ответ 1
Ядром Github является программное обеспечение с открытым исходным кодом git
, которое является распределенным управлением версиями и программным обеспечением для управления исходным кодом. Github добавляет множество функций в функциональность git
, включая отслеживание проблем, вики, контроль доступа и т.д.
Однако Github - это проприетарное программное обеспечение, и многие из его внутренних компонентов остаются неизвестными широкой общественности.
Чтобы узнать, как штуки подходят друг к другу, я предлагаю следующие ссылки ниже:
- Официальный технический блог Github, который охватывает широкий круг тем, посвященных дизайну платформы.
- особенно в этой статье, обширный обзор, написанный техническим директором Github.
- Проекты, которые поддерживают Github, официально кураторский список проектов с открытым исходным кодом, которые управляют Github. Вот несколько основных моментов:
- рельсы - веб-сервер
- jekyll - движок блога за страницами Github
- elasticsearch - поисковая система
- hubot - бот-чат для автоматизации задач
- ace - редактор кода на основе browswer
- d3 - js lib для графиков и диаграмм
- resque - фоновые работы
- GitLab, альтернатива GITUB с открытым исходным кодом, которая предлагает практически те же функциональные возможности.
- Прочитайте исходный код GitLab, и вы узнаете, как работает GitLab (и Github) под капотом.
- Обзор архитектуры GitLab. Эта статья, безусловно, хорошая точка входа.
Я украл схему компоновки системы из Обзор архитектуры Gitlab. Ставка на то, что вы уже знаете, как работает gitlab с этой диаграммы.
(Конечно, есть большая разница между Github и GitLab. Но проект с открытым исходным кодом всегда лучше для тех, кто хочет учиться, не так ли?)