کدنامهمرجع‌های مهندسی نرم‌افزار، به فارسی

معماری نرم‌افزار و تحلیل سیستم

Software architecture & system analysis

معماری یعنی تصمیم‌هایی که عوض کردنشان بعداً گران است. این مسیر یادت می‌دهد کدام تصمیم‌ها این‌طورند، چطور بگیری‌شان، و چطور کدی بنویسی که شش ماه بعد هم بشود عوضش کرد. مثال‌ها در ‎C#‎، پایتون، تایپ‌اسکریپت و Go می‌آیند.

۲۹فصل
۴۸۹تمرین با پاسخ
≈ ۴۵ ساعتزمان تخمینی
۳پروژهٔ نهایی

پیشرفت تو

۰٪

درصد هر فصل از دو چیز می‌آید: چقدر از بخش‌هایش را خوانده‌ای (۵۵٪) و چند تمرینش را تیک زده‌ای (۴۵٪). همه‌چیز داخل مرورگر خودت می‌ماند.

فصل

فصل‌ها به هم وابسته‌اند و ترتیبشان معنا دارد. هر مسیر با پروژه‌های نهایی تمام می‌شود: ساده، متوسط، پیچیده.

۱

معماری چیست و کدام تصمیم معماری است

تفاوت تصمیم معماری با تصمیم پیاده‌سازی، و معیار «گران برای تغییر».

در نوبت نوشتن
۲

تحلیل سیستم: از نیاز تا مدل

استخراج نیاز، ‎use case‎ و اولین مدل دامنه.

در نوبت نوشتن
۳

کیفیت‌ها و trade-off

تغییرپذیری، تست‌پذیری، کارایی — نمی‌شود همه را با هم داشت.

در نوبت نوشتن
۴

وابستگی و جهت آن

‏coupling، cohesion، و اینکه چرا جهت وابستگی مهم‌تر از وجودش است.

در نوبت نوشتن
۵

‏SOLID ۱: SRP و OCP

با کد واقعی، نه مثال دایره و مربع.

در نوبت نوشتن
۶

‏SOLID ۲: LSP، ISP، DIP

و اینکه ‎DIP‎ چطور کل جهت معماری را برمی‌گرداند.

در نوبت نوشتن
۷

معماری لایه‌ای کلاسیک

‏presentation، business، data — و جایی که به گِل می‌نشیند.

در نوبت نوشتن
۸

مشکل معماری لایه‌ای

چرا لایهٔ دامنه به پایگاه‌داده وابسته می‌شود و تست‌پذیری می‌میرد.

در نوبت نوشتن
۹

وارونگی وابستگی در عمل

همان کد لایه‌ای، با یک تغییر جهت — و اثرش بر تست.

در نوبت نوشتن
۱۰

معماری شش‌ضلعی

‏port و adapter: دامنه در مرکز، همه‌چیز دیگر افزونه.

در نوبت نوشتن
۱۱

شش‌ضلعی، قدم‌به‌قدم

یک سرویس واقعی از صفر با ‎port‎ و ‎adapter‎، با کد کامل.

در نوبت نوشتن
۱۲

معماری Onion

لایه‌های هم‌مرکز، و قاعدهٔ وابستگی رو به مرکز.

در نوبت نوشتن
۱۳

‏Clean Architecture

‏entity، use case، adapter، framework — و قاعدهٔ وابستگی.

در نوبت نوشتن
۱۴

‏Clean، قدم‌به‌قدم

همان سرویس، این‌بار با ساختار Clean کامل و مرزهای صریح.

در نوبت نوشتن
۱۵

لایه‌ای، شش‌ضلعی، Onion، Clean

چهار نام برای یک ایدهٔ مشترک — تفاوت‌های واقعی و ماتریس انتخاب.

در نوبت نوشتن
۱۶

هزینهٔ معماری تمیز

کِی ارزشش را دارد و کِی فقط پوشه‌های خالی می‌سازی.

در نوبت نوشتن
۱۷

الگوهای ساختنی

‏Factory، Builder، Prototype — و چرا ‎Singleton‎ معمولاً دام است.

در نوبت نوشتن
۱۸

الگوهای ساختاری

‏Adapter، Decorator، Facade، Proxy، Composite.

در نوبت نوشتن
۱۹

الگوهای رفتاری ۱

‏Strategy، Observer، Command.

در نوبت نوشتن
۲۰

الگوهای رفتاری ۲

‏State، Template Method، Chain of Responsibility، Mediator.

در نوبت نوشتن
۲۱

‏Repository و Unit of Work

کِی مفیدند و کِی فقط یک لایهٔ اضافه‌اند.

در نوبت نوشتن
۲۲

‏CQRS

جدا کردن خواندن از نوشتن، با هزینه‌هایش.

در نوبت نوشتن
۲۳

معماری رویدادمحور

رویداد در برابر فراخوانی مستقیم، و سازگاری نهایی.

در نوبت نوشتن
۲۴

هرم تست

‏unit، integration، contract — تستی که اجازهٔ تغییر بدهد.

در نوبت نوشتن
۲۵

‏refactoring به‌سمت معماری

از کد موجود شروع کن، نه از دیاگرام.

در نوبت نوشتن
۲۶

مستندسازی معماری

‏C4 و ‎ADR‎: تصمیم را ثبت کن، نه فقط نتیجه را.

در نوبت نوشتن
۲۷

پروژهٔ ۱ — بازطراحی یک ‎CRUD‎ به لایه‌ای

از یک فایل هزارخطی به لایه‌هایی با مسئولیت روشن.

در نوبت نوشتنپروژهٔ ساده
۲۸

پروژهٔ ۲ — همان سیستم، شش‌ضلعی

دامنه را از پایگاه‌داده و وب جدا کن و تست کامل بنویس.

در نوبت نوشتنپروژهٔ متوسط
۲۹

پروژهٔ ۳ — ‎Clean‎ با ‎CQRS‎ و رویداد

مرزهای صریح، مدل خواندن جدا، و سازگاری نهایی.

در نوبت نوشتنپروژهٔ پیچیده