Birinchisi chaqiriladigan boshqa funksiya




Download 471.91 Kb.
bet2/3
Sana07.06.2022
Hajmi471.91 Kb.
#23165
1   2   3
Bog'liq
1-amaliy mashg\'ulot
44-maktab skillgrower Olimpiada qatnashcilari, Файллар тизими3, Mavzu O’zgarmas to’k dvigatellari va turlari ishlash prinsplari, mironshohasadov, Tilshunoslik nazariyasi (Nosirjon Uluqov), 22138 ru vvm-job-aid-update-oct-2022
Birinchisi chaqiriladigan boshqa funksiya

Tasavvur qilaylik menejer kirib: "Men foydalanuvchiga elektron pochta manzilini kiritishda xato nima ekanligini aniq bilishini istayman", deydi. Endi siz funksiyani nafaqat rost yoki yolg’on, balki xato kodini ham qaytarishga o'rgatishingiz kerak: masalan, agar manzilda xato bo'lsa, 01 kodi, agar manzil spam bo'lsa, 02 kodi va boshqalarni qaytarsin. Buni amalga oshirish qiyin vazifa emas.


Siz bu funksiyaga kirasiz va uning xatti-harakatlarini o'zgartirasiz: endi rost – yolg’on o'rniga xato kodini beradi va agar xato bo'lmasa, "OK" deb yozilgan qiymatni qaytaradigan funksiya yozasiz va buning natijasida kodingiz buziladi: tekshiruvchidan rost yoki yolg’on kutilgan o'nta joyning hammasi "OK" qiymatini oladi va shu sababli buziladi.

Endi muammoni hal qilish uchun quyidagilar kerak bo’ladi:





  • yoki manzillarni tekshiruvchining yangi javoblarini tushunishga o'rgatish uchun barcha funksiyalarni qayta yozish;

  • yoki manzil tekshirgichini o'zi eski joylarga mos kelishi uchun uni qayta tuzing, lekin u sizga kerak bo'lgan joyda xato kodlarini beradi;

  • yoki xato kodlarini chiqaradigan yangi tekshirgich yozing va eski tekshirgichni eski joylarda ishlating.

Albatta, muammoni bir -ikki soat ichida hal qilish mumkin.
Ammo tasavvur qiling-a, sizda yuzlab funksiyalar bor va siz kuniga o'nlab o'zgarishlarni amalga oshirishingiz kerak va har bir o'zgarish funksiyalarni yanada murakkabroq qilishga va yanada murakkab natijalarga olib keladi. Buning natijasida esa bir joyning har bir o'zgarishi boshqa joyni buzadi. Natijada sizda o'nlab klonlangan funktsiyalar bo'ladi, ularni avval siz tushunasiz, keyin esa yo'q.
Bu spagetti kod deb ataladi va unga qarshi kurashish uchun obyektga yo'naltirilgan dasturlash ixtiro qilingan.


Obyektga yo'naltirilgan dasturlash
OYDning asosiy maqsadi murakkab kodni osonlashtirishdir. Buning uchun dastur mustaqil bloklarga bo'linadi, biz ularni obyektlar deb ataymiz.


Obyekt qandaydir murakkab tushuncha emas. Bu an’anaviy funksional dasturlashda bo'lgani kabi ma'lumotlar va funksiyalar to'plami. Siz tasavvur qila olasizmi, siz shunchaki dasturning bir qismini olib, uni qutiga solib, qopqog'ini yopib qo'ydingiz. Qopqoqli quti - bu obyekt.

Dasturchilar obyekt ichidagi ma'lumotlar xossalar, funksiyalar esa metodlar deb nomlanishiga kelishib oldilar. Lekin bu shunchaki so'zlar, aslida ular bir xil o'zgaruvchilar va funksiyalardir.

Obyektni oshxonangizdagi mustaqil elektr qurilmasi deb hisoblash mumkin. Chovgum suvni qaynatadi, pechka qiziydi, blender maydalaydi, go'sht maydalagich qiyma tayyorlaydi. Har bir qurilmaning ichida bir nechta narsalar bor: motorlar, kontrollerlar, tugmalar va boshqalar - lekin siz ular haqida o'ylamaysiz. Siz har bir paneldagi tugmachalarni bosasiz va u kutilgan narsani bajaradi va bu qurilmalarning kombinatsiyasi tufayli siz kechki ovqatga ega bo'lasiz.


Ob'ektlar to'rt so'z bilan tavsiflanadi: inkapsulyatsiya, abstraktsiya, merosxo’rlik va polimorfizm. Bu keyingi mavzularda muhokama qilinadi.
Ushbu yondashuv har bir modulni boshqalardan mustaqil ravishda dasturlash imkonini beradi. Asosiysi, modullar bir -biri bilan qanday aloqa o'rnatishi va qanday qoidalarga muvofiq bo'lishi haqida oldindan o'ylash. Ushbu yondashuv yordamida siz bitta modulning ishini boshqalarga ta'sir qilmasdan yaxshilashingiz mumkin - butun dastur uchun, agar u bilan ishlash qoidalari o'zgarishsiz qolsa, har bir blokda nima bo'lishining ahamiyati yo'q.



Download 471.91 Kb.
1   2   3




Download 471.91 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Birinchisi chaqiriladigan boshqa funksiya

Download 471.91 Kb.