کتاب Designing Software Architectures, 2nd Edition: A Practical Approach, 2nd Edition (طراحی معماری نرم افزار: یک رویکرد کاربردی، ویرایش دوم) یک متدولوژی عملی و گام به گام برای طراحی معماری ارائه میکند که هر مهندس نرمافزار حرفهای میتواند از آن استفاده کند، با روشهای ساختاریافته که توسط تکههای قابل استفاده مجدد از دانش طراحی و مطالعات موردی غنی پشتیبانی میشوند که نحوه استفاده از روشها را نشان میدهد.
در ادامه مقدمهای از کتاب Designing Software Architectures را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Designing Software Architectures:
اکنون نزدیک به ۸ سال از انتشار اولین نسخه طراحی معماری نرمافزار میگذرد. از آن زمان تاکنون چیزهای زیادی در دنیای فناوری تغییر کرده است – معماریهای ابری، معماریهای اینترنتاشیا (IoT)، توسعهدهندگان، ظهور هوش مصنوعی/یادگیری ماشین (AI/ML)، کانتینرها، میکروسرویسها و بسیاری موارد دیگر. آیا توصیههای ما از ۸ سال پیش هنوز مرتبط است؟ خوب، بله و نه.
خبر خوب، از دیدگاه ما، این است که اصول و شیوههای طراحی معماری نرمافزار تغییر نکرده است. روش طراحی ویژگی محور (ADD) که شاکلهی کل کتاب Designing Software Architectures، را فراهم میکند، به هیچ وجه تغییر نکرد.
بیشتر بخوانید: کتاب Software Architecture with C# 12 and .NET 8
در طول این مدت ۸ ساله، به هزاران نفر از متخصصان آموزش داده شده و در بسیاری از پروژههای صنعتی با موفقیت مورد استفاده قرار گرفته است. در تمام این مدت بازخوردها مثبت بوده و درخواستی برای تغییر روش نداشتهایم. این اطمینان بخش بود. با این حال، آنچه تغییر کرد، محیط فنی و زمینههایی بود که امروز در آن طراحی میکنیم.
امروزه به ندرت پیش میآید که شخصی یک سیستم مستقل طراحی کند. حداقل، شما بر فریمورکها و جعبهابزارهای موجود ساخته میشوید، و اجزای خارج از قفسه را که برخی از آنها احتمالاً منبع باز هستند، ترکیب میکنید.
اما ممکن است سیستمی بسازید که در زمان واقعی با سایر سیستمها در تعامل است و احتمالاً منابع را با آنها به اشتراک میگذارد. این احتمال وجود دارد که شما در حال ساختن یک سیستم با استفاده از نوعی متدولوژی Agile هستید، و سیستم شما به طور مکرر با به روزرسانی و انتشار منظم اصلاح میشود.
این امکان وجود دارد که معماریهایی که میسازید شامل دستگاههای IoT، موبایل، مبتنی بر ابر و کانتینری و تطبیقی باشد. و همچنین ممکن است نرمافزاری که با آن کار میکنید قدیمی باشد و در طول سالها بدهی فنی انباشته شده باشد.
بیشتر بخوانید: کتاب Software Architecture for Busy Developers
به همه این دلایل، ما احساس کردیم که زمان آن رسیده است که ویرایش دومی را بنویسیم، نسخهای که زمینههای جدیدی را که امروزه تصمیمات معماری در آنها گرفته میشود، تصدیق کند. در این نسخه جدید، ما اکنون فصلهایی در مورد حمایت از چابکی کسب و کار از طریق طراحی API محور، قابلیت استقرار، راه حلهای مبتنی بر ابر و بدهی فنی در طراحی داریم.
ما همچنین دو مطالعه موردی جدید برای این نسخه از کتاب Designing Software Architectures ایجاد کردیم که بر اساس و چالشهای موجود در این زمینههای جدید را بررسی میکند. مطالعه موردی سیستم قیمتگذاری هتل در فصل ۸ بسیاری از عملکردهای خود را در ریزسرویسها پیادهسازی میکند، در زیرساختهای ابری مستقر میشود، قرار است در سراسر محیطها قابل حمل باشد و به گونهای طراحی شده است که در دسترس باشد.
مطالعه موردی پلتفرم دوقلو دیجیتال ارائه شده در فصل ۹ چالشهای بیشتری را بررسی میکند: اینترنتاشیا، محاسبات ابری، دادههای بزرگ و تجزیه و تحلیل، AI/ML، واقعیت توسعه یافته (XR)، شبیهسازی، اتوماسیون پیشرفته، و اغلب روباتیک. این یک سیستم بسیار بزرگ و پیچیده است و به تلاشهای هماهنگ نه تنها یک معمار، بلکه یک تیم معماری بزرگ با تخصصهای مختلف نیاز دارد. در هر مورد ما نشان میدهیم که چگونه روش ADD به تبدیل چالشهای طراحی به واقعیت به روشی منظم کمک میکند.
ما صمیمانه امیدواریم که کتاب Designing Software Architectures به شما اعتماد به نفس لازم را برای مقابله با هر چالش طراحی، مهم نیست که چقدر بزرگ است، بدهد!
سرفصلهای کتاب Designing Software Architectures:
- Cover Page
- About This eBook
- Halftitle Page
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Preface
- Acknowledgments
- About the Authors
- 1. Introduction
- 2. Architectural Design
- 3. Making Design Decisions
- 4. The Architecture Design Process
- 5. API-centric Design
- 6. Designing for Deployability
- 7. Designing Cloud-Based Solutions
- 8. Case Study: Hotel Pricing System
- 9. Case Study: Digital Twin Platform
- 10. Technical Debt in Architectural Design
- 11. Analysis in the Design Process
- 12. The Architecture Design Process in the Organization
- 13. Final Thoughts
- Appendix. Tactics-Based Questionnaires
- Index
- From Ch. 4 of Designing Software Architectures, First Edition: Case Study: FCAPS System
- From Ch. 5 of Designing Software Architectures, First Edition: Case Study: Big Data System
- From Ch. 6 of Designing Software Architectures, First Edition: Case Study: Banking System
- From Appendix A of Designing Software Architectures, First Edition: A Design Concepts Catalog
- Code Snippets
جهت دانلود کتاب Designing Software Architectures میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.