JavaRush /Java Blogu /Random-AZ /“Baş İlk Dizayn Nümunələri” kitabının icmalı
Alex
Səviyyə

“Baş İlk Dizayn Nümunələri” kitabının icmalı

Qrupda dərc edilmişdir
Head First seriyası ilə ən azı minimal tanış olan insanlar arasında, bu cür ədəbiyyatı yeni başlayanlar üçün olduqca səthi oxu hesab edənlər çoxdur. Nə deyim, çətin ki, proqramlaşdırma sahəsində mürəkkəb bir mövzunu 48 saat ərzində dərindən öyrənmək mümkün olsun. Bununla belə, Dizayn Nümunələrinin yeni başlayanlar üçün proqramlaşdırma üçün faydalı bələdçi olacaq bir kitab olduğunu mübahisə etmək çətindir. Bu kitab Stackoverflow-da ən populyar on kitabdan biridir və yaxşı səbəbə görə. Təqdimatın asanlığı, fundamental mövzu və yüksək keyfiyyətli nümunələr kitabı indi və mənim fikrimcə, hələ uzun illər məşhur edir. "Baş İlk Dizayn Nümunələri" kitabının icmalı - 1

Kitabın xüsusiyyətləri

Baş ilk dizayn nümunələri bizə naxışların nə olduğunu, onlardan necə istifadə etməyi və onlar haqqında necə düşünməyimizi izah edir. Nümunə bir şablondur, müəyyən bir problem toplusu üçün universal bir həlldir. Dizayn nümunələri , öz növbəsində, istifadəçi dostu və çevik proqramlar yazmaq üçün istifadə edilə bilən ümumi istifadə olunan memarlıq həlləridir. Bütün dünyada tərtibatçılar eyni problemləri eyni yanaşmalarla həll edirlər. Annotasiyada deyildiyi kimi, təkəri yenidən kəşf etmək istəmirsinizsə, bu kitabın işləməyə həsr olunmuş hazır dizayn şablonlarından (naxışlardan) istifadə edin . Materialın təqdimatını ayrıca qeyd etmək lazımdır: Head First seriyasındakı kitablar sadəliyi ilə məşhurdur və bir oturuşda oxunur. “Dizayn nümunələri” də istisna deyil. O, həmçinin aşağıdakı əsas prinsiplərə əməl edir:
  1. Görünüş
  2. Təqdimatın danışıq tərzi
  3. Çox sayda illüstrasiyalar
  4. Aktiv oxucu iştirakı
  5. Duyğulara müraciət edin
  6. Oxucunun diqqətini cəlb etmək
Kitabın müəllifləri materialı təqdim etmək üçün metakoqnisiya nəzəriyyəsindən bacarıqla istifadə edirlər: mənim üçün ilk 100 səhifə diqqətdən kənarda qaldı. Bu yanaşmanın gözəlliyi beynin oxuduqlarını əslində yadda saxlamasıdır. Bir neçə hekayə üslubunun, maraqlı sualların, artıqlıq və yaradıcılığın birləşməsi - bütün bunlar oxucunun əsas mövzuya marağını itirməməsinə kömək edir. Kitabı almadan əvvəl qarışıq rəyləri oxuduqdan sonra tərəddüd etdim. Bununla belə, bu mövzuda bir neçə başqa mənbəni tez bir zamanda gözdən keçirdikdən sonra qərara gəldim: naxışlara dalmaq üçün bu kitab sizə lazım olan şeydir.

Əsas mövzu və əsas ideya

"Şübhəsiz ki, kimsə artıq probleminizi həll etdi" - proqramlaşdırmada dizayn nümunələrinin bütün mənasını çatdıran kitabın birinci fəsli belə başlayır. Əsas məqsəd onların mənasını oxucuya düzgün çatdırmaqdır, çünki ilk növbədə proqramçı nümunələrin nə üçün olduğunu və hansı məqamda tətbiq edilməli olduğunu bilməlidir. Əsasən, əvvəlcə şablonları başınızda kiçik parçalara ayırmalı və yalnız bundan sonra onları proqramlara tətbiq etməlisiniz. Proqramlaşdırmaya yeni başlayan şəxs nümunələri yaxşı başa düşürsə, onların istifadəsi kodu xeyli çətinləşdirə bilər (lakin onu sadələşdirməlidir!). “Niyə dizayn nümunələrindən istifadə edilməlidir?” sualına Kitab aydın cavab verir: “Astraksiya, irsiyyət və polimorfizm kimi anlayışları bilmək sizi yaxşı OO dizayneri etmir. Nümunələr sübut edilmiş OO dizayn təcrübəsini ehtiva edir."

"Xülasə"

