Offensiv programmalastırıw
Offensiv programmalastırıw — programmalıq támiynat qátelerin jasırıw yamasa qayta tiklew háreketiniń ornına, programmanıń tez hám kórinetuǵın túrde isten shıǵıwı arqalı jumıs isleytuǵın programmalıq támiynattı islep shıǵıw filosofiyası[1][2]. Maqset — kútilmegen ishki qátelerdi jumıs islep turǵan programmalıq támiynatqa jol bermey, baǵdarlamashı tárepinen dúzetiwi kerek degen boljaw menen islep shıǵıw hám testlew waqtında qátelerdi anıq kórsetiw.
Bul usıl qátelerdi qayta islew strategiyası bolǵanlıqtan, qorǵanıw programmalastırıwınıń bir tarmaǵı dep esaplanadı. Degen menen, ol standart mánislerdi paydalanıw yamasa tómenlegen jaǵdayda islewdi dawam etiw arqalı qáteni jasırıwı múmkin bolǵan qorǵanıw usıllarınan ayırmashılıq etedi. Onıń ornına, offensiv programmalastırıw kóbinese nadurıs jaǵday anıqlanǵanda programmanı dárhal toqtatıw ushın tastıyıqlawlar sıyaqlı qurallardı paydalanadı, bul máseleniń deregin anıqlawdı hám dúzetiwdi ańsatlastıradı.
Qátelerdi ajıratıw
Offensiv programmalastırıwdıń tiykarǵı shárti — programmanıń qorǵanıw sızıǵınan sırtta kelip shıǵatuǵın, qanshelli itimal emes bolsa da, kútiletuǵın qáteler menen, eger onıń barlıq programmalıq támiynat komponentleri kútilgenindey islese, júz bermeytuǵın aldın alıwǵa bolatuǵın ishki qáteler arasında ayırmashılıq qoyıw.
Qarama-qarsı mısallar:
| Kútiletuǵın qáteler | Aldın alıwǵa bolatuǵın qáteler |
|---|---|
| Nadurıs paydalanıwshı kirgiziwi | Nadurıs funkciya argumentleri |
| Operaciyalıq sistema resurslarınıń tamamlanıwı (saqlaw, yad sıyaqlı) | Anıqlanǵan diapazonnan tıs mánis (mısalı, enum) |
| Apparatlıq támiynat sátsizligi (tarmaq, saqlaw sıyaqlı) | Hújjetlestirilmegen qaytarılatuǵın mánis yamasa ayrıqsha jaǵday |
Qáte anıqlaw strategiyaları
Offensiv programmalastırıw baǵdarlamashınıń boljawların biykarlaw ushın qátege ushırawǵa qaratılǵan. Qáte xabarın shıǵarıw ekinshi dárejeli maqset bolıwı múmkin.
Strategiyalar
- Kerek emes tekseriwlerdiń bolmawı: Basqa programmalıq támiynat komponentleriniń belgilengenindey isleytuǵınına iseniw, solay etip hár qanday belgisiz máseleni jasırıp qoymaw, tiykarǵı princip bolıp tabıladı. Ásirese, ayırım qáteler programmanıń buzılıwına aldınnan kepillik berilgen bolıwı múmkin (programmalastırıw tiline yamasa islep atırǵan ortalıqqa baylanıslı), mısalı, nol kórsetkishke silteme beriw. Sonlıqtan, nol kórsetkish tekseriwleri programmanı toqtatıw maqsetinde kerek emes (biraq qáte xabarların basıp shıǵarıw ushın paydalanılıwı múmkin).
- Tastıyıqlawlar – óshirip qoyıwǵa bolatuǵın tekseriwler – tekseriw kerek bolmawı kerek bolǵan nárselerdi, mısalı, programmalıq támiynat komponentleri arasındaǵı dizayn shártnamaların tekseriwdiń qálewge ılayıqlı usılı.
- Rezerv kodtı (aqsaq rejim) hám rezerv maǵlıwmatlardı (ádepki mánisler) alıp taslań: Bular tiykarǵı implementaciyadaǵı kemshiliklerdi jasırıwı múmkin, yamasa, paydalanıwshı kózqarasınan, programmalıq támiynattıń optimal emes islep atırǵanın jasıra aladı. Ele ámelge asırılmaǵan bólimlerge arnawlı itibar beriw, zavod qabıllaw testlewiniń bir bólimi retinde kerek bolıwı múmkin, sebebi ele ámelge asırılmaǵan kod hesh qanday testke tiykarlanǵan islep shıǵıw basqıshında sátsiz birlik testleri arqalı anıqlanbaydı.
- Qısqa jol kodın alıp taslań (strategiya úlgisine qarań): Ápiwayılastırılǵan kod jolı, eger ulıwma kod derlik hesh qashan orınlanbasa, ulıwma kod jolındaǵı qátelerdi jasıra aladı. Ekewi de birdey nátiyje beriw kerek bolǵanlıqtan, ápiwayılastırılǵanı alıp taslanıwı múmkin.