Кіріспе
Жүйе, қолданба немесе компонент құру үшін пайдаланылатын бастапқы код жинағы – бағдарламалық жүйелердің бастапқы коды. Бағдарламалық қамтамасыз етуді әзірлеуде код базасы (немесе кодтық база) – нақты бағдарламалық жүйе, қолданба немесе бағдарламалық компонент құруға қолданылатын бастапқы кодтардың жиынтығы. Әдетте, код базасына тек адам жазған бастапқы кодтың жүйелік файлдары ғана кіреді; сондықтан, құралдармен (туынды файлдар) немесе бинарлық кітапхана файлдарымен (объект файлдарымен) жасалған бастапқы код файлдары әдетте код базасына кірмейді, себебі оларды адам жазған бастапқы кодтан жасауға болады. Дегенмен, ол әдетте конфигурациялық және қасиеттік файлдарды қамтиды, өйткені олар құрастыру үшін қажетті деректер болып табылады. Код базасы әдетте нұсқаны басқару жүйесіндегі бастапқы кодты сақтау орнында сақталады. Бастапқы кодты сақтау орны – бастапқы кодтың көп көлемін қоғамдық немесе жеке түрде сақтайтын орын. Бастапқы кодты сақтау орындары негізінен сақтық көшірме жасау және нұсқаларды басқару үшін, сондай-ақ бірнеше әзірлеуші қатысқан жобаларда әртүрлі бастапқы код нұсқаларын басқару және әзірлеушілер енгізген өзгерістердің қайшылықтарын шешу үшін қолданылады. Subversion, Git және Mercurial – осы процесті басқаруға қолданылатын танымал құралдардың мысалдары, олар ашық кодты жобаларда кеңінен таралған. Кішігірім жобалар үшін оның коды басқарылмайтын файлдар жиынтығы ретінде сақталуы мүмкін (Linux ядросы да көп жылдар бойы файлдар жиынтығы ретінде сақталған).
the source code of software systems
In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human written source code system files; thus, a codebase usually does not include source code files generated by tools (generated files) or binary library files (object files), as they can be built from the human written source code. However, it generally does include configuration and property files, as they are the data necessary for the build. A codebase is typically stored in a source control repository in a version control system. A source code repository is a place where large amounts of source code are kept, either publicly or privately. Source code repositories are used most basically for backups and versioning, and on multi developer projects to handle various source code versions and to provide aid in resolving conflicts that arise from developers submitting overlapping modifications. Subversion, Git and Mercurial are examples of popular tools used to handle this workflow, which are common in open source projects. For smaller projects, its code may be kept as a non managed set of files (even the Linux kernel was maintained as a set of files for many years).
Жеке және монолитті кодтық базалар
Бірнеше жобада жеке, ерекше код базалары болуы мүмкін немесе бір, ортақ немесе монолитті код базасы болуы мүмкін. Бұл, әсіресе, бір компанияда жасалатын жобалар сияқты байланысты жобалар үшін маңызды. Толығырақ айтқанда, монолиттік код қоры әдетте бір қойманы (барлық кодты бір жерде) және жиі ортақ құрылыс жүйесін немесе ортақ кітапханаларды қамтиды. Код базасы ортақ немесе бөлінгендігі жүйелік архитектураға және нақты құрастыру нәтижелеріне байланысты емес; сондықтан даму процесіне байланысты монолиттік код базасы бағдарламалық жасақтама архитектурасына немесе бір монолиттік бинарлық жүйеге байланысты монолиттік жүйені білдірмейді. Нәтижесінде монолиттік код базасы тек бір жүйе немесе бір бинарлық кодты ғана алып жүрудің орнына жеке компоненттерден тұрады; үлестірілген код базасы (көп компоненті бар) бір монолиттік жүйе немесе тіпті бір бинарлық кодты құру үшін пайдаланылуы мүмкін. Мысалы, Linux ядросы архитектуралық жағынан бір монолиттік ядро болып табылады, бірақ ол жеке бинарлық файлдардан (жүктене алатын компоненттерден) тұрады және бірнеше бөлінген қоймаларда әзірленеді. Монолиттік код базасының үлестірілген код базасымен салыстырғанда артықшылықтары мен кемшіліктері бар. Ең қарапайым түсіндірсек, монолиттік код базасы әр түрлі компоненттерге интеграциялау өзгерістерін жеңілдетеді немесе компоненттер арасындағы кодты қайта құруды оңай және атомдық түрде жүзеге асырады, сондай-ақ бүкіл код базасында операцияларды жүргізуге мүмкіндік береді, бірақ үлкен қойманы қажет етеді және кең ауқымды техникалық қарызды енгізуді жеңілдетеді. Жеке код базасы немесе үлестірілген код базасы жеке қоймаларды кішірейтіп, басқаруға ыңғайлы етеді, сонымен бірге компоненттер арасындағы бөлінуді қамтамасыз етеді, бірақ ол сондай-ақ код базалары арасындағы интеграцияны (немесе негізгі қоймамен) талап етеді және бірнеше код базаларын қамтитын өзгерістерді қиындатады. Стандарттар тұрғысынан алғанда, бірнеше код базаларын "ерекше" деп атау ортақ бастапқы кодсыз тәуелсіз іске асырулар бар екенін және тарихи тұрғыдан бұл іске асырулар ортақ жобадан туындамағанын көрсетеді. Бұл белгілі бір стандартты іске асыратын екі тәуелсіз бағдарламалық жасақтаманы көрсету арқылы өзара іс-қимыл қабілеттілігін көрсету тәсілі болуы мүмкін.