Кіріспе

Жүйе, қолданба немесе компонент құру үшін пайдаланылатын бастапқы код жинағы – бағдарламалық жүйелердің бастапқы коды. Бағдарламалық қамтамасыз етуді әзірлеуде код базасы (немесе кодтық база) – нақты бағдарламалық жүйе, қолданба немесе бағдарламалық компонент құруға қолданылатын бастапқы кодтардың жиынтығы. Әдетте, код базасына тек адам жазған бастапқы кодтың жүйелік файлдары ғана кіреді; сондықтан, құралдармен (туынды файлдар) немесе бинарлық кітапхана файлдарымен (объект файлдарымен) жасалған бастапқы код файлдары әдетте код базасына кірмейді, себебі оларды адам жазған бастапқы кодтан жасауға болады. Дегенмен, ол әдетте конфигурациялық және қасиеттік файлдарды қамтиды, өйткені олар құрастыру үшін қажетті деректер болып табылады. Код базасы әдетте нұсқаны басқару жүйесіндегі бастапқы кодты сақтау орнында сақталады. Бастапқы кодты сақтау орны – бастапқы кодтың көп көлемін қоғамдық немесе жеке түрде сақтайтын орын. Бастапқы кодты сақтау орындары негізінен сақтық көшірме жасау және нұсқаларды басқару үшін, сондай-ақ бірнеше әзірлеуші қатысқан жобаларда әртүрлі бастапқы код нұсқаларын басқару және әзірлеушілер енгізген өзгерістердің қайшылықтарын шешу үшін қолданылады. Subversion, Git және Mercurial – осы процесті басқаруға қолданылатын танымал құралдардың мысалдары, олар ашық кодты жобаларда кеңінен таралған. Кішігірім жобалар үшін оның коды басқарылмайтын файлдар жиынтығы ретінде сақталуы мүмкін (Linux ядросы да көп жылдар бойы файлдар жиынтығы ретінде сақталған).

Жеке және монолитті кодтық базалар

Бірнеше жобада жеке, ерекше код базалары болуы мүмкін немесе бір, ортақ немесе монолитті код базасы болуы мүмкін. Бұл, әсіресе, бір компанияда жасалатын жобалар сияқты байланысты жобалар үшін маңызды. Толығырақ айтқанда, монолиттік код қоры әдетте бір қойманы (барлық кодты бір жерде) және жиі ортақ құрылыс жүйесін немесе ортақ кітапханаларды қамтиды. Код базасы ортақ немесе бөлінгендігі жүйелік архитектураға және нақты құрастыру нәтижелеріне байланысты емес; сондықтан даму процесіне байланысты монолиттік код базасы бағдарламалық жасақтама архитектурасына немесе бір монолиттік бинарлық жүйеге байланысты монолиттік жүйені білдірмейді. Нәтижесінде монолиттік код базасы тек бір жүйе немесе бір бинарлық кодты ғана алып жүрудің орнына жеке компоненттерден тұрады; үлестірілген код базасы (көп компоненті бар) бір монолиттік жүйе немесе тіпті бір бинарлық кодты құру үшін пайдаланылуы мүмкін. Мысалы, Linux ядросы архитектуралық жағынан бір монолиттік ядро болып табылады, бірақ ол жеке бинарлық файлдардан (жүктене алатын компоненттерден) тұрады және бірнеше бөлінген қоймаларда әзірленеді. Монолиттік код базасының үлестірілген код базасымен салыстырғанда артықшылықтары мен кемшіліктері бар. Ең қарапайым түсіндірсек, монолиттік код базасы әр түрлі компоненттерге интеграциялау өзгерістерін жеңілдетеді немесе компоненттер арасындағы кодты қайта құруды оңай және атомдық түрде жүзеге асырады, сондай-ақ бүкіл код базасында операцияларды жүргізуге мүмкіндік береді, бірақ үлкен қойманы қажет етеді және кең ауқымды техникалық қарызды енгізуді жеңілдетеді. Жеке код базасы немесе үлестірілген код базасы жеке қоймаларды кішірейтіп, басқаруға ыңғайлы етеді, сонымен бірге компоненттер арасындағы бөлінуді қамтамасыз етеді, бірақ ол сондай-ақ код базалары арасындағы интеграцияны (немесе негізгі қоймамен) талап етеді және бірнеше код базаларын қамтитын өзгерістерді қиындатады. Стандарттар тұрғысынан алғанда, бірнеше код базаларын "ерекше" деп атау ортақ бастапқы кодсыз тәуелсіз іске асырулар бар екенін және тарихи тұрғыдан бұл іске асырулар ортақ жобадан туындамағанын көрсетеді. Бұл белгілі бір стандартты іске асыратын екі тәуелсіз бағдарламалық жасақтаманы көрсету арқылы өзара іс-қимыл қабілеттілігін көрсету тәсілі болуы мүмкін.