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