JavaRush /جاوا بلاگ /Random-UR /کتاب "ہیڈ فرسٹ ڈیزائن پیٹرنز" کا جائزہ
Alex
سطح

کتاب "ہیڈ فرسٹ ڈیزائن پیٹرنز" کا جائزہ

گروپ میں شائع ہوا۔
ان لوگوں میں جو کم از کم ہیڈ فرسٹ سیریز سے کم سے کم واقف ہیں، بہت سے ایسے بھی ہیں جو اس طرح کے ادب کو ابتدائی افراد کے لیے سطحی پڑھنا سمجھتے ہیں۔ میں کیا کہہ سکتا ہوں، یہ ممکن نہیں ہے کہ 48 گھنٹوں میں پروگرامنگ کے میدان میں کسی پیچیدہ موضوع کا گہرائی سے مطالعہ کیا جا سکے۔ تاہم، یہ بحث کرنا مشکل ہے کہ ڈیزائن پیٹرنز ایک ایسی کتاب ہے جو شروع کرنے والوں کے لیے پروگرامنگ کے لیے ایک مفید رہنما ثابت ہوگی۔ یہ کتاب Stackoverflow پر سب سے زیادہ مقبول دس کتابوں میں سے ایک ہے، اور اچھی وجہ سے۔ پیشکش کی آسانی، بنیادی موضوع اور اعلیٰ معیار کی مثالیں کتاب کو اب اور، میری رائے میں، آنے والے کئی سالوں تک مقبول بناتی ہیں۔ کتاب "ہیڈ فرسٹ ڈیزائن پیٹرنز" کا جائزہ - 1

کتاب کی خصوصیات

ہیڈ فرسٹ ڈیزائن پیٹرن ہمیں بتاتا ہے کہ پیٹرن کیا ہیں، انہیں کیسے استعمال کیا جائے، اور ان کے بارے میں کیسے سوچا جائے۔ پیٹرن ایک ٹیمپلیٹ ہے، مسائل کے مخصوص سیٹ کے لیے ایک عالمگیر حل۔ ڈیزائن پیٹرن ، بدلے میں، عام طور پر استعمال شدہ آرکیٹیکچرل حل ہیں جو صارف کے دوستانہ اور لچکدار ایپلی کیشنز کو لکھنے کے لیے استعمال کیے جا سکتے ہیں۔ پوری دنیا کے ڈویلپرز ایک جیسے مسائل کو ایک ہی نقطہ نظر سے حل کرتے ہیں۔ جیسا کہ تشریح کہتی ہے، اگر آپ پہیے کو دوبارہ ایجاد نہیں کرنا چاہتے ہیں، تو ریڈی میڈ ڈیزائن ٹیمپلیٹس (پیٹرنز) استعمال کریں، جن کے ساتھ یہ کتاب کام کرنے کے لیے وقف ہے ۔ الگ سے، یہ مواد کی پیش کش پر توجہ دینے کے قابل ہے: ہیڈ فرسٹ سیریز کی کتابیں اپنی سادگی کے لیے مشہور ہیں اور ایک ہی نشست میں پڑھی جاتی ہیں۔ "ڈیزائن پیٹرن" کوئی استثنا نہیں ہے۔ یہ مندرجہ ذیل کلیدی اصولوں پر بھی عمل پیرا ہے:
  1. مرئیت
  2. پریزنٹیشن کا گفتگو کا انداز
  3. مثالوں کی ایک بڑی تعداد
  4. قارئین کی فعال شرکت
  5. جذبات کی اپیل
  6. قارئین کی توجہ حاصل کرنا
کتاب کے مصنفین نے مواد کو پیش کرنے کے لیے میٹاکوگنیشن کے نظریہ کو قابلیت کے ساتھ استعمال کیا: میرے لیے، پہلے 100 صفحات پر کسی کا دھیان نہیں گیا۔ اس نقطہ نظر کی خوبصورتی یہ ہے کہ دماغ دراصل جو کچھ پڑھتا ہے اسے یاد رکھتا ہے۔ بیانیہ کے کئی اسلوب، دلچسپ سوالات، فالتو پن اور تخلیقی صلاحیتوں کا مجموعہ - یہ سب قاری کو مرکزی موضوع میں دلچسپی کھونے میں مدد کرتا ہے۔ کتاب خریدنے سے پہلے، ملے جلے جائزے پڑھنے کے بعد میں تذبذب کا شکار تھا۔ تاہم، اس موضوع پر بہت سے دوسرے ذرائع کو تیزی سے دیکھنے کے بعد، میں نے فیصلہ کیا: پیٹرن میں غوطہ لگانے کے لیے، یہ کتاب وہی ہے جس کی آپ کو ضرورت ہے۔

مرکزی تھیم اور کلیدی خیال

"یقینی طور پر کسی نے آپ کا مسئلہ پہلے ہی حل کر دیا ہے" - اس طرح کتاب کا پہلا باب شروع ہوتا ہے، پروگرامنگ میں ڈیزائن پیٹرن کے پورے معنی کو بیان کرتا ہے۔ اصل مقصد یہ ہے کہ ان کا مفہوم درست طریقے سے قارئین تک پہنچایا جائے، کیونکہ سب سے پہلے، پروگرامر کو معلوم ہونا چاہیے کہ پیٹرن کس چیز کے لیے ہیں اور انہیں کس مقام پر لاگو کرنے کی ضرورت ہے۔ بنیادی طور پر، آپ کو پہلے ٹیمپلیٹس کو اپنے سر میں چھوٹے چھوٹے ٹکڑوں میں ترتیب دینے کی ضرورت ہے، اور اس کے بعد ہی انہیں پروگراموں میں لاگو کریں۔ اگر پروگرامنگ میں ابتدائی طور پر پیٹرن کی اچھی سمجھ ہے، تو ان کا استعمال کوڈ کو بہت پیچیدہ بنا سکتا ہے (لیکن اسے آسان بنانا چاہیے!) اس سوال پر کہ "ڈیزائن کے پیٹرن کیوں استعمال کیے جائیں؟" کتاب ایک واضح جواب دیتی ہے: "تجزیہ، وراثت، اور پولیمورفزم جیسے تصورات کو جاننا آپ کو ایک اچھا OO ڈیزائنر نہیں بناتا ہے۔ نمونوں میں OO ڈیزائن کا ثابت شدہ تجربہ ہوتا ہے۔

"خلاصہ"

کتاب کو 14 ابواب کے علاوہ ایک تعارف میں تقسیم کیا گیا ہے۔ شروع میں، کتاب کے مصنفین قاری کو تیار کرنے کی کوشش کرتے ہیں، اس کے دماغ کو درست طریقے سے پیٹرن ڈیزائن کے بارے میں معلومات کو سمجھنے کے لیے تیار کرتے ہیں۔ پہلا باب اس بات کی وضاحت کرتا ہے کہ نمونوں کے بنیادی اصول اور وہ کن مقاصد کی تکمیل کرتے ہیں۔ سب سے زیادہ استعمال ہونے والے نمونوں میں سے ایک - حکمت عملی - آسانی سے اور بلا روک ٹوک جانچ کی جاتی ہے۔ ابواب دو سے گیارہ انفرادی نمونوں کے تفصیلی تجزیہ کے لیے وقف ہیں :
  1. مبصر. واقعات کو ان اشیاء میں تقسیم کرتا ہے جو ان کے وقوع پذیر ہونے میں دلچسپی رکھتے ہیں۔
  2. ڈیکوریٹر۔ جاوا میں وراثت پر ایک اور نظر اور کوڈ میں ترمیم کیے بغیر جاوا کلاسز کو نئی صلاحیتیں فراہم کرنا۔
  3. فیکٹری۔ پیٹرن کوڈ کو ناپسندیدہ انحصار سے بچاتا ہے۔
  4. سنگل سنگلٹن کے نام سے بھی جانا جاتا ہے، یہ آپ کو پورے پروگرام کے لیے ایک کلاس آبجیکٹ بنانے کی اجازت دیتا ہے۔
  5. ٹیم پیٹرن آپ کو اس کی صلاحیتوں کو بڑھاتے ہوئے، طریقہ کال کو آسانی سے سمیٹنے کی اجازت دیتا ہے۔
  6. اڈاپٹر اور اگواڑا۔ انٹرفیس کی عدم مطابقت کے مسئلے کو حل کرنے کے ساتھ ساتھ ان کے انٹرفیس کو آسان بنانے کے لیے اشیاء کی پیکیجنگ۔
  7. ٹیمپلیٹ کا طریقہ۔ الگورتھمک بلاکس کا انکیپسولیشن، ذیلی طبقات کو کسی بھی وقت مطلوبہ پروسیسنگ الگورتھم کے ساتھ منسلک کرنے کی اجازت دیتا ہے۔
  8. تکرار کرنے والا اور لنکر۔ پیٹرن مجموعوں کے ذریعے تکرار کرنے کے لیے ایک آسان ٹول فراہم کرتا ہے، قطع نظر ان کی قسم۔ مزید برآں، باب سپر کلیکشنز کے بارے میں کچھ معلومات فراہم کرتا ہے۔
  9. حالت. اشیاء کو ان کی اندرونی حالت میں تبدیلیوں کے ذریعے اپنے رویے کو کنٹرول کرنے کی صلاحیت سے نوازا جاتا ہے۔
  10. نائب کسی چیز تک رسائی کو کنٹرول کرنے کے لیے ایک بہت ہی آسان نمونہ۔
باب 12 جامع نمونوں کی جانچ کرتا ہے، یا اس کے بجائے کچھ نمونوں کے مجموعے جن پر بات کی گئی ہے، جو طاقتور سافٹ ویئر آرکیٹیکچر بنانے کے لیے استعمال کیے جا سکتے ہیں۔ باب 13 حقیقی مسائل میں پیٹرن کے استعمال کے لیے وقف ہے، پیٹرن کی درجہ بندی، ان کی اقسام اور استعمال کے لیے رہنما اصول پیش کیے گئے ہیں۔ یہ کتاب باب 14 کے ضمیمہ کے طور پر کام کرتی ہے، جس میں نمونوں کی ایک وسیع رینج کا احاطہ کیا گیا ہے۔ ان میں سے ہر ایک اپنے طریقے سے مفید ہے، اس لیے ان کا جاننا زیادہ ضروری ہے۔ بلاشبہ، وہ ابواب 2-11 کے نمونوں کی طرح مقبول نہیں ہیں، لیکن یہ انہیں کم مفید نہیں بناتا ہے۔ کتاب پیٹرن تھیوری کی علمی اعتبار سے درست پیش کش ہونے کا بہانہ نہیں کرتی ہے۔ لیکن اگر ہیڈ فرسٹ کی کتابیں اتنی پیچیدہ ہیں، تو خواہشمند ڈویلپرز کو یہ جاننے کا موقع نہیں ملے گا کہ کیا ہے اور اپنے لیے بنیادی باتیں واضح کریں۔ یہ جاننے کا ایک آسان اور آسان طریقہ ہے کہ ان لوگوں کے لیے جو ان سے واقف نہیں ہیں ڈیزائن کے نمونے کیا ہیں۔ مصنفین کے مطابق، ڈیزائن پیٹرنز ایک ایسی کتاب ہے جو ان لوگوں کے لیے موزوں ہے جو جاوا (یا C#) سے پہلے سے واقف ہیں، آبجیکٹ اورینٹڈ ڈیزائن کے اصول سیکھنا چاہتے ہیں، اور بورنگ لیکچرز پر جاندار گفتگو کو ترجیح دیتے ہیں۔ یہ کتاب حوالہ کتاب نہیں ہے! اگر آپ تجربہ رکھنے والے پیشہ ور ڈویلپر ہیں اور کم از کم ان نمونوں کے کچھ حصے کے ساتھ کام کرتے ہیں، تو اس کتاب میں آپ کے لیے دلچسپی کا امکان نہیں ہے۔ کتاب کا ایک اہم جزو مشقیں ہیں: آپ کو انہیں نہیں چھوڑنا چاہیے۔ اگر آپ کتاب کو غور سے پڑھیں اور انتہائی صورتوں میں، انٹرنیٹ پر کم سے کم تلاش کریں، تو انہیں حل کرنے سے آپ کے لیے سر درد نہیں بڑھے گا۔ لیکن فائدہ ضرور ہوگا۔ کم از کم، آپ اس نظریہ کو زیادہ گہرائی سے سمجھیں گے جو کتاب میں پیش کیا گیا ہے۔

فائدے اور نقصانات

میں، جاوا رش میں پڑھنے والوں میں سے بہت سے لوگوں کی طرح، بورنگ لیکچرز، مواد کو کچلنے اور علم کے پیاسے طالب علم کی نفسیات کے خلاف دیگر تشدد کے بارے میں سرد رویہ رکھتا ہوں۔ میری رائے میں ناقابل فہم تحریروں کو حفظ کرنے پر خرچ ہونے والی توانائی سیکھنے کے متبادل ذرائع تلاش کرنے پر خرچ ہوتی ہے۔ یہ کتاب ایک ایسی ہے جو آپ کے وقت اور کوشش کے قابل ہے۔ ایک بہترین پریزنٹیشن کا انداز، قاری کی توجہ کا قابل انتظام، اور اہم نکات کی تکرار اس کتاب کا بنیادی فائدہ ہے - مواد کی آسانی کے ساتھ ۔ عکاسیوں کی ایک بڑی تعداد ایک اضافی پلس ہے۔ میری رائے میں، کتاب میں ہر تصویر کی اپنی جگہ ہے: وہ سب آپ کو مصنفین کے الفاظ کو تقویت دینے اور مواد کے جوہر کے بارے میں گہری سمجھ حاصل کرنے کی اجازت دیتے ہیں۔ جیسا کہ میں نے اوپر لکھا ہے، یہ کتاب کوئی حوالہ کتاب نہیں ہے: اس کے مصنفین تمام نمونوں کو درج کرنے کا ارادہ نہیں رکھتے۔ اس کا بنیادی کام تفہیم فراہم کرنا اور بنیادی نمونوں کے بارے میں بات کرنا ہے تاکہ دوسرے، زیادہ پیچیدہ، کو سمجھنے میں آسانی ہو۔ اور وہ اس کا 100٪ مقابلہ کرتی ہے۔ نقصانات میں سے ایک یہ ہے کہ روسی میں ہیڈ فرسٹ ڈیزائن کے پیٹرن انگریزی میں پڑھنا اتنا آسان نہیں ہے۔ بلاشبہ، ہر ڈویلپر کو انگریزی بولنی چاہیے، لیکن نوسکھئیے پروگرامرز ہمیشہ اس مہارت کو اس حد تک ترقی نہیں دیتے کہ وہ اصل میں کتابیں پڑھ سکیں۔ تاہم، یہ ایک زبردستی مائنس سمجھا جا سکتا ہے، کیونکہ مواد بالکل درست طریقے سے پیش کیا گیا ہے اور معنی محفوظ ہے.

ڈیزائن کے نمونوں پر اضافی کتابیں۔

میں اس عقیدے کا حامی ہوں کہ کئی ذرائع سے بنیادی موضوعات کا مطالعہ کرنا اور ان میں پیش کش کا مناسب انداز تلاش کرنا بہتر ہے۔ جب آپ پیٹرن میں غوطہ لگانا چاہتے ہیں اور اضافی تھیوری پڑھنا چاہتے ہیں، تو مجھ پر یقین کریں، آپ کے پاس اپنی شاموں پر قبضہ کرنے کے لیے کچھ ہوگا۔
  1. آبجیکٹ پر مبنی ڈیزائن کی تکنیک۔ ڈیزائن پیٹرنز (Gamma E.، Helm R.، Johnson R.، Vlissides J.)

    کتاب کا جائزہ "ڈیزائن پیٹرنز" (ہیڈ فرسٹ ڈیزائن پیٹرنز) - 2

    یہ ایک زیادہ سنجیدہ اشاعت ہے، نمونوں کی ایک حوالہ کتاب، "گینگ آف فور" کی ایک بہت ہی قابل احترام کتاب ہے۔ بہت سے لوگ اسے OO ڈیزائن کی بائبل کہتے ہیں۔

    انٹرنیٹ پر، ڈویلپرز کی رائے کو 3 کیمپوں میں تقسیم کیا گیا ہے:

    • کچھ لوگ دلیل دیتے ہیں کہ کتاب پرانی ہے اور پیش کش کا انداز اسے پڑھنا ناممکن بنا دیتا ہے۔
    • دوسرے لوگ اس کتاب کو صرف نمونوں پر ایک حوالہ کتاب کے طور پر استعمال کرنے کا مشورہ دیتے ہیں، اس سے زیادہ کچھ نہیں۔
    • اب بھی دوسرے لوگ کہتے ہیں کہ یہ کتاب ڈیزائن کے نمونوں کی ہولی گریل ہے اور اسے ہر اس شخص کو پڑھنا چاہیے جو ایک دن جاوا کا سینئر ڈویلپر بننا چاہتا ہے۔
    میں دوسرے گروپ کا پیروکار ہوں: میں سمجھتا ہوں کہ کتاب واقعی قابل ہے، لیکن اسے ترقی کے لیے پڑھنا، نہ کہ کسی معلومات کی تلاش کے لیے، بہت مشکل ہے۔

    اہم:کتاب میں مثالیں C++ میں لکھی گئی ہیں۔

  2. جاوا ای ای۔ پیشہ ور افراد کے لیے ڈیزائن پیٹرن (مرات ینر، الیکس فیڈوم)۔

    کتاب کا جائزہ "ڈیزائن پیٹرنز" (ہیڈ فرسٹ ڈیزائن پیٹرنز) - 3

    یہ کتاب انٹرپرائز ایپلی کیشنز کے ڈیزائن کے لیے وقف ہے: اس میں حقیقی زندگی کے ایپلیکیشن کے مسائل کی بہت سی مثالیں شامل ہیں۔

  3. جاوا میں ڈیزائن پیٹرن (گرینڈ ایم)۔

    کتاب کا جائزہ "ڈیزائن پیٹرنز" (ہیڈ فرسٹ ڈیزائن پیٹرنز) - 4

    کتاب رنگین طریقے سے یہ ظاہر کرتی ہے کہ پیٹرن کا استعمال کس طرح ڈویلپرز کا وقت بچاتا ہے، UML زبان کا ایک جائزہ فراہم کرتا ہے، اور 47 ڈیزائن پیٹرن کو بیان کرتا ہے۔

JavaRush میں ڈیزائن پیٹرنز

JavaRush کورس میں، جاوا کلیکشن کی تلاش کے لیول 7 پر ڈیزائن کے نمونے سیکھے جاتے ہیں۔ لیکچر 1 اور 2 سب سے عام نمونوں کے لیے وقف ہیں، اور لیکچر 4 میں آپ اس موضوع پر مسائل حل کر سکتے ہیں۔ ذیل میں "خود کو مضبوط بنانے" کے لیے کچھ دلچسپ مضامین ہیں:
  1. نمونوں کے عنوان پر ایک عمومی مضمون زمرہ جات، مثالوں، ہر چیز کے ساتھ جو ہمیں پسند ہے۔

  2. پیٹرن پر دو مضامین: حصہ 1 جائزہ اور مزید تفصیلی حصہ 2 ۔

  3. سنگلٹن پیٹرن کو بطور مثال استعمال کرتے ہوئے پیٹرن ڈیزائن کریں ۔

  4. " حکمت عملی " اور " اڈاپٹر " پیٹرن کے بارے میں مضامین۔

  5. ڈیزائن پیٹرن کا تصور UML ڈایاگرام سے متعلق ہے، یہ مضمون آپ کو یہ سمجھنے میں مدد کرے گا کہ وہ کیا ہیں۔

تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION