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

10-ámeliy jumıs. Programmalıq támiynattı konstrukciyalawdı basqarıw.

Jumıstıń maqseti: Kod jazıw procesin basqarıw quralları hám usılları menen tanıw. Git (Version Control System) tiykarları, Branching (Tarmaqlanıw) strategiyaları (GitFlow), Code Review (Kodqa sholıw) procesi hám CI/CD (Úziliksiz integraciya) túsiniklerin ámeliyatta qollanıw. Komandada islesiw mádeniyatın qáliplestiriw.

Teoriyalıq bólim:

VCS (Git): Kodtıń tariyxın saqlaw.

Branching: `main` (turaqlı) hám `feature` (jumıs) tarmaqları.

Code Review: Kodtı basqa adamǵa teksertiw.

CI (Continuous Integration): Avtomat testlew hám jıynaw.

ÁMELIY BÓLIM:

Git buyrıqları hám processlerin simulyaciya etemiz.

1-mısal: Git tiykarları

Másele: Proektti baslaw hám saqlaw.

Komandalar:

git init

(Repozitoriy jaratıw)

git add .

(Fayllardı baqlawǵa alıw)

git commit -m "Initial commit" (Saqlaw)

2-mısal: Tarmaqlanıw (Feature Branch)

Másele: Jańa funkciya (Login) qosıw, biraq tiykarǵı kodtı buzbaw.

Komandalar:

git checkout -b feature/login (Jańa tarmaq ashıw)

// Kod jazıw...

git commit -m "Login qosıldı"

git checkout main (Tiykarǵı tarmaqqa qaytıw)

git merge feature/login

(Birlestiriw)

 

 

3-mısal: Konfliktti sheshiw (Merge Conflict) Másele: Eki adam bir fayldıń bir qatarın ózgertti.

Fayl (Conflict):

<<<<<<< HEAD print("Hello World");

=======

print("Sálem Álem");

>>>>>>> feature/ozgeshe

Sheshim: Biz qaysı birin qaldırıwdı tańlaymız hám markerlerdi óshiremiz.

Kod (Sheshilgen):

print("Sálem Álem"); // Ózgeshe bolsın git add .

git commit -m "Konflikt sheshildi"

4-mısal: Code Review (Simulyaciya) Programmist A jazdı:

void f() { int a=5; } // Atı jaman

Programmist B (Reviewer) kommentariy jazdı:

"Funkciya atın `calculate()` dep, `a` nı `count` dep ózgertiń."

Programmist A dúzetti:

void calculate() { int count=5; }

B: "LGTM (Looks Good To Me) - Maqullayman."

5-mısal: CI (Jenkins/GitHub Actions)

`Makefile` yamasa skript arqalı avtomat tekseriw.

Script (test.sh):

g++ main.cpp -o app

./app

if [ $? -eq 0 ]; then echo "Build Success"

else

echo "Build Failed" fi

ÁMELIY TAPSÍRMALAR

1-tapsırma: Git komandaları.

Terminalda (yamasa simulyatorda) tómendegi scenariydi orınlań:

1.`git init`

2.`touch main.cpp`

3.`git add main.cpp`

4.`git commit -m "Start"`

5.`git log` (Tariyxtı kóriw).

2-tapsırma: GitFlow.

Qaǵazda yamasa taxtada sxema sızıń:

`Master` -> `Develop` -> `Feature/Auth`. `Feature` pitti -> `Develop`qa merge.

`Develop` release boldı -> `Master`ge merge.

3-tapsırma: Kodqa sholıw (Review).

Dosıńız jazǵan kodtı (yamasa 1-ámeliydegi kodtı) alıp, oǵan 3 sapalıq usınıs (kommentariy) jazıń (Stil, Qáte, Optimallastırıw).

4-tapsırma: Commit xabarları.

"Fix bug" degen jaman xabar.

Tómendegi ózgerisler ushın jaqsı commit xabarların jazıń:

1.Login formasına "Paroldi umıttıńız ba?" túymesin qostıńız.

2.0 ge bóliw qátesin dúzettińiz.

5-tapsırma: Versiyalaw (SemVer).

Proektińiz v1.0.0.

1.Kishi qáte dúzettińiz -> ? (v1.0.1 - Patch).

2.Jańa funkciya qostıńız (eski kod isleydi) -> ? (v1.1.0 - Minor).

3.API dı tolıq ózgerttińiz (eski kod islemeydi) -> ? (v2.0.0 - Major).

Usı mısallardı túsindiriń.

Соседние файлы в папке Programmalıq támiynat qurılması hám evolyuciyası