Kitab 14 fəsildən və bir girişdən ibarətdir. Kitabın müəllifləri əvvəlcə oxucunu hazırlamağa, onun beynini naxış dizaynı haqqında məlumatı düzgün qəbul etməyə kökləməyə çalışırlar. Birinci fəsildə nümunələrin əsas prinsipi və onların hansı məqsədlərə xidmət etdiyi izah edilir. Ən çox istifadə edilən nümunələrdən biri - strategiya - asanlıqla və diqqəti cəlb etmədən araşdırılır. İkinci-on birinci fəsillər fərdi nümunələrin ətraflı təhlilinə həsr edilmişdir :
  1. Müşahidəçi. Hadisələri onların baş verməsi ilə maraqlanan obyektlər arasında paylayır.
  2. Dekorator. Java-da varisliyə başqa bir baxış və kodu dəyişdirmədən Java siniflərinə yeni imkanlar verilməsi.
  3. Zavod. Nümunə kodu arzuolunmaz asılılıqlardan xilas edir.
  4. subay. Singleton kimi də tanınır, o, bütün proqram üçün vahid sinif obyekti yaratmağa imkan verir.
  5. Komanda. Nümunə, onun imkanlarını genişləndirərək, metod çağırışını rahat şəkildə əhatə etməyə imkan verir.
  6. Adapter və Fasad. İnterfeys uyğunsuzluğu probleminin həlli, həmçinin onların interfeysini sadələşdirmək üçün obyektlərin qablaşdırılması.
  7. Şablon metodu. Alt siniflərə istənilən vaxt istənilən emal alqoritmi ilə əlaqə yaratmağa imkan verən alqoritmik blokların inkapsulyasiyası.
  8. İterator və Bağlayıcı. Nümunə növündən asılı olmayaraq kolleksiyalar arasında təkrarlamaq üçün rahat alət təqdim edir. Bundan əlavə, fəsildə superkolleksiyalar haqqında bəzi məlumatlar verilir.
  9. dövlət. Obyektlər daxili vəziyyətindəki dəyişikliklərlə davranışlarını idarə etmək qabiliyyətinə malikdir.
  10. müavini. Bir obyektə girişi idarə etmək üçün çox rahat nümunə.
12-ci fəsildə güclü proqram arxitekturaları yaratmaq üçün istifadə oluna bilən mürəkkəb nümunələr, daha doğrusu müzakirə olunan bəzi nümunələrin birləşmələri araşdırılır. 13-cü fəsil naxışların real problemlərdə istifadəsinə həsr olunmuş, naxışların təsnifatı, onların çeşidləri və istifadə qaydaları təqdim edilmişdir. Kitab daha geniş nümunələri əhatə edən 14-cü Fəsilə əlavə kimi xidmət edir. Onların hər biri özünəməxsus şəkildə faydalıdır, buna görə də onları bilmək arzuolunmazdır. Əlbəttə ki, onlar 2-11-ci fəsillərdəki nümunələr qədər populyar deyillər, lakin bu, onları daha az faydalı etmir. Kitab nümunə nəzəriyyəsinin akademik olaraq dəqiq təqdimatı kimi görünmür. Lakin Head First kitabları bu qədər diqqətlidirsə, həvəskar tərtibatçıların nəyin nə olduğunu anlamaq və əsasları özləri üçün aydınlaşdırmaq şansı olmayacaq. Bu dizayn nümunələri ilə tanış olmayanlar üçün nə olduğunu öyrənmək üçün sadə və rahat bir yoldur. Müəlliflərin fikrincə, Design Patterns artıq Java (və ya C#) dili ilə tanış olan, obyekt yönümlü dizayn prinsiplərini öyrənmək istəyən və cansıxıcı mühazirələrdənsə canlı söhbətə üstünlük verənlər üçün uyğun olan kitabdır. Bu kitab istinad kitabı deyil! Təcrübəsi olan peşəkar tərtibatçısınızsa və bu nümunələrin ən azı bir hissəsi ilə işləyirsinizsə, kitab çətin ki, sizin üçün maraqlı olsun. Kitabın vacib komponenti məşqlərdir: onları atlamamalısınız. Kitabı diqqətlə oxusanız və həddindən artıq hallarda İnternetdə minimal axtarış etsəniz, onları həll etmək sizə baş ağrısı əlavə etməyəcək. Ancaq faydaları mütləq olacaq. Ən azından kitabda təqdim olunan nəzəriyyəni daha dərindən başa düşəcəksiniz.

Yaxşı və pis tərəfləri

JavaRush-da oxuyanların çoxu kimi, mən də biliyə susamış tələbənin psixikasına qarşı darıxdırıcı mühazirələr, sıxıcı materiallar və digər zorakılıqlara soyuq münasibət bəsləyirəm. Anlaşılmaz mətnləri əzbərləməyə sərf olunan enerji, məncə, ən yaxşı şəkildə alternativ öyrənmə mənbələrinin tapılmasına sərf olunur. Bu kitab sizin vaxtınıza və səyinizə dəyər. Mükəmməl təqdimat tərzi, oxucunun diqqətinin səriştəli idarə olunması və əsas məqamların təkrarlanması bu kitabın əsas üstünlüyü - materialın mənimsənilməsinin asanlığıdır . Çox sayda illüstrasiya əlavə bir artıdır. Məncə, kitabdakı hər bir şəklin öz yeri var: onların hamısı müəlliflərin sözlərini gücləndirməyə və materialın mahiyyətini daha dərindən dərk etməyə imkan verir. Yuxarıda yazdığım kimi, bu kitab istinad kitabı deyil: onun müəllifləri bütün nümunələri sadalamaq fikrində deyillər. Onun əsas vəzifəsi digər, daha mürəkkəb olanları daha asan qavramaq üçün əsas nümunələri başa düşmək və danışmaqdır. Və o, bunun öhdəsindən 100% gəlir. Dezavantajlar arasında rus dilində Head first dizayn nümunələrinin ingilis dilində olduğu kimi oxumaq asan olmamasıdır. Əlbəttə ki, hər bir tərtibatçı ingilis dilində danışmalıdır, lakin təcrübəsiz proqramçılar bu bacarığı həmişə kitabları orijinalda oxuya biləcək dərəcədə inkişaf etdirmirlər. Bununla belə, bu, məcburi bir mənfi hesab edilə bilər, çünki material olduqca dəqiq təqdim olunur və məna qorunur.

Dizayn nümunələri üzrə əlavə kitablar

Mən fundamental mövzuları bir neçə mənbədən öyrənmək və onlara uyğun təqdimat tərzi axtarmaq daha yaxşı olduğu inancının tərəfdarıyam. Nümunələrə dalmaq və əlavə nəzəriyyə oxumaq istəyəndə, inanın ki, axşamlarınızı məşğul edəcək bir şeyiniz olacaq.
  1. Obyekt yönümlü dizayn texnikaları. Dizayn nümunələri (Gamma E., Helm R., Johnson R., Vlissides J.).

    “Dizayn Nümunələri” kitabının icmalı (Head First Design Patterns) - 2

    Bu daha ciddi bir nəşrdir, naxışlar haqqında məlumat kitabı, "Dördlər dəstəsi" nin çox hörmətli bir kitabıdır. Çoxları bunu OO dizaynının İncili adlandırır.

    İnternetdə tərtibatçıların fikirləri 3 düşərgəyə bölünür:

    • bəziləri kitabın köhnəldiyini və təqdimat tərzinin oxumağı mümkünsüz etdiyini iddia edirlər
    • digərləri kitabdan yalnız naxışlar üzrə istinad kitabı kimi istifadə etməyi məsləhət görür, başqa heç nə
    • digərləri deyirlər ki, kitab dizayn nümunələrinin müqəddəs zirzəmisidir və bir gün Baş Java Developeri olmaq istəyən hər kəs tərəfindən oxunmalıdır.
    Mən ikinci qrupun tərəfdarıyam: düşünürəm ki, kitab həqiqətən də layiqdir, amma onu hər hansı məlumat axtarmaq məqsədi ilə yox, inkişaf üçün oxumaq çox çətindir.

    Əhəmiyyətli:Kitabdakı nümunələr C++ dilində yazılmışdır.

  2. Java EE. Peşəkarlar üçün dizayn nümunələri (Murat Yener, Alex Fidom).

    “Dizayn Nümunələri” kitabının icmalı (Head First Design Patterns) - 3

    Bu kitab Müəssisə proqramlarının dizaynına həsr olunub: o, real həyatda tətbiqi problemlərin bir çox nümunələrini əhatə edir.

  3. Java-da dizayn nümunələri (Grand M.).

    "Dizayn Nümunələri" kitabının icmalı (Head First Design Patterns) - 4

    Kitab naxışlardan istifadənin tərtibatçıların vaxtına necə qənaət etdiyini, UML dilinin icmalını təqdim etdiyini və 47 dizayn nümunəsini təsvir etdiyini rəngarəng şəkildə nümayiş etdirir.

JavaRush-da Dizayn Nümunələri

JavaRush kursunda dizayn nümunələri Java Collections axtarışının 7-ci səviyyəsində öyrənilir. 12-ci mühazirələr ən çox yayılmış nümunələrə həsr olunub və 4-cü mühazirədə siz bu mövzuda problemləri həll edə bilərsiniz. Aşağıda "özünüzü gücləndirmək" üçün bir neçə maraqlı məqalə var:
  1. Kateqoriyalar, nümunələr, bəyəndiyimiz hər şey ilə nümunələr mövzusunda ümumi bir məqalə .

  2. Nümunələr haqqında iki məqalə: 1-ci hissənin icmalı və daha ətraflı 2-ci hissə .

  3. Nümunə olaraq Singleton naxışından istifadə edərək naxışlar dizayn edin .

  4. Strategiya ” və “ Adapter ” nümunələri haqqında məqalələr.

  5. Dizayn nümunələri anlayışı UML diaqramları ilə bağlıdır, bu məqalə onların nə olduğunu başa düşməyə kömək edəcəkdir.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION