ویرگول
ورودثبت نام
Abolfazl Omidiyan
Abolfazl Omidiyan
Abolfazl Omidiyan
Abolfazl Omidiyan
خواندن ۴ دقیقه·۴ ماه پیش

گزارش تحلیلی تکامل معماری نرم‌افزار و ضدالگوهای مستندسازی سیستم‌ها


1- Master Software Architecture: From Simplicity to Complexity

سخنران: Maciej «MJ» Jedrzejewski

این سخنرانی چالش‌های مربوط به رشد و تغییر سیستم‌های نرم‌افزاری رو بررسی می‌کنه و نشون میده که چطور یه سیستم از حالت ساده اولیه به مرور زمان به یه ساختار پیچیده تبدیل میشه. نکته خیلی مهمی که سخنران بهش اشاره می‌کنه بحث بار شناختی یا همون Cognitive Load هست که روی دوش تیم توسعه و معماران سیستم قرار می‌گیره. وقتی ویژگی‌های جدید به نرم‌افزار اضافه میشه سیستم‌ها معمولا به سمت توزیع‌شده شدن می‌رن و اگه این فرآیند درست مدیریت نشه معماری سیستم به شدت آسیب می‌بینه و به اصطلاح تبدیل به یه توده بی‌شکل یا Big Ball of Mud میشه.

برداشت من اینه که پیچیدگی به خودی خود چیز منفی یا اشتباهی نیست بلکه نشونه پیشرفت و توسعه سیستم هست اما مشکل زمانی پیش میاد که ساختارهای ما پویا نباشن و نتونن خودشون رو با این تغییرات هماهنگ کنن. به عنوان دانشجوی این رشته فکر می‌کنم این ارایه به خوبی روشن می‌کنه که معماران نرم‌افزار نباید تصمیم‌های خشک و غیرقابل تغییر بگیرن بلکه باید مرزهای ساختاری سیستم رو طوری طراحی کنن که با تغییر بار کاری یا تغییرات زیرساختی کل سیستم به هم نریزه و فرآیند توسعه کند نشه. این ویدیو دید خیلی خوبی درباره طراحی سیستم‌های توزیع‌شده پایدار به ما میده.

2- Platforms: Build Abstractions, Not Illusions

سخنران: Gregor Hohpe

توی این سخنرانی گرگور هوپ که از نویسنده‌های معروف حوزه تفکر معماری هست روی مبحث پلتفرم‌ها و رایانش ابری دست میذاره. اون تفاوت خیلی قشنگی بین انتزاع یا همون Abstraction و توهم یا Illusion تعریف می‌کنه. حرف اصلیش اینه که ما پلتفرم‌ها رو می‌سازیم تا پیچیدگی‌های زیرساخت رو از دید توسعه‌دهنده‌ها مخفی کنیم اما اگه این کار رو جوری انجام بدیم که واقعیت‌های شبکه و سخت‌افزار کاملا نادیده گرفته بشه در واقع یه توهم خطرناک ساختیم که موقع ترافیک بالا یا خرابی‌ها رفتارهای پیش‌بینی‌نشده‌ای از خودش نشون میده.

به نظر من این ارایه برای کسانی که روی لایه‌بندی قابلیتهای فناوری اطلاعات کار می‌کنن یه زنگ خطر هست. معمار سیستم نباید ارتباطش با لایه فنی و عملیاتی قطع بشه. پلتفرم‌های توزیع‌شده زمانی موفق هستن که به جای حذف کامل جزئیات ابزارهای پایش و مدیریت بهینه رو در اختیار لایه‌های بالاتر بذارن تا سیستم بتونه در شرایط بحرانی خودش رو حفظ کنه.

3- Software Architecture for Tomorrow: Expert Talk

سخنرانان: Sam Newman & Julian Wood

این ویدیو یه گفتگوی عالی بین سم نیومن که از پیشگامان بحث میکروسرویس‌ها هست و جولیان وود هست که آینده معماری نرم‌افزار رو بررسی می‌کنن. تمرکز اصلی اونا روی تقابل الگوهای ارتباطی همگام و ناهمگام یا همون Event-Driven هست. اونا نشون میدن که چطور سیستم‌های مدرن برای داشتن انعطاف بیشتر و اتصال ضعیف‌تر بین اجزا باید به سمت رویدادمحوری حرکت کنن.

برداشت من اینه که با وجود ورود ابزارهای مبتنی بر هوش مصنوعی به فرآیند توسعه باز هم تفکر استراتژیک معماری غیرقابل جایگزین هست. توی سیستم‌های بزرگ سازمانی مشخص کردن مرزهای دامنه و نحوه توزیع داده‌ها نیاز به درک عمیق از بیزینس داره. این سخنرانی به ما یاد میده که آینده این رشته در گرو ترکیب هوشمندانه سیستم‌های واکنش‌گرا و فناوری‌های نوظهور هست بدون اینکه اسیر موج‌های موقتی بازار بشیم.

4-Facilitating Software Architecture

سخنرانان: Andrew Harmel-Law & Sonya Natanzon

این ارایه بیشتر روی جنبه‌های انسانی و فرآیندی معماری تمرکز داره و اون نگاه سنتی که معمار رو یه تصمیم‌گیرنده مطلق و جدا از تیم‌ها می‌دونست رد می‌کنه. سخنران‌ها مدل جدیدی از حاکمیت معماری رو معرفی می‌کنن که بر پایه مشارکت و تمرکززدایی هست یعنی تصمیمات باید نزدیک‌ترین فاصله رو به تیم‌های محصول داشته باشن.

نکته کاربردی این سخنرانی معرفی ابزارهایی مثل مستندسازی تصمیمات معماری یا همون ADR هست. از دید من مستندات نباید یه کار تشریفاتی باشن که بعد از تموم شدن پروژه نوشته میشن بلکه باید یه فرآیند زنده و روزمره باشن. وقتی تصمیم‌ها با دلایل فنی و محدودیت‌هاشون به صورت شفاف ثبت بشن دانش فنی سازمان حفظ میشه و سیستم می‌تونه به صورت ارگانیک و بدون وابستگی به افراد خاص تکامل پیدا کنه.

5- Modern Enterprise Architecture: Architecting for Outcomes

سخنران: Simon Rohrer

سایمون رورر توی این سخنرانی به نقد چارچوب‌های صلب و سنتی معماری سازمانی می‌پردازه که معمولا وقت زیادی رو صرف مستندسازی‌های طولانی و مدل‌های استاتیک می‌کنن که قبل از کامل شدن منقضی میشن. اون در عوض رویکرد نتیجه‌محور یا Outcome-Driven و ترکیب تفکر سیستمی با اصول دواپس رو پیشنهاد میده.

برداشت تحلیلی من اینه که معماری نباید یه هدف ثابت باشه بلکه باید توانمندکننده جریان ارزش در سازمان باشه. توی یه ساختار مدرن لایه‌های کسب‌وکار و آی‌تی نباید از هم جدا باشن. معماری مرجع باید طوری طراحی بشه که انطباق‌پذیر باشه و بتونه تغییرات سریع بازار رو تحمل کنه. این ویدیو نگاه ما رو به تکامل همزمان استراتژی سازمان و سیستم‌های نرم‌افزاری ارتقا میده.

منابع:

[1] https://www.youtube.com/watch?v=ZCrCqbblXjk

[2] https://www.youtube.com/watch?v=mRoWGqcBSzk

[3] https://www.youtube.com/watch?v=8KntBPOdfWA

[4] https://www.youtube.com/watch?v=YpFR8qzwYSA

[5] https://www.youtube.com/watch?v=UMaZ-O2KRCw


اين مطلب، بخشي از تمرينهاي درس معماري نرم‌افزار در دانشگاه شهيدبهشتي است.
#معماري_نرم_افزار_بهشتي

۱
۰
Abolfazl Omidiyan
Abolfazl Omidiyan
شاید از این پست‌ها خوشتان بیاید