به نظر پست بعدیم سریع تر اماده شد, بعد از معرفی کتاب Refactoring از احسان رضایی تصمیم گرفتم که کتاب الگوهای طراحی به بیان ساده رو هم تهیه کنم و بشینم بخونم.
اگر که از برنامه نویسی فانکشنال یا تابعی استفاده میکنید خب توی این مطلب چیزی خاصی برای شما ندارم و میتونید برید توی Youtube و یک ویدیوی سرگرم کننده تماشا کنید.
این کتاب توجه اصلیش روی الگوهای طراحی شی گرایی است.
چرا الگوهای طراحی؟
رفته رفته با گذشت زمان وقتی که در برنامه نویسی تعداد کلاس های ما و روابط بینشون افزایش پیدا میکنه نیاز هست که ما ساختار ها و چارچوب هایی رو استفاده کنیم. همانطور که برای ذخیره کردن یک عدد صحیح در قالب Integer و در صورتی که بازه ما شامل اعداد مثبت باشد از Unsigned Integer و یک موضوع بدیهی حساب میشود.
در صورتی که هم بخواهیم داده های برنامه رو به صورت چهارچوب دار ذخیره کنیم معمولا از پایگاه های داده استفاده میکنیم مثلا Mysql که یک پایگاه داده SQL ای است.
تقریبا همه چرخ های این حوزه طراحی شده و شامل یک Best practice است که من مفهومش رو به عنوان راه حل درست در نظر میگیرم.
در بخش الگوهای طراحی (design patterns) منظور الگوهای طراحی هست که ما برای شی گرایی استفاده میکنیم و روابط و ارث بری ها رو مدیریت میکنیم.
خواهی نخواهی برای داشتن یک نرم افزار خوب و پیچیده بخشی از کار مدیریت کلاس های مختلف است و بعد نحوه رابطه بین آنها و…
چرا این کتاب و نظرم دربارش؟
منابع مختلفی در این زمینه هستند, شامل ویدیو یوتوب یا کورس های گرون قیمت و بلاگ پست های مجانی و کتب مختلف.
چرا این کتاب؟ اگر که تازه کار هستید و یا میخواهید مروری داشته باشید به الگوهای طراحی به نظرم این کتاب با جمع و جور بودن و بررسی جامع اش میتونه دید کلی بده.
به نسبت بقیه کتاب ها حجم کمتری رو داره و تقریبا یک کتاب ۱۰۰ صفحه و زمان خوندش بین ۱ الی ۲ ساعت میشه در نظر گرفت ( و حتی کمتر).
نظر من درباره این کتاب؟
وقتی که من این کتاب رو گرفتم که قبل تر از احسان رضایی یک کتاب دیگر رو خونده بودم و میخواستم ببینم اینجا چه چیزی برای ارائه داره.
با مطالعه این کتاب و اینکه از قبل با بعضی از الگوهای طراحی اشنا بودم به نظرم کتاب ارزشمندی بود به نسبت جامع بودن و سادگی اون.
نگاهی به سرفصل ها:
فهرست کتاب:
بررسی سرفصل ها:
فصل دوم الگوهای طراحی سازنده / Creationa:
توی این فصل درباره الگوهای طراحی بخش سازنده یا Creationa صحبت میکند در این بخش الگوهایی شامل:
- Simple Factory
- Factory Method
- Abstract Factory
- Builder
- Prototype
- Singleton
را مورد بررسی قرار میدهد
فصل سوم الگوهای طراحی ساختاری / structural
توی این فصل درباره ترکیب اشیا و کلاس ها برای ساخت یک ساختار پیچیده و بزرگتر صحبت میکند.
این الگوها تلاش میکنند ساختار رو ساده تر کنند و با توجه به روابط بین موجودیت ها بر چگونگی ارث بری و نحوه تشکیل آنها تمرکز دارند.
در این بخش الگوهایی شامل:
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
را مورد بررسی قرار میدهد. الگوی Adapter و Bridge از الگو های پر طرفدار هستند.
فصل چهارم الگوهای طراحی رفتاری / Behaviora:
توی این فصل به بررسی طراحی رفتاری بین اشیا صحبت میکند این الگو ها علاوه بر ساختار, انتقال پیام و ارتباطات بین اشیا را شامل میشود.
در این بخش الگوهایی شامل:
- Chain of Responsibility
- Command
- Iterator
- Mediator
- Memento
- Observer
- Visitor
- Strategy
- State
- Template Method
را مورد بررسی قرار میدهد
تهیه کتاب الگوهای طراحی به بیان ساده :
درباره نویسنده:
احسان رضایی, میتونید احسان رو از بلاگش developit.ir یا توییتر @developit121 پیدا کنید. احسان رو من به عنوان یک فرد دانا در زمینه بک اند میشناسم که php و golang کار میکنه و دوتا کتاب نوشته یکی کتاب الگوهای طراحی به بیان ساده(design patterns/دیزاین پترن) و دیگری ری فکتورینگ refactoring. حتما سری به سایت/بلاگش بزنید.