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

13-ámeliy jumıs. Programmalardı konstrukciyalawdıń ámeliy táreplerin analizlew.

Jumıstıń maqseti: Programmalıq támiynattı jaratıwdaǵı "Real ámeliyat" penen "Teoriya" arasındaǵı baylanıstı analizlew. IDE (Integrated Development Environment), Debugging (Ońlaw), Profiling (Ónimlilikti ólshew) hám Refactoring (Kodtı tazalaw) quralların qollanıp, kodtıń sapasın jaqsılaw. "Code Smells" (Kod iyisleri) hám "Anti-Patterns" (Qáte úlgiler) túsiniklerin ámeliyatta tabıw hám dúzetiw.

Teoriyalıq bólim:

IDE: Visual Studio, CLion, VS Code.

Debugger: Breakpoint, Watch, Step Over.

Code Smells: Uzın metod, Úlken klass, Qaytalanǵan kod.

Refactoring: Extract Method, Rename Variable.

ÁMELIY BÓLIM:

Kodtı analizlep, qurallar arqalı jaqsılaymız.

1-mısal: Debugging (Ońlaw)

Másele: Cikl sheksiz ketip atır.

Kod (Qáte): int i = 0; while (i < 10) {

cout << i << endl; // i++ umıtılǵan!

}

Sheshim: Debugger arqalı `i` niń ózgermey turǵanın kórıw hám `i++` qosıw.

2-mısal: Code Smell (Uzın Metod)

Másele: `main` funkciyası júdá uzın.

Kod (Jaman):

int main() {

//10 qatar kirgiziw

//20 qatar esaplaw

//10 qatar shıǵarıw

}

Sheshim (Refactoring):

int main() { input(); process(); output();

}

3-mısal: Profiling (Ónimlilik)

Másele: Programma áste islep atır.

Kod:

for (int i=0; i<1000000; i++) {

string s = "Hello"; // Hár saparı jaoa string jaratadı (Qımbat)

}

Sheshim: Profiler kórsetedi: "String jaratıw kóp waqıt alıp atır".

Kod (Jaqsı):

string s = "Hello"; // Sırtqa shıǵarıw

for ...

4-mısal: Naming (Ataw)

Kod (Jaman):

int d; // Kún be, aralıq pa? Kod (Jaqsı):

int daysSinceCreation;

5-mısal: Anti-Pattern (God Object)

Másele: `Manager` klassı hámmeni basqaradı.

Sheshim: Wázıypalardı `UserManager`, `OrderManager`, `FileManager` ge bóliw.

ÁMELIY TAPSÍRMALAR

1-tapsırma: Debugging.

Tómendegi kodtaǵı qáteni (Logic Error) Debugger arqalı tabıń: int sum = 0;

for (int i = 1; i <= 5; i++); // Qáte: noqatlı útir! sum += i;

2-tapsırma: Refactoring (Extract Method).

`printDetails()` funkciyasınan `printHeader()` hám `printBody()` funkciyaların ajıratıp alıń.

3-tapsırma: Naming.

`int a(int b, int c)` funkciyasın `int calculateArea(int width, int height)` dep mánisli etip ózgertiń.

4-tapsırma: Profiling (Teoriya).

Eger programma 10 sekund islese hám onıń 9 sekundı `sort()` funkciyasında ótse, siz qaysı jerdi optimallastırasız?

5-tapsırma: IDE hotkeys.

Óz IDE-ińizde tómendegi ámeller ushın klaviatura kombinaciyaların tabıń:

1.Formatlaw.

2.Atın ózgertiw (Rename).

3.Testti iske túsiriw.

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