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

6-ámeliy jumıs. Programmalıq támiynattı islep shıǵıwda standartlardan paydalanıw.

Jumıstıń maqseti: Programmalıq injeneriyada "Kod jazıw standartları" (Coding Standards) hám "Kelisiwler" (Conventions) menen tanıw. C++ tilindegi Google C++ Style Guide yamasa basqa ataqlı standartlar tiykarında kodtı formatlaw, ataw (Naming) hám hújjetlestiriw (Documentation) kónlikpelerin qáliplestiriw. "Linter" hám "Formatter" qurallarınan paydalanıwdı úyreniw.

Teoriyalıq bólim: Standartlar kodtıń oqılıwın hám bir tegisligin támiyinleydi.

1.Ataw (Naming):

CamelCase: `myVariable` (Java, C++ lokal).

PascalCase: `MyClass` (Klasslar).

Snake_case: `my_variable` (Python, C++ STL).

Screaming Snake: `MAX_SIZE` (Konstantalar).

2.Formatlaw: Sheginiw (Indentation - 2 yamasa 4 probel), Qawsırmalar (`{` jańa qatarda yamasa sol qatarda).

3.Kommentariyler: "Ne" emes, "Ne ushın" ekenin jazıw.

4.Hújjetlestiriw: Doxygen (C++), Javadoc (Java) standartı.

ÁMELIY BÓLIM:

Standartsız hám Standartlı kodtı salıstıramız.

1-mısal: Ataw (Naming Conventions)

Kod (Jaman - Standartsız):

class student_info { public:

int Val;

void Get_val() { cout << Val; }

};

// `student_info` kishi hárip (klass), `Val` úlken (ózgeriwshi),

`Get_val` aralas.

Kod (Jaqsı - PascalCase & CamelCase): class StudentInfo { // Klass - PascalCase private:

int studentValue; // Atribut - camelCase public:

void getValue() { // Metod - camelCase

cout << studentValue;

}

};

2-mısal: Formatlaw hám Qawsırmalar

Kod (Jaman):

if(x>0){a=b+c;

}else{ a=b-c;}

// Tıǵız, oqıw qıyın.

Kod (Jaqsı - K&R Stili):

if (x > 0) { a = b + c;

} else {

a = b - c;

}

// Bos orınlar (space) hám sheginiwler (indentation) durıs qoyılǵan.

3-mısal: Konstantalar hám "Sıyqırlı sanlar"

Kod (Jaman): int arr[10];

for(int i=0; i<10; i++) { ... }

Kod (Jaqsı):

const int MAX_SIZE = 10; // Konstanta - Úlken hárip int arr[MAX_SIZE];

for (int i = 0; i < MAX_SIZE; i++) { ... }

4-mısal: Hújjetlestiriw (Doxygen)

Funkciyaǵa standart kommentariy qosıw.

Kod:

/**

*@brief Eki sandı qosadı.

*Bul funkciya overflow (tasıp ketiw) jaǵdayın tekseremeydi.

*@param a Birinshi san.

*@param b Ekinshi san.

*@return int Nátiyje.

*/

int add(int a, int b) { return a + b;

}

5-mısal: Linter menen tekseriw (Simulyaciya)

Linter (mısalı, Clang-Tidy) kodtı tekserip, eskertiw beredi.

Kod:

void func() {

int *p = new int(5);

//...

//Linter: "Memory leak: 'p' is never deleted."

}

Dúzetiw:

void func() {

int *p = new int(5); // ...

delete p;

}

ÁMELIY TAPSÍRMALAR

1-tapsırma: Kodtı qayta formatlaw (Refactoring).

Tómendegi kodtı Google C++ Style boyınsha (Klasslar PascalCase, metodlar camelCase, ózgeriwshiler snake_case yamasa camelCase) dúzetiń:

class my_data {

int X;

public:

void CALCULATE_AREA() { ... }

};

2-tapsırma: Kommentariy jazıw.

`double solveQuadratic(double a, double b, double c)` funkciyasına Doxygen stilinde (brief, param, return) hújjet jazıń.

3-tapsırma: Konstantalardı standartlastırıw.

Kodtaǵı `3.14` hám `9.8` sanların `const double PI` hám `const double G` dep ózgertiń. Ataw stili `SCREAMING_SNAKE_CASE` bolsın.

4-tapsırma: Sheginiwlerdi (Indentation) dúzetiw.

Tómendegi kodtı 4 probel sheginiw menen (Visual Studio stili) jazıń:

void test(){

if(true){

while(false){

cout<<"Hello";

}}}

5-tapsırma: "Hungarian Notation" (Tariyxıy analiz).

Burın `iCount`, `strName`, `fPrice` (tipi atında: i-int, str-string) dep jazılatuǵın edi.

Házirgi standartlar bunı ne ushın "jaman" dep esaplaydı? (IDE tipti kórsetedi).

Bul stildi házirgi `count`, `name`, `price` stiline ózgertiń.

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