JavaRush /Java blogi /Random-UZ /"Bosh birinchi dizayn naqshlari" kitobining sharhi
Alex
Daraja

"Bosh birinchi dizayn naqshlari" kitobining sharhi

Guruhda nashr etilgan
Hech bo'lmaganda Head First seriyasi bilan tanish bo'lgan odamlar orasida bunday adabiyotni yangi boshlanuvchilar uchun juda yuzaki o'qish deb hisoblaydiganlar ko'p. Nima deyishim mumkin, dasturlash sohasidagi murakkab mavzuni 48 soat ichida chuqur o‘rganishning imkoni yo‘q. Biroq, Dizayn naqshlari yangi boshlanuvchilar uchun dasturlash bo'yicha foydali qo'llanma bo'ladigan kitob ekanligi bilan bahslash qiyin. Ushbu kitob Stackoverflow-dagi eng mashhur o'nta kitobdan biri va buning sababi yaxshi. Taqdimotning qulayligi, asosiy mavzu va yuqori sifatli misollar kitobni hozir va, mening fikrimcha, uzoq yillar davomida mashhur qiladi. "Boshning birinchi dizayn naqshlari" kitobining sharhi - 1

Kitobning xususiyatlari

Boshning birinchi dizayn naqshlari bizga naqshlar nima ekanligini, ulardan qanday foydalanishni va ular haqida qanday fikr yuritish kerakligini aytadi. Naqsh - bu shablon, muayyan muammolar to'plami uchun universal echim. Dizayn naqshlari , o'z navbatida, foydalanuvchilarga qulay va moslashuvchan ilovalarni yozish uchun ishlatilishi mumkin bo'lgan keng tarqalgan ishlatiladigan me'moriy echimlardir. Butun dunyodagi ishlab chiquvchilar bir xil muammolarni bir xil yondashuvlar bilan hal qilishadi. Izohda aytilganidek, agar siz g'ildirakni qayta ixtiro qilishni xohlamasangiz, ushbu kitob bilan ishlashga bag'ishlangan tayyor dizayn shablonlaridan (naqshlardan) foydalaning . Alohida-alohida, material taqdimotini ta'kidlash kerak: "Hesh First" seriyasidagi kitoblar soddaligi bilan mashhur va bir o'tirishda o'qiladi. "Dizayn naqshlari" bundan mustasno emas. Shuningdek, u quyidagi asosiy tamoyillarga amal qiladi:
  1. Ko'rinish
  2. Taqdimotning suhbat uslubi
  3. Ko'p sonli rasmlar
  4. O'quvchilarning faol ishtiroki
  5. Hissiyotlarga murojaat qilish
  6. O'quvchi e'tiborini jalb qilish
Kitob mualliflari materialni taqdim etish uchun metakognitsiya nazariyasidan to'g'ri foydalanadilar: men uchun dastlabki 100 sahifa sezilmasdan o'tib ketdi. Ushbu yondashuvning go'zalligi shundaki, miya aslida o'qiganlarini eslab qoladi. Bir nechta hikoya uslublarining kombinatsiyasi, qiziqarli savollar, ortiqchalik va ijodkorlik - bularning barchasi o'quvchiga asosiy mavzuga qiziqishni yo'qotmaslikka yordam beradi. Kitobni sotib olishdan oldin, aralash sharhlarni o'qib, ikkilanib qoldim. Biroq, ushbu mavzu bo'yicha bir nechta boshqa manbalarni tezda ko'rib chiqqach, men qaror qildim: naqshlarga sho'ng'ish uchun, bu kitob sizga kerak bo'lgan narsadir.

Asosiy mavzu va asosiy g'oya

"Albatta, kimdir sizning muammoingizni hal qildi" - kitobning birinchi bobi shunday boshlanadi va dasturlashda dizayn naqshlarining butun ma'nosini beradi. Asosiy maqsad ularning ma'nosini o'quvchiga to'g'ri etkazishdir, chunki birinchi navbatda dasturchi naqshlar nima uchun ekanligini va ularni qaysi nuqtada qo'llash kerakligini bilishi kerak. Asosan, avval shablonlarni boshingizdagi kichik qismlarga ajratishingiz kerak va shundan keyingina ularni dasturlarga kiriting. Agar dasturlashda yangi boshlovchi naqshlarni yaxshi tushunsa, ulardan foydalanish kodni ancha murakkablashtirishi mumkin (lekin uni soddalashtirish kerak!). “Nima uchun dizayn naqshlaridan foydalanish kerak?” degan savolga. Kitob aniq javob beradi: “Abstraksiya, meros va polimorfizm kabi tushunchalarni bilish sizni yaxshi OO dizayneri qilmaydi. Naqshlar tasdiqlangan OO dizayn tajribasini o'z ichiga oladi.

"Xulosa"

Kitob 14 bobga va kirishga bo'lingan. Dastlab, kitob mualliflari o'quvchini tayyorlashga, uning miyasini naqsh dizayni haqidagi ma'lumotlarni to'g'ri qabul qilishga sozlashga harakat qilishadi. Birinchi bobda naqshlarning asosiy printsipi va ular qanday maqsadlarda xizmat qilishi tushuntiriladi. Eng ko'p qo'llaniladigan naqshlardan biri - strategiya - osongina va ko'zga tashlanmasdan tekshiriladi. Ikkinchidan o'n birinchi boblar individual naqshlarning batafsil tahliliga bag'ishlangan :
  1. Kuzatuvchi. Hodisalarni ularning paydo bo'lishidan manfaatdor bo'lgan ob'ektlar bo'yicha taqsimlaydi.
  2. Dekorator. Java-da merosga yana bir qarash va Java sinflariga kodni o'zgartirmasdan yangi imkoniyatlar berish.
  3. Zavod. Shakl kodni keraksiz bog'liqliklardan saqlaydi.
  4. Yagona. Singleton nomi bilan ham tanilgan, u butun dastur uchun bitta sinf ob'ektini yaratishga imkon beradi.
  5. Jamoa. Naqsh sizga usul chaqiruvini qulay tarzda qamrab olish imkonini beradi, uning imkoniyatlarini kengaytiradi.
  6. Adapter va fasad. Interfeysning mos kelmasligi muammosini hal qilish, shuningdek, ularning interfeysini soddalashtirish uchun ob'ektlarni qadoqlash.
  7. Shablon usuli. Algoritmik bloklarni inkapsulyatsiya qilish, quyi sinflarga istalgan vaqtda istalgan ishlov berish algoritmi bilan bog'lanish imkonini beradi.
  8. Iterator va bog'lovchi. Naqsh, ularning turidan qat'i nazar, to'plamlar bo'ylab takrorlash uchun qulay vositani taqdim etadi. Bundan tashqari, bobda super to'plamlar haqida ba'zi ma'lumotlar mavjud.
  9. Davlat. Ob'ektlar o'zlarining ichki holatidagi o'zgarishlar orqali ularning xatti-harakatlarini nazorat qilish qobiliyatiga ega.
  10. o'rinbosari. Ob'ektga kirishni boshqarish uchun juda qulay naqsh.
12-bobda kuchli dasturiy ta'minot arxitekturasini yaratish uchun ishlatilishi mumkin bo'lgan kompozit naqshlar, aniqrog'i muhokama qilingan ba'zi naqshlarning kombinatsiyasi ko'rib chiqiladi. 13-bob haqiqiy masalalarda naqshlardan foydalanishga bag'ishlangan, naqshlarning tasnifi, ularning navlari va foydalanish bo'yicha ko'rsatmalar keltirilgan. Kitob kengroq naqshlarni qamrab olgan 14-bobga ilova sifatida xizmat qiladi. Ularning har biri o'ziga xos tarzda foydalidir, shuning uchun ularni bilish juda istalmagan. Albatta, ular 2-11-boblardagi naqshlar kabi mashhur emas, lekin bu ularni kamroq foydali qilmaydi. Kitob naqsh nazariyasining akademik jihatdan aniq taqdimoti bo'lib ko'rinmaydi. Ammo agar Head First kitoblari juda puxta bo'lsa, intiluvchan dasturchilar nima ekanligini aniqlash va o'zlari uchun asoslarni aniqlab olish imkoniga ega bo'lmaydi. Bu ular bilan tanish bo'lmaganlar uchun qanday dizayn naqshlari ekanligini o'rganishning oddiy va qulay usuli. Mualliflarning fikricha, Design Patterns – Java (yoki C#) tili bilan allaqachon tanish bo‘lgan, obyektga yo‘naltirilgan dizayn tamoyillarini o‘rganishni xohlovchilar va zerikarli ma’ruzalardan ko‘ra jonli suhbatni afzal ko‘rganlar uchun mos bo‘lgan kitob. Bu kitob ma'lumotnoma emas! Agar siz tajribaga ega bo'lgan professional dasturchi bo'lsangiz va ushbu naqshlarning hech bo'lmaganda bir qismi bilan ishlasangiz, kitob sizni qiziqtirishi dargumon. Kitobning muhim tarkibiy qismi bu mashqlar: ularni o'tkazib yubormaslik kerak. Agar siz kitobni diqqat bilan o'qib chiqsangiz va o'ta og'ir holatlarda Internetda minimal qidiruvni amalga oshirsangiz, ularni hal qilish sizga bosh og'rig'ini qo'shmaydi. Lekin, albatta, foyda bo'ladi. Hech bo'lmaganda, siz kitobda keltirilgan nazariyani chuqurroq tushunasiz.

Afzalliklar va kamchiliklar

Men, JavaRush-da o'qiydiganlarning ko'pchiligi kabi, zerikarli ma'ruzalarga, tiqilib qolgan materiallarga va bilimga chanqoq talaba ruhiyatiga qarshi boshqa zo'ravonliklarga sovuq munosabatdaman. Menimcha, tushunarsiz matnlarni yod olishga sarflangan energiya muqobil ta'lim manbalarini topishga sarflanadi. Ushbu kitob sizning vaqtingiz va kuchingizga arziydi. Ajoyib taqdimot uslubi, o'quvchi e'tiborini to'g'ri boshqarish va asosiy fikrlarni takrorlash ushbu kitobning asosiy afzalligi - materialni o'zlashtirishning qulayligi . Ko'p sonli rasmlar qo'shimcha ortiqcha. Menimcha, kitobdagi har bir rasmning o‘z o‘rni bor: ularning barchasi mualliflarning so‘zlarini mustahkamlash va materialning mohiyatini chuqurroq anglash imkonini beradi. Yuqorida yozganimdek, bu kitob ma'lumotnoma emas: uning mualliflari barcha naqshlarni sanab o'tish niyatida emas. Uning asosiy vazifasi - asosiy naqshlarni tushunish va ular haqida gapirish, shunda boshqa, murakkabroq narsalarni tushunish osonroq bo'ladi. Va u buni 100% engadi. Kamchiliklari orasida rus tilidagi Bosh birinchi dizayn naqshlarini ingliz tilidagi kabi o'qish oson emas. Albatta, har bir ishlab chiquvchi ingliz tilini bilishi kerak, ammo yangi boshlanuvchi dasturchilar bu mahoratni har doim ham kitoblarni asl nusxada o'qiy oladigan darajada rivojlantirmaydilar. Biroq, buni majburiy minus deb hisoblash mumkin, chunki material juda aniq taqdim etilgan va ma'no saqlanib qolgan.

Dizayn naqshlari bo'yicha qo'shimcha kitoblar

Men fundamental mavzularni bir nechta manbalardan o'rganish va ularda mos taqdimot uslubini izlash yaxshiroq degan fikr tarafdoriman. Agar siz naqshlarga sho'ng'ib, qo'shimcha nazariyani o'qimoqchi bo'lsangiz, menga ishoning, sizda kechqurun ishg'ol qiladigan narsangiz bo'ladi.
  1. Ob'ektga yo'naltirilgan dizayn texnikasi. Dizayn naqshlari (Gamma E., Helm R., Jonson R., Vlissides J.).

    "Dizayn naqshlari" kitobining sharhi (Bosh birinchi dizayn naqshlari) - 2

    Bu jiddiyroq nashr, naqshlar bo'yicha ma'lumotnoma, "To'rtlik to'dasi" dan juda hurmatli kitob. Ko'pchilik buni OO dizaynining Injil deb ataydi.

    Internetda ishlab chiquvchilarning fikrlari 3 ta lagerga bo'lingan:

    • Ba'zilar kitobning eskirganligi va taqdimot uslubi o'qishni imkonsiz qilishini ta'kidlaydi
    • boshqalar kitobdan faqat naqshlar bo'yicha ma'lumotnoma sifatida foydalanishni tavsiya qiladi, boshqa hech narsa emas
    • Boshqalar esa bu kitob dizayn naqshlarining muqaddas qismidir va uni bir kun kelib Java Katta dasturchi bo'lishni istagan har bir kishi o'qishi kerakligini aytadi.
    Men ikkinchi guruh tarafdoriman: menimcha, kitob haqiqatan ham arziydi, lekin uni biron bir ma'lumot qidirish uchun emas, balki rivojlanish uchun o'qish juda qiyin.

    Muhim:Kitobdagi misollar C++ tilida yozilgan.

  2. Java EE. Professionallar uchun dizayn naqshlari (Murat Yener, Aleks Fidom).

    "Dizayn naqshlari" kitobining sharhi (Bosh birinchi dizayn naqshlari) - 3

    Ushbu kitob Enterprise ilovalari dizayniga bag'ishlangan: u real hayotdagi amaliy muammolarning ko'plab misollarini qamrab oladi.

  3. Java-da dizayn naqshlari (Grand M.).

    "Dizayn naqshlari" kitobining sharhi (Bosh birinchi dizayn naqshlari) - 4

    Kitob naqshlardan foydalanish ishlab chiquvchilar vaqtini qanday tejashini rang-barang tarzda namoyish etadi, UML tilining umumiy ko'rinishini taqdim etadi va 47 dizayn naqshlarini tasvirlaydi.

JavaRush-da dizayn naqshlari

JavaRush kursida dizayn naqshlari Java Collections kvestining 7-darajasida o'rganiladi. 1 va 2 ma'ruzalar eng keng tarqalgan naqshlarga bag'ishlangan bo'lib, 4- ma'ruzada siz ushbu mavzu bo'yicha masalalarni hal qilishingiz mumkin. Quyida "o'zingizni mustahkamlash" uchun ba'zi qiziqarli maqolalar mavjud:
  1. Kategoriyalar, misollar, bizga yoqadigan barcha narsalar bilan naqshlar mavzusidagi umumiy maqola .

  2. Naqshlar bo'yicha ikkita maqola: 1-qism umumiy ko'rinish va batafsilroq 2-qism .

  3. Misol sifatida Singleton naqshini ishlatib, dizayn naqshlari .

  4. Strategiya ” va “ Adapter ” naqshlari haqidagi maqolalar.

  5. Dizayn naqshlari tushunchasi UML diagrammalari bilan bog'liq, ushbu maqola ular nima ekanligini tushunishga yordam beradi.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION