Hər kod parçasının necə işlədiyini haradan bilmək lazımdır?


cavab 1:

Budur bir sirr: Müasir mürəkkəb bir kompüterdə, bir smartfon və ya PC kimi, heç bir kod parçasının necə işlədiyini YOX ŞƏRHİ KİŞİ bilir. Lazım olsaydı, bu cihazlara sahib ola bilməzdik, çünki onları proqramlaşdırmaq çox böyük bir vəzifə olardı.

Bunun əvəzinə insanlar bir vəzifənin kiçik bir elementi ilə əlaqəli bir kod yazırlar və bu kod adətən başqasının yazdığı digər kodu çağırır və öz növbəsində digər kod da istifadə edə biləcəyi üçün bir növ interfeysə məruz qalır. Bu şəkildə kod funksional qruplar və təbəqələrə ayrılmış kiçik tapşırıqlar şəbəkələrindən qurulur. Bunlara adətən kitabxanalar və ya çərçivələr deyilir.

Başqalarının istifadə edə biləcəyi kod yaratdığınızda, siniflər, funksiya və metod adları, parametrləri və istifadə etmək üçün bilməsi lazım olan digər məlumatlar toplusu olan interfeysini dərc edirsiniz. Ümumi sistemdə olduğunuzdan asılı olaraq bunlara API (tətbiq proqramlaşdırma interfeysi) və ya SPI (sistem proqramlaşdırma interfeysi) deyilir. Yaxşı hazırlanmış bir API və onu müşayiət edən sənədlər, onu tətbiq edən kodu yaxşı istifadə etmək üçün bilmək lazım olan bütün şeylər olmalıdır. Əslində, çox yaxşı bir prinsip budur ki, bir API-in arxasında olan hər şey qəsdən gizlədilməlidir, çünki bu müqavilənin bir hissəsi deyildir - bu nə işləyir, amma bunun necə işlədiyini bilməməlisiniz. Bu 'həyata keçirmə detalı' deyilən şeydir və özəldir. Bir bənzətmə, avtomobilinizdəki qıcqırdıcı pedaldır - bu mühərrik sürətini idarə etmək üçün ümumi bir interfeysdir, ancaq istifadə etmək üçün pedalın mühərrik sürətinin necə dəyişdiyini dəqiq bilmək lazım deyil. Bir avtomobil mexaniki bir tənzimləmə üçün bir kabeldən istifadə edə bilər, digəri isə mühərrik idarəetmə sisteminə daxil olan bir sensor ola bilər. Bu pedalı istifadə etdiyiniz üsulu dəyişdirmir və hər iki halda da ümumi effekt eynidır.

Android və ya Windows kimi bir sistem, şəbəkə və ya qrafika kimi funksional qruplara təşkil edilən on minlərlə API-dən ibarətdir. Bu sistemlərdə işləyən proqramlar yarada və bu API-lərdən heç bir tətbiq detallarını anlamadan istifadə edə bilərsiniz. Bir kitabxanadan düzgün istifadə etmək üçün həyata keçirmə təfərrüatı barədə məlumat tələb etdiyiniz zaman istər pis dizayn, istərsə də natamam bir API işarəsidir.

Müəyyən bir sistem üçün proqram inkişaf dəstləri (SDK) bir inkişaf mühitində istifadə edə biləcəyiniz bir forma (məsələn, başlıq sənədləri) istifadə edə bilən bütün geniş API-lərə sahib olacaq və geniş müşayiət sənədlərinə sahib olmalıdır. Bu sistemlər üçün tətbiqetmələri və ya digər proqram hissələrini proqramlaşdırmaq istədiyiniz zaman baxmalısınız.


cavab 2:

Grahamın cavabı məqama uyğun gəlir. Daha canlı bir misal çəkirəm. Şəhərinizin hər yolunu yalnız şəhərinizdə yaşadığınız üçün bilirsinizmi? Xeyr?

Tamam, amma böyük bir şam yeməyi etmək üçün tanış olmayan bir yerə getmək istəsən, bunu necə edirsən?

Bir xəritə götürürsən, restoran və bingoya yol tapırsan.

Bəs xəritə nədir? Google'dur.

Restoran nədir? Bu proqramlaşdırma dili, çərçivə və ya əməliyyat sisteminə aid hər hansı bir şey ola bilər.

Restorana gedən yol nədir? Bu proqramlaşdırma dili, çərçivə və ya əməliyyat sisteminin sənədidir.

Metodoloji sualına bənzəyir, kodumun necə işlədiyini necə bilirəm? Kodlarınızın hər bir hissəsini heç vaxt bilməyəcəksiniz, çünki müasir proqram vahid insanlar üçün çox mürəkkəbdir, ancaq istədiyiniz bəzi funksiyalara düz yolunuz var.

Kompüter elmini öyrənmək kodlarınızın makroskopik bir açısını verir.