Добавил:
bekan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Programmalıq támiynat sapasın támiyinlew / 4-ameliy_ST
.pdf
4-ámeliy jumıs. Programmalıq támiynatta shıǵıw kodlardı hújjetlestiriw.
Jumıstıń maqseti: Kodtıń ishki hújjetlestiriliwin (Internal Documentation)
úyreniw. C++ tilinde Doxygen, Java-da Javadoc standartları tiykarında kodqa
túsinikler (Comments) hám anıqlamalar (Annotations) jazıw. Kodtıń API
(Application Programming Interface) bólimin basqa programmistlerge túsiniwge
ańsat bolatuǵınday etip súwretlew kónlikpelerin qáliplestiriw. "Kodtıń ózi – eń
jaqsı hújjet" (Self-documenting code) principin túsiniw.
Teoriyalıq bólim:
1. Hújjetlestiriw túrleri:
Paydalanıwshı hújjetleri (Manual).
Texnikalıq hújjetler (API docs, Architecture).
2. Doxygen: C++ kodınan avtomat túrde HTML/PDF hújjet jaratıwshı qural.
@brief: Qısqa táriyip.
@param: Parametrler.
@return: Qaytarıw mánisi.
3. Jaqsı hújjet: "Ne" ekenin emes, "Ne ushın" ekenin túsindiredi.
ÁMELIY BÓLIM:
Kodqa Doxygen stilinde kommentariyler qosamız.
1-mısal: Funkciyanı hújjetlestiriw
Kod:
/**
* @brief Eki sandı qosıwshı funkciya.
*
* Bul funkciya pútin sanlardı qabıllaydı hám nátiyjeni qaytaradı.
* Tasıp ketiw (Overflow) jaǵdayı tekserilmegen.
*
* @param a Birinshi qosılıwshı.
* @param b Ekinshi qosılıwshı.
* @return int Eki sannıń qosındısı.
*/
int add(int a, int b) {
return a + b;
}

2-mısal: Klastı hújjetlestiriw
Kod:
/**
* @brief Student haqqında maǵlıwmat saqlawshı klass.
*
* Bul klass studenttiń atın hám ID nomerin saqlaydı.
*/
class Student {
private:
string name; ///< Studenttiń atı
int id; ///< Studenttiń ID nomeri (unikal)
public:
/**
* @brief Student konstruktorı.
* @param n Atı.
* @param i ID nomeri.
*/
Student(string n, int i) : name(n), id(i) {}
};
3-mısal: "TODO" hám "FIXME" belgileri
Kodtıń ishinde keleshekte isleniwi kerek jerlerdi belgilew.
Kod:
void processData() {
// TODO: Bul jerde maǵlıwmatlardı sortlaw kerek
// FIXME: 0 ge bóliw qátesi bar, dúzetiw kerek
}
4-mısal: Paydasız kommentariya
Kod (Jaman):
int i = 0; // i di 0 ge teńlestiriw
i++; // i di 1 ge asırıw
// Bul hújjetlestiriw emes, bul "shawqım" (noise). Kodtıń ózi bunı
aytıp tur.
Kod (Jaqsı):
// Cikl esaplaǵıshı, maksimal shegaraǵa (MAX_LIMIT) shekem dawam etedi
for (int i = 0; i < MAX_LIMIT; i++) { ... }

5-mısal: README.md (Proekt hújjeti)
Kodtıń sırtındaǵı hújjet.
Mazmunı:
# Mening Proektim
Bul programma studentlerdi basqaradı.
## Ornatıw
`g++ main.cpp -o app`
## Qollanıw
`./app`
ÁMELIY TAPSÍRMALAR
1-tapsırma: Doxygen stili.
`double divide(double a, double b)` funkciyasına @brief, @param, @return hám
@throw (0 ge bóliw qátesi) tagleri menen kommentariya jazıń.
2-tapsırma: Klass hújjeti.
`Book` klası (`title`, `author`, `year`) ushın tolıq hújjetlestiriw jazıń. (Klass,
atributlar, metodlar).
3-tapsırma: Self-documenting code.
Tómendegi kodtı kommentariyasız túsiniwge ańsat bolatuǵınday etip qayta jazıń
(Atawlar arqalı):
// T - waqıt, D - aralıq
double calc(double T, double D) { return D / T; }
4-tapsırma: TODO qosıw.

Kodıńızda "paroldi tekseriw" funkciyası bos tursın. Oǵan "TODO: Keleshekte
implementaciya etiw" dep jazıp qoyıń.
5-tapsırma: README faylı.
Ózińizdiń 1-ámeliy jumısıńız ushın qısqasha `README.txt` faylın tayarlań
(Maqset, Kompilyaciya, Avtor).
Соседние файлы в папке Programmalıq támiynat sapasın támiyinlew
