مشاور و معمار ارشد نرمافزار با بیش از ۱۵ سال تجربه تخصصی در حوزههای توسعه نرمافزار، معماری سیستمهای مقیاسپذیر و آموزش مهندسی نرمافزار حوزههای تخصصی خدمات: 🏗 طراحی و پیادهسازی معماری نرمافزار ارائه معماریهای بهینه با استفاده از جدیدترین تکنولوژیها (Microservices,, Event-Driven) استقرار زیرساختهای فنی و راهبری فنی تیمهای توسعه - مشاوره تخصصی معماری و توسعه تحلیل و بهینهسازی معماری سیس ...
| سطح | تمام سطوح |
| مدت زمان | ۵۰ |
| حجم | ۱۴۰.۸۷ مگابایت |
در آموزش رایگان System Design قصد داریم به زبان ساده به بررسی و طراحی سیستمی برای پردازش و مدیریت سفارشات در سیستم های مالی و معماری نرم افزار بپردازیم.
سیستم های مالی بزرگ مانند بانک ها و کارگزاری ها با چالش های پیچیده ای در پردازش سفارشات مشتریان روبرو هستند. یکی از مشکلات رایج، عدم ثبت اطلاعات کامل سفارشات در دیتابیس است. یعنی ایجنت ها نمی توانند به داده ها دسترسی پیدا کنند و گاهی مجبور به رد یا حذف سفارشات می شوند. برای حل این مشکل، به مکانیزم هایی نیاز است که سفارشات ناقص را شناسایی کنند. این مکانیزم ها باید امکان نگهداری موقت سفارشات را فراهم کنند تا با تکمیل اطلاعات، پردازش آن ها از سرگرفته شود. این رویکرد می تواند کارایی سیستم را بهبود بخشیده و از دست رفتن فرصت های معاملاتی جلوگیری کند.
در این دوره، به بررسی و طراحی سیستمی برای پردازش و مدیریت سفارشات در سیستم های مالی و بورسی می پردازیم. در این سیستم ها، سرعت و دقت در پردازش اطلاعات از اهمیت بالایی برخوردار است. تاخیرهای زمانی در انتقال داده ها بین میکروسرویس ها می تواند مشکلاتی همچون از دست رفتن اطلاعات یا اختلال در اجرای معاملات ایجاد کند. به ویژه در سیستم هایی که سفارشات به طور مداوم از مشتریان مختلف دریافت می شود، طراحی یک راه حل کارا و بهینه برای پردازش این سفارشات حیاتی است. در این طراحی، ما یک سیستم صف بندی ترتیب دار ایجاد می کنیم. سفارشات مشتریان را از میکروسرویس های ورودی دریافت کرده و در صف هایی قرار می دهد تا پردازش آن ها طبق یک ترتیب مشخص صورت گیرد. اگر داده ها به موقع در دسترس نباشند، سفارش به صف دیگر منتقل می شود تا پس از دریافت داده ها، دوباره پردازش گردد.
با وجود اینکه اصول SOLID همیشه نقل محافل برنامه نویسی است، اما جایگاه دقیق آن ها در چرخه توسعه کمتر مورد توجه قرار می گیرد. در این دوره نشان می دهیم که چگونه می توان از SOLID به عنوان ابزاری برای سنجش و اعتبارسنجی (Validation) در طراحی شیءگرا استفاده کرد.
سفر سه مرحله ای خلق نرم افزار: از تحلیل تا پیاده سازی. خیلی از توسعه دهندگان بدون مقدمه کدنویسی (OOP) را آغاز می کنند، اما معماری اصولی نیازمند عبور از این مسیر است:
- تحلیل شیءگرا (OOA): شناخت کامل دامین و صورت مسئله بیزینسی.
- طراحی شیءگرا (OOD): تدوین ساختار پیش از دست به کیبورد شدن.
- برنامه نویسی (OOP): ترجمه طراحی به کدهای نهایی نرم افزار.
ما بررسی می کنیم چگونه با الگوهای GRASP، طراحی اولیه را شکل دهید و سپس با معیار SOLID، کیفیت آن را بسنجید. تفاوت کلیدی بین اصول (Principle) و الگوهای طراحی (Pattern). یکی از چالش های اصلی، درک مرز روشن بین «اصل» و «الگو» است:
- دیزاین پترن ها: راهکارهایی کپسوله شده و آماده برای حل مشکلات متداول هستند.
- دیزاین پرینسیپل ها: مانند قطب نما مسیر را نشان می دهند و قوانین خشکی ندارند. می بینیم چرا اجرای اصلی مثل Single Responsibility نیازمند تجربه است. وسواس در آن باعث Over-engineering (پیچیدگی مفرط) و بی توجهی به آن باعث خلق کدهای کثیف می شود.
لایه های مختلف معماری: از سطح کانتکست تا کدهای برنامه
اصول معماری صرفا محدود به کلاس ها نمی شوند! ما نشان می دهیم چگونه دیدی کلان داشته باشید:
- پیادهسازی اصل SRP در ابعاد میکروسرویسها و Bounded Contextها.
- مدیریت ارتباطات و وابستگیها در سطح Component و Container.
- نقش کنترل وابستگیها در جلوگیری از Rigidity (خشکی سیستم) و Viscosity (کندی تغییرات).
چرا پیش از SOLID، باید وابستگی (Dependency) را درک کنیم؟
تا زمانی که ریشه پیچیدگی ها یعنی وابستگی ها را نشناسید، اصول SOLID صرفا کلماتی حفظی خواهند بود. در این آموزش، پیش نیازهای ضروری معماری پیشرفته، از جمله مدیریت وابستگی ها و اهمیت الگوهای GRASP را عمیقا باز می کنیم.
با گذراندن این دوره با مفهوم معماری نرم افزار و System Design آشنا می شوید و می توانید درباره این مفهوم به یادگیری عمیق تر بپردازند.
امکان دانلود و پخش آنلاین دوره وجود دارد و شما به طور دائم به آن دسترسی دارید. این آموزش رایگان عرضه شده است و شما می توانید تمامی قسمت های آموزش معماری نرم افزار و سیستم دیزاین را به طور رایگان دانلود کنید
هنوز بررسی برای این آموزش ثبت نشده است