Jump to content

Кодовая база

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

База кода обычно хранится в версий репозитории системы контроля . Репозиторий исходного кода — это место, где хранятся большие объемы исходного кода, как публично, так и конфиденциально. Репозитории исходного кода в основном используются для резервного копирования и управления версиями, а также в проектах с участием нескольких разработчиков для обработки различных версий исходного кода и оказания помощи в разрешении конфликтов, возникающих из-за того, что разработчики отправляют перекрывающиеся изменения.

Subversion , Git и Mercurial — примеры популярных инструментов, используемых для управления этим рабочим процессом, которые часто встречаются в проектах с открытым исходным кодом.

Для небольших проектов его код может храниться как неуправляемый набор файлов (даже ядро ​​Linux многие годы поддерживалось как набор файлов). [1]

Раздельные и монолитные кодовые базы

[ редактировать ]

Несколько проектов могут иметь отдельные, отдельные базы кода или могут иметь единую, общую или монолитная кодовая база . Это особенно актуально для связанных проектов, например, разработанных в рамках одной компании. Более подробно, монолитная кодовая база обычно предполагает наличие единого репозитория (весь код в одном месте) и часто общей системы сборки или общих библиотек. Будет ли кодовая база общей или разделенной, не зависит от архитектуры системы и фактических результатов сборки; таким образом, монолитная кодовая база, связанная с фактической разработкой, не влечет за собой монолитную систему , связанную с архитектурой программного обеспечения, или один монолитный двоичный файл. В результате монолитная кодовая база может и (для больших кодовых баз) часто будет состоять из отдельных компонентов, а не содержать только одну систему или один двоичный файл; распределенная кодовая база (с несколькими компонентами) может использоваться для создания единой монолитной системы или даже одного двоичного файла. Например, ядро ​​Linux архитектурно представляет собой единое монолитное ядро , но оно состоит из отдельных двоичных файлов (загружаемых компонентов) и разрабатывается в нескольких распределенных репозиториях.

У монолитной кодовой базы есть как преимущества, так и недостатки по сравнению с распределенной кодовой базой. [2] [3] Проще говоря, монолитная кодовая база упрощает интеграцию — «изменения в различных компонентах или рефакторинг кода между компонентами можно выполнять легко и атомарно» — и позволяет выполнять операции по всей кодовой базе, но требует более крупного репозитория и упрощает введение широкого спектра технических долгов. . [ сомнительно обсудить ] Отдельная кодовая база или распределенная кодовая база делают отдельные репозитории меньшими и более управляемыми, обеспечивая в то же время разделение между компонентами, но также требует интеграции между кодовыми базами (или с основным репозиторием) и усложняет изменения, охватывающие несколько кодовых баз. [4]

С точки зрения стандартов, называние нескольких баз кода «отдельными» означает, что существуют независимые реализации без общего исходного кода и что исторически эти реализации не возникли из общего проекта. Это может быть способом демонстрации совместимости путем демонстрации двух независимых программ, реализующих данный стандарт. [ сомнительно обсудить ]

Некоторые особенно большие базы кода включают:

  • Google : монолитный, 1 миллиард файлов, 9 миллионов файлов исходного кода, 2 миллиарда строк исходного кода, всего 35 миллионов коммитов, общий размер 86 ​​ТБ (январь 2015 г.) [5]
  • Facebook : монолитный, 8 ГБ (репо 54 ГБ, включая историю, 2014 г.), [6] сотни тысяч файлов (2014) [3]
  • Ядро Linux : распределенное, [7] более 15 миллионов строк кода (по состоянию на 2013 год) и версия ядра 3.10)

См. также

[ редактировать ]
  1. ^ «Краткая история Git» . git-scm.com . Проверено 21 октября 2014 г.
  2. ^ Дж. Дэвид Моргенталер; Миша Гриднев; Ралука Саучук и Санджай Бхансали (2012). «Поиск накопительного долга: опыт управления техническим долгом в Google» . Материалы третьего международного семинара по управлению техническим долгом . IEEE. стр. 1–6. дои : 10.1109/MTD.2012.6225994 .
  3. ^ Jump up to: а б «Масштабирование Mercurial в Facebook» . Код Фейсбука . 07.01.2014 . Проверено 29 апреля 2016 г.
  4. ^ «Git — распределенные рабочие процессы» . git-scm.com . Проверено 29 апреля 2016 г.
  5. ^ Потвин, Рэйчел; Левенберг, Джош (24 июня 2016 г.). «Почему Google хранит миллиарды строк кода в одном репозитории» . Коммуникации АКМ . 59 (7): 78–87. дои : 10.1145/2854146 .
  6. ^ @feross (24 апреля 2014 г.). «Гит-репозиторий Facebook занимает 54 ГБ» ( твит ) . Проверено 29 апреля 2016 г. - через Twitter .
  7. ^ Спроролл, Ли; Мун, Джэ Юн (05.11.2000). «Суть распределенной работы: Случай ядра Linux — Луна — Первый понедельник» . Первый понедельник . 5 (11) . Проверено 29 апреля 2016 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d339075d557dc106d7ea6ad3bc0fb73d__1709264160
URL1:https://arc.ask3.ru/arc/aa/d3/3d/d339075d557dc106d7ea6ad3bc0fb73d.html
Заголовок, (Title) документа по адресу, URL1:
Codebase - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)