کتاب Simple Object Oriented Design: Create Clean, Maintainable Applications (طراحی شی گرا ساده: برنامه های کاربردی تمیز و قابل نگهداری ایجاد کنید) نیاز به یک رویکرد خلاقانه دارد – و این دقیقاً همان چیزی است که در طراحی شی گرا ساده خواهید یافت.
این کتاب مملو از الگوها و اصولی برای کاهش پیچیدگی است که هر یک در کارنامه ۲۰ ساله نویسنده Mauricio Aniche در توسعه نرمافزار اثبات شده است. شما یاد خواهید گرفت که چگونه با رشد طبیعی کد در پیچیدگی مقابله کنید و یک رویکرد \”به اندازه کافی خوب\” را اتخاذ کنید که به این معنی است که در صورت تغییر نیازها، اصلاح مجدد آسان است.
در ادامه مقدمهای از کتاب Simple Object Oriented Design را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Simple Object Oriented Design:
چرا کتاب دیگری در مورد طراحی شی گرا بنویسید، در حالی که تعداد زیادی از آنها وجود دارد؟ این سؤالی بود که قبل از شروع این پروژه باید برای خودم جواب میدادم.
ما در حال حاضر دانش زیادی در مورد طراحی شی گرا از آثار اولیه دیو پارناس، کتابهای Grady Booch در UML و تجزیه و تحلیل شی گرا و رویکرد طراحی دامنه محور اریک ایوانز داریم. با این حال، طراحی شی گرا صرفاً یک کار مهندسی محض نیست. به هنر فراتر میرود. هیچ دنبالهای از مراحل تعیین شده ما را به یک طراحی بهینه هدایت نمیکند. در عوض، طراحی شی گرا نیازمند یک رویکرد خلاقانه است.
کتاب Simple Object Oriented Design از دو زاویه خاص به طراحی شی گرا میپردازد: چگونه میتوان از افزایش سرسامآور پیچیدگی یک سیستم جلوگیری کرد و چگونه به طرحهای \”به اندازه کافی خوب\” دست یافت.
اول، بیشتر کار یک توسعه دهنده حول حفظ و تکامل سیستمهای موجود است. متأسفانه، بدون مراقبت لازم، هر بار که در یک سیستم نرمافزاری تغییراتی ایجاد میکنید، پیچیدهتر میشود، حتی اگر از ابتدا به خوبی طراحی شده باشد. بنابراین، کتاب Simple Object Oriented Design به شدت بر نحوه مبارزه با رشد طبیعی در پیچیدگی تأکید میکند.
دوم، بیشتر اوقات، شما در ابتدا دانش محدودی در مورد آنچه میسازید دارید. علیرغم بهترین تلاش شما، اولین طرح شما ممکن است کوتاه بیاید. با این حال، اگر به یک طراحی به اندازه کافی خوب برسید، این قابل قبول است. هدف کتاب Simple Object Oriented Design این نیست که شما را به سمت دستیابی به بهترین طراحی ممکن هدایت کند، بلکه این است که شما را قادر سازد تا طرحهای خوبی ایجاد کنید که به شما قدرت ایجاد نرمافزار را به طور مؤثر بدهد.
اگر با ادبیات موجود در مورد طراحی شی گرا آشنا باشید، بسیاری از اصولی را که در اینجا مورد بحث قرار میگیرد، میشناسید. بیشتر دیدگاه من در مورد مدلینگ خوب از کارهای موجود الهام گرفته شده است. با این حال، من طعم خود را به اینایدهها تزریق کردهام. امیدوارم حتی توسعهدهندگان باتجربه بتوانند یک یا دو چیز از کتاب Simple Object Oriented Design به دست آورند.
در مورد این کتاب
طراحی شی گرا ساده مجموعهای از اصول را ارائه میدهد که به توسعهدهندگان کمک میکند پیچیدگی طرحهای خود را تحت کنترل نگه دارند – به عبارت دیگر، آن را ساده نگه دارند. اصول را میتوان در ششایده سطح بالاتر دستهبندی کرد:
- واحدهای کوچک کد
- اشیاء سازگار
- مدیریت وابستگی مناسب
- انتزاعات خوب
- زیرساختهای مناسب
- به خوبی مدولار شده است
چه کسی باید کتاب Simple Object Oriented Design را بخواند؟
طراحی شی گرا ساده کتابی برای توسعهدهندگان نرمافزاری است که میخواهند مهارتهای طراحی شی گرا خود را تقویت کنند. ما پیچیدگی کد، سازگاری و کپسولهسازی، مدیریت وابستگی، طراحی انتزاعها، مدیریت زیرساخت و مدولارسازی در عمق را مورد بحث قرار میدهیم. اگر یک توسعه دهنده پیشرفته هستید که با رویکردهای مشابه، مانند معماری پاک آشنا هستید، همچنان از دیدگاه منحصر به فرد کتاب Simple Object Oriented Design بهرهمند خواهید شد.
خوانندگان باید دانش پایهای از مفاهیم شی گرا مانند کلاسها، چندشکلی و رابطها داشته باشند. نمونههای کد با کدهای شبه جاوا نوشته شدهاند، اما میتوانند توسط توسعهدهندگانی که با هر زبان برنامهنویسی شی گرا مانند C#، Python یا Ruby آشنا هستند، درک کنند.
نحوه سازماندهی کتاب Simple Object Oriented Design: نقشه راه
این کتاب شامل اصول طراحی شی گرا برگرفته از تجربه من است. اصول در شش بعد (پیچیدگی، سازگاری، مدیریت وابستگی، انتزاعات، زیرساخت، و مدولارسازی)، یکی در هر فصل گروهبندی میشوند.
اصول ابتدا به صورت تئوری معرفی میشوند و بعداً با مثالهای کد نشان داده میشوند. هیچایده جدیدی در نمونه کد معرفی نشده است، بنابراین خوانندگان با تجربهتر میتوانند در صورت تمایل از آنها صرف نظر کنند.
همچنین متوجه خواهید شد که نمونهها از نظر خطوط کد و پیچیدگی کوچک هستند. نشان دادن همه اصول در کتاب Simple Object Oriented Design با مثالهای واقعی از سیستمهای نرمافزاری در مقیاس بزرگ غیرعملی است. در عوض، منایدهها را با تکههای کوچک نشان میدهم، و این به شما، خواننده، بستگی دارد کهایده را تعمیم دهید.
من تمام تلاشم را میکنم تا زمینه، مزایا و معایب، معاوضهها و زمان و زمان عدم اعمال اصول را فراهم کنم. با این وجود، مانند هر بهترین روش، باید زمینه خود را در نظر بگیرید و کورکورانه آنچه را که در اینجا مییابید، اتخاذ نکنید.
فصلها با چند تمرین به پایان میرسند که در آنها از شما میخواهمایدههای مطرح شده در آن فصل را با یک همکار در میان بگذارید. آنها عمداً گسترده و باز هستند. من پاسخی به این سؤالات نمیدهم زیرا هیچ پاسخ یکسانی وجود ندارد.
فصل ۱ معرفی میکند که چرا سیستمها در طول زمان پیچیده میشوند، چرا باید به طور مداوم با رشد پیچیدگی مبارزه کنیم، و چرا این تلاش کمتر از آن چیزی که به نظر میرسد دردناک است. سپس، فصلهای ۲ تا ۷ به ششایده سطح بالاتر میپردازند.
فصل ۲ اهمیت ساده نگه داشتن کد را مورد بحث قرار میدهد. به طور خلاصه، نحوه شکستن واحدهای بزرگ کد به قطعات کوچکتر، جداسازی پیچیدگی جدید از واحدهای کد موجود، و سند کد به طور مؤثر برای بهبود درک را پوشش میدهد.
فصل ۳ بر حفظ ثبات اشیاء در هر زمان تمرکز دارد. این به بررسی مشکلاتی میپردازد که زمانی کهاشیاء در حالت ناسازگار قرار میگیرند و نحوه پیادهسازی مکانیسمهای اعتبارسنجی که تضمین میکننداشیاء در سرتاسر یکنواخت باقی میمانند، ایجاد میشود.
فصل ۴ به بررسی وابستگیها و نحوه مدیریت صحیح آنها برای یک طراحی ساده میپردازد. توضیح میدهد که چگونه میتوان اثر جفت شدن را در طراحی کاهش داد، چگونه کلاسهای پایداری را که احتمال تغییر کمتری دارند مدلسازی کرد و چرا تزریق وابستگی برای مدیریت وابستگی مؤثر حیاتی است.
فصل ۵ انتزاعات و نحوه طراحی آنها را برای تسهیل تکامل سیستم نرمافزار بدون تغییر هر بار کلاسهای متعدد مورد بحث قرار میدهد.
فصل ۶ بر مدیریت کد زیرساخت بدون به خطر انداختن طراحی متمرکز است. این فصل نحوه جدا کردن کد زیرساخت از دامنه را توضیح میدهد و اجازه میدهد تا تغییرات در یکی بدون تأثیر بر دیگری ایجاد شود.
فصل ۷ ماژولار بودن را بررسی میکند: به طور خاص، نحوه طراحی ماژولهایی که ویژگیهای پیچیده را از طریق رابطهای ساده ارائه میدهند، نحوه به حداقل رساندن وابستگیها در بین ماژولها، و اهمیت تعریف قوانین مالکیت و تعامل.
فصل ۸ توصیههای نهایی را در مورد اهمیت عمل گرا بودن، ضرورت بازسازی مداوم و ارزش یادگیری دائمی در مورد طراحی شی گرا ارائه میدهد.
سرفصلهای کتاب Simple Object Oriented Design:
- Simple Object-Oriented Design
- Copyright
- dedication
- contents
- front matter
- 1 It’s all about managing complexity
- 2 Making code small
- 3 Keeping objects consistent
- 4 Managing dependencies
- 5 Designing good abstractions
- 6 Handling external dependencies and infrastructure
- 7 Achieving modularization
- 8 Being pragmatic
- index
جهت دانلود کتاب Simple Object Oriented Design میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.