Скачиваний:
0
Добавлен:
25.02.2026
Размер:
156.36 Кб
Скачать

11-lekciya. Programmalıq támiynat konfiguraciyasın basqarıw.

Jobası:

1.Konfiguraciyanı basqarıw (SCM) túsinigi hám onıń sapaǵa tásiri.

2.Versiyalardı qadaǵalaw (VCS): Git, Branching modelleri (GitFlow).

3.Ózgerislerdi basqarıw (Change Management) hám Base-line.

4.Avtomatlastırılǵan jıynaw hám Konfiguraciya auditı.

SCM: Tártipsizlikten tártipke

Programmalıq támiynat konfiguraciyasın basqarıw (Software Configuration Management - SCM) – bul programmalıq ónimniń ómirlik cikli dawamında onıń elementleriniń (kod, hújjetler, testler) pútinligin saqlaw, ózgerislerdi qadaǵalaw hám versiyalardı basqarıw procesi. Úlken proektlerde júdá kóp fayllar, mıńlaǵan kod qatarları hám onlaǵan programmistler boladı. Eger SCM bolmasa, "xaos" baslanadı: kim qaysı fayldı ózgertkeni belgisiz boladı, eski versiyalar joǵaladı, bir programmisttiń jumısı ekinshisin óshirip jiberedi. SCM – bul programmalıq injeneriyanıń "tártip saqlawshısı". SCM-diń tiykarǵı maqseti – "Konfiguraciyanıń pútinligi"n (Configuration Integrity) támiyinlew. Konfiguraciya – bul programmalıq ónimniń anıq bir waqıttaǵı jaǵdayın sıpatlaytuǵın elementler jıynaǵı (mısalı, "v1.0 versiyası"). SCM bizge qálegen waqıtta ótken versiyaǵa (mısalı, bir ay burınǵı jumıs islep turǵan jaǵdayǵa) qaytıw imkaniyatın beredi. Bul "qáwipsizlik kópshigi" wazıypasın atqaradı: eger jańa ózgeris qáte alıp kelse, biz onı tezlik penen biykar ete alamız (Rollback).

SCM tórt tiykarǵı is-háreketti óz ishine aladı: 1) "Identifikaciya" – konfiguraciya elementlerin (fayllar, moduller) anıqlaw hám olarǵa unikal atamalar beriw. 2) "Qadaǵalaw" (Control) – ózgerislerdiń sankciyalanıwın (ruqsat etiliwin) hám versiyalanıwın támiyinlew. 3) "Esabat beriw" (Status Accounting) – qaysı element qashan hám kim tárepinen ózgertilgeni haqqında maǵlıwmat beriw. 4) "Audit" – konfiguraciyanıń talaplarǵa sáykesligin tekseriw.

Sapa támiyinlew (SQA) ushın SCM-diń áhmiyeti oǵada zor. Eger biz qaysı versiyada qáte tabılǵanın bilmesek, onı ońlaw qıyın boladı. Eger biz testlew ushın qaysı versiyanı alǵanımızdı bilmesek, test nátiyjeleri isenimsiz boladı. SCM "Reproducibility" (Qayta jaratıw) qásiyetiniń tiykarı – yaǵnıy, biz qálegen waqıtta eski versiyanı dál ózindey etip qayta jıynap (build) shıǵarıwımız kerek.

Versiyalardı qadaǵalaw hám Git

SCM-diń eń tiykarǵı texnikalıq quralı – bul "Versiyalardı qadaǵalaw sisteması" (Version Control System - VCS). Búgingi kúnde eń keń tarqalǵan VCS

– bul "Git". Git "bólistirilgen" (Distributed) sistema bolıp, hár bir programmisttiń kompyuterinde proekttiń tolıq tariyxı saqlanadı. Bul komandanıń internet joq waqıtta da islewge hám keyinirek ózgerislerdi sinxronizaciyalawǵa imkaniyat beredi. Burınǵı oraylasqan sistemalar (SVN) menen salıstırǵanda, Git júdá tez hám iykemli.

Git-tegi eń áhmiyetli túsinik – "Branching" (Tarmaqlanıw). Tiykarǵı kod (Main yamasa Master tarmaǵı) bárqulla turaqlı hám jumıs islep turǵan halatta bolıwı kerek. Jańa funkciyalar yamasa qátelerdi ońlaw ushın programmistler "Feature Branch" (Jumıs tarmaǵı) jaratadı. Jumıs pitkennen keyin, bul tarmaq tiykarǵı tarmaqqa "Birlestiriledi" (Merge). Bul process "Pull Request" (PR) arqalı ámelge asadı, yaǵnıy kod tiykarǵı bazaga qosılmastan burın basqa programmistler tárepinen tekseriledi (Code Review). SCM-de "Branching strategiyaları" (mısalı, GitFlow, GitHub Flow) qollanıladı. GitFlow modelinde eki uzaq múddetli tarmaq bar: "Master" (relizler ushın) hám "Develop" (islep shıǵıw ushın). Jańa wazıypalar "Develop"tan alınadı, pitkennen soń oǵan qaytadı. Relizge tayarlıq waqtında "Release" tarmaǵı jaratıladı. Qáteler "Hotfix" tarmaǵında ońlanadı. Bul struktura úlken komandalardaǵı paralell jumıstı tártiplestiredi.

VCS tek kodtı ǵana emes, al "Konfiguraciya faylların" (Infrastructure as Code) da basqarıwı kerek. Biraq parollar, API giltleri hám úlken binar fayllar (video, súwret) Git-ke kirgizilmewi kerek (.gitignore). Sapa ushın áhmiyetlisi – hár bir ózgeris (Commit) mánisli kommentariyge iye bolıwı hám anıq bir wazıypaǵa (Jira ticket) baylanısıwı shárt. "Traceability" (Izge tusiw) – sapanıń belgisi.

Ózgerislerdi basqarıw (Change Management)

Programmalıq támiynatqa ózgeris kirgiziw – bul qáwipli process. Jańa kod qosqanda, eski kodtıń buzılıw (Regression) itimalı bar. Sol sebepli, SCM processinde "Ózgerislerdi basqarıw" (Change Management) proceduraları qollanıladı. Hár bir ózgeris (Change Request - CR) rásmiy túrde dizimge alınıwı, analizleniwi hám tastıyıqlanıwı (Change Control Board - CCB tárepinen) kerek. Kishi proektlerde bul process jeńil (PR review), al úlken sistemalarda qatań boladı.

Ózgerislerdi basqarıwda "Bazalıq sızıq" (Baseline) túsinigi zárúr. Baseline

– bul konfiguraciyanıń tastıyıqlanǵan hám tolıq versiyası (mısalı, v1.0 Reliz). Baseline jaratılǵannan keyin, oǵan tek rásmiy ózgeris sorawı (CR) arqalı ǵana

ózgeris kirgiziwge boladı. Baseline bizge "turaqlılıq noqatın" beredi. Biz testlewdi baseline ústinde ótkizemiz. Eger testlew waqtında kod ózgere berse, test nátiyjeleri mánissiz boladı.

SCM sapa menen "Issue Tracking" (Maselelerdi qadaǵalaw) sistemaları (Jira, Bugzilla) arqalı baylanısadı. Qáte tabılǵanda, ol sistemaǵa jazıladı. Programmist qáteni ońlaǵanda, óz commit-in sol qáte nomeri menen baylanıstıradı. SCM bul baylanıstı (Link) saqlaydı. Nátiyjede biz "Bul versiyada qanday qáteler ońlandı?" hám "Bul kod qaysı qáteni ońlaw ushın jazıldı?" degen sorawlarǵa anıq juwap ala alamız. Ózgerislerdi basqarıw processinde "Konfiguraciyalıq elementler" (CI - Configuration Items) anıqlanadı. Bul – basqarılatuǵın eń kishi birlik (fayl, modul, hújjet). SCM hárbir CI-dıń versiyasın, statusın (draft, review, approved) hám baylanısların qadaǵalaydı. Mısalı, eger "Talaplar hújjeti" ózgerse, oǵan baylanıslı "Test scenariyleri" hám "Kod modulleri" de qayta kóriliwi kerek. Bul "Impact Analysis" (Tásirdi analizlew) dep ataladı.

Avtomatlastırılǵan jıynaw hám Audit

Zamanagóy SCM procesi "Avtomatlastırılǵan jıynaw" (Automated Build) hám "Úziliksiz integraciya" (CI - Continuous Integration) menen tawsıladı. Kod VCS-ke túsiwi menen, CI server (Jenkins, GitLab CI) onı avtomat túrde aladı, kompilyaciya etedi, testleydi hám "Artefakt" (Orınlanıwshı fayl) jaratadı. Bul artefakt te versiyalanadı (mısalı, build #123). Bul process "adam faktorın" (qol menen jıynawdaǵı qátelerdi) joq etedi hám hárbir versiyanıń sapasına kepillik beredi. Konfiguraciya auditı (Configuration Audit) – bul SCM processleriniń durıs islep atırǵanın tekseriw. Audit eki túrli boladı: 1) "Fizikalıq audit" (PCA) – barlıq elementler (kod, hújjet, manual) paketke kirdi me? Versiyalar durıs pa? 2) "Funkcional audit" (FCA) – konfiguraciya elementleri talaplarǵa sáykes kele me? Test nátiyjeleri durıs pa? Audit ádette relizden aldın ótkeriledi (Sertifikatlaw procesiniń bir bólegi).

SCM "Dependency Management" (Ǵárezlilikti basqarıw) ti de qamtıydı. Zamanagóy programmalar júzlegen sırtqı kitapxanalardan (Libraries) turadı. Bul kitapxanalardıń versiyaların basqarıw (Maven, NPM, Pip) – qáwipsizlik hám turaqlılıq ushın zárúr. Eger bir kitapxana jańalansa hám biziń kod penen úylespese, sistema buzıladı. SCM bul ǵárezliliklerdiń "lock files" (qulıplanǵan versiyalar) arqalı turaqlı bolıwın támiyinleydi. Juwmaqlap aytqanda, SCM – bul programmalıq támiynattıń "tariyxshısı" hám "kitapxanashısı". Ol bizge proekttiń ótkenin (versiyalar), búgingisin (status) hám keleshegin (ózgerisler) basqarıwǵa imkaniyat beredi. Sapalı SCM bolmasa, sapalı komandalıq jumıs hám sapalı ónim bolıwı múmkin emes. "Kod – bul aktiv, al SCM – bul aktivti qorǵawshı bank".

BAQLAW SORAWLARÍ:

1.Konfiguraciyanı basqarıw (SCM) procesiniń tiykarǵı tórt is-háreketi qaysılar?

2.Git versiyalardı qadaǵalaw sistemasınıń (VCS) "Bólistirilgen" (Distributed) bolıwı neni ańlatadı?

3."Bazalıq sızıq" (Baseline) túsinigi ózgerislerdi basqarıwda qanday rol oynaydı?

4.GitFlow tarmaqlanıw modelinde "Master" hám "Develop" tarmaqlarınıń wazıypası qanday?

5.Konfiguraciya auditı (Fizikalıq hám Funkcional) ne ushın kerek?

Соседние файлы в папке Programmalıq támiynat sapasın támiyinlew