
توسعه یک نرمافزار موفق، فراتر از نوشتن خطوط کد بدون خطا است؛ این فرآیند با جمعآوری و تحلیل دقیق نیازمندیها آغاز میشود، با اعمال اصول طراحی مهندسی شکل میگیرد و در نهایت، به کمک الگوهای طراحی (Design Patterns) ساختاریافته و محکم میشود. بزرگترین دشمنان یک نرمافزار ایدهآل، «تغییرات مداوم» و «پیچیدگی» هستند. اگر یک برنامه از معماری درستی برخوردار نباشد، با گذشت زمان و افزایش نیازمندیها، نگهداری آن غیرممکن و اصلاح آن بسیار پرهزینه خواهد شد.
کتاب Object-Oriented Software Design in C++ منتشر شده توسط انتشارات معتبر Manning، اثری منحصربهفرد از رونالد مک (Ronald Mak)، دانشمند ارشد سابق ناسا و استاد دانشگاه سنخوزه است. این کتاب راهنمایی جامع برای برنامهنویسانی است که میخواهند از سطح یک کدنویس ساده فراتر رفته و به یک معمار نرمافزار تبدیل شوند؛ متخصصی که برنامههایی قابلاعتماد، انعطافپذیر، با کمترین باگ ممکن و با کارایی بالا در زمان اجرا (Run time) خلق میکند. نویسنده با بهرهگیری از دههها تجربه خود در پروژههای عظیمی چون مریخنوردها و ایستگاه فضایی بینالمللی، مفاهیم طراحی را به شکلی کاملاً کاربردی تبیین کرده است.
آموزش از طریق کدهای بد به کدهای خوب: یکی از بهترین روشهای یادگیری معماری، بررسی کدهای ضعیف است. این کتاب پر از مثالهای واقعی از برنامههایی با طراحی نادرست است و خط به خط به شما توضیح میدهد که چرا این کدها بد هستند و چگونه میتوان آنها را به ساختاری مهندسیشده و استاندارد بازسازی (Refactor) کرد.
تمرکز بر مفاهیم فرابخشی: برنامه نویسی در این کتاب بر پایه استاندارد C++17 است، اما نویسنده بهعمد از ویژگیهای بیش از حد پیچیده و گیجکننده این زبان (مانند بارگذاری بیش از حد کلمه کلیدی const) دوری کرده است. هدف این است که اصول طراحی شیءگرا به قدری شفاف بیان شوند که شما بتوانید این الگوها را به راحتی در سایر زبانهای شیءگرا مانند جاوا یا پایتون نیز اعمال کنید.
پوشش کامل الگوهای طراحی استاندارد (GoF): بخش وسیعی از کتاب به الگوهای طراحی اثباتشده صنعت نرمافزار اختصاص یافته است. یادگیری این الگوها به شما زبان مشترکی با سایر توسعهدهندگان بزرگ دنیا میدهد تا ساختارهای معماری پیچیده را به راحتی پیادهسازی کنید.
این کتاب در ۱۶ فصل و ۵ بخش اصلی، یک فرآیند گامبهگام و زنجیرهای را دنبال میکند که در آن هر فصل بر پایه فصول قبلی بنا شده است:
فصل ۱: مفهوم طراحی نرمافزار؛ تبیین ماهیت معماری نرمافزار به همراه بررسی چندین مثال عینی از دنیای واقعی.
فصل ۲: توسعه درایتی و تکرارپذیر (Iterative Development)؛ نحوه پیشبرد گامبهگام پروژه برای رسیدن به یک طراحی عالی.
فصل ۳: تحلیل نیازمندیها؛ چگونگی استخراج خواستههای کارفرما و معرفی نمودارهای استاندارد UML.
کلمات کلیدی:فصل ۴: طراحی اصولی کلاسها؛ پایهگذاری ساختار اولیه کلاسها بر اساس استانداردهای شیءگرایی.
فصل ۵: پنهانسازی پیادهسازی (Implementation Hiding)؛ چرا نباید جزئیات داخلی کلاسها برای بیرون فاش شود؟
فصل ۶: اصل عدم غافلگیری؛ چرا نباید کدهایی بنویسیم که رفتار آنها کاربران یا دیگر توسعهدهندگان را شگفتزده و گمراه کند؟
فصل ۷: طراحی درست زیرکلاسها (Subclasses)؛ اصول ارثبری امن و مهندسیشده.
فصل ۸: الگوهای Template Method و Strategy؛ مدیریت الگوریتمهای رفتاری پلتفرم.
فصل ۹: الگوهای Factory Method و Abstract Factory؛ اصول ساخت هوشمند اشیاء بدون وابستگی شدید.
فصل ۱۰: الگوهای Adapter و Façade؛ یکپارچهسازی کدهای قدیمی و سادهسازی اینترفیسهای پیچیده.
فصل ۱۱: الگوهای Iterator و Visitor؛ پیمایش کانتینرها و تفکیک عملیات از ساختار داده.
فصل ۱۲: الگوی Observer؛ مدیریت مکانیزم رویدادها (Event-driven) و مانیتورینگ تغییرات وضعیت.
فصل ۱۳: الگوی State؛ بکارگیری ماشین وضعیت برای تغییر رفتار شیء بر اساس شرایط.
فصل ۱۴: الگوهای Singleton ،Composite و Decorator؛ ترکیب اشیاء و توسعه پویا قابلیتها.
فصل ۱۵: طراحی راهکارها با رکورژن (Recursion) و بازگشت به عقب (Backtracking).
فصل ۱۶: برنامهنویسی چندنخی (Multithreaded Programs)؛ اصول طراحی نرمافزارهای همروند و همگام.
این کتاب برای برنامهنویسان سطح مبتدی تا متوسط C++ که با اصول اولیه برنامهنویسی شیءگرا (OOP) آشنایی دارند و اکنون میخواهند مهارت خود را برای ورود به شرکتهای تراز اول نرمافزاری ارتقا دهند، نگارش شده است. اگر میخواهید کدهایی بنویسید که در برابر تغییرات بیزینس مقاومت نکنند و توسعه آنها لذتبخش باشد، این کتاب راهنمای ایده آل شماست.
نمونه چاپ کتاب موجود نیست.
نظرات کاربران (0)