Just Enough Software Architecture: A Risk-Driven Approach
این کتابی است که ای کاش هنگام شروع به توسعه نرم افزار، یکی از آن را داشتم. در آن زمان کتاب هایی درمورد زبانهای برنامه نویسی و برنامه نویسی شی گرا وجود داشت، اما کتابهای کمی درمورد طراحی وجود داشت. دانستن ویژگیهای زبان سی پلاس پلاس به این معنا نیست که شما میتوانید یک سیستم شی گرا خوب طراحی کنید و همچنین دانستن زبان مدل سازی یکپارچه (UML) به معنای این نیست که میتوانید یک معماری سیستم خوب طراحی کنید.
کتاب Just Enough Software Architecture، راهنمای عملی برای توسعه دهندگان نرم افزار است و متفاوت از سایر کتابهای معماری نرم افزار است، که دلایل آن را در ادامه خواهید دید.
این کتاب معماری مبتنی بر ریسک را آموزش میدهد. درصورت کوچک بودن خطرات، نیازی به طراحیهای دقیق نیست و هنگامی که خطرات موفقیت شما را تهدید میکنند هیچ عذر و بهانه ای برای طرحهای نامرتب مورد قبول نیست. این کتاب فقط روشی را برای انجام معماری کافی شرح میدهد.
این کتاب معماری را دموکراتیک میکند. این کتاب در صدد است تا معماری را به همه توسعه دهندگان نرم افزار مرتبط کند. توسعه دهندگان باید چگونگی استفاده از محدودیتها را به عنوان راهنما هایی که نتایج مطلوب را تضمین میکنند، درک کنند و اینکه تغییرات به ظاهر کوچک چگونه میتواند بر خصوصیات سیستم تأثیر بگذارد.
این کتاب دانش اعلانی را ترویج میدهد. بین اینکه بتوانید به توپ ضربه بزنید و دانستن اینکه چرا میتوانید به آن ضربه بزنید، تفاوت وجود دارد؛ آنچه روانشناسان از آن به عنوان دانش رویه ای در مقابل دانش اعلانی یاد میکنند. این کتاب باعث میشود تا شما از آنچه انجام داده اید آگاه شوید و برای مفاهیم، اسامی ارائه دهد.
این کتاب بر مهندسی تأکید دارد. این کتاب بر بخشهای فنی توسعه نرم افزار و آنچه که توسعه دهندگان انجام میدهند تا اطمینان حاصل شود که این سیستم کار میکند تمرکز دارد. در ادامه تکنیک هایی که طراحان نرم افزار برای استفاده در مشکلات متوسط و بزرگ استفاده میکنند توضیح داده میشود.
این کتاب، مشاوره عملی ارائه میدهد. تصمیمات طراحی نرم افزار بر معماری تأثیر میگذارد و بالعکس. رویکرد این کتاب با توصیف مدل هایی که دارای سطوح مختلفی از انتزاع هستند ، از معماری گرفته تا طراحی ساختار داده ، رفتار drill-down/pop-up را در بر میگیرد.
Table of Contents:
Software Architecture
Risk-Driven Model
Example: Home Media Player
Modeling Advice
Engineers Use Models
Conceptual Model of Software Architecture
The Domain Model
The Design Model
The Code Model
Encapsulation and Partitioning
Model Elements
Model Relationships
Architectural Styles
Using Architecture Models