دوره حضوری آموزش معماری نرم افزار مقدماتی

طول دوره

طول دوره: ۳۳ ساعت (۱۰ جلسه ۳ ساعته)

نام استاد

استاد: علیرضا ارومند

نوع ارائه

نوع ارائه: حضوری

پرسش و پاسخ

پرسش و پاسخ: هرجلسه به‌صورت حضوری + گروه پشتیبانی

پشتیبانی

پشتیبانی: گروه تلگرامی اختصاصی

مدرک رکت در دوره

مدرک شرکت در دوره: انگلیسی

پیشنیاز شرکت در دوره

پیشنیاز شرکت در دوره: حداقل ۴ سال سابقه کار برنامه نویسی حرفه‌ای

تاریخ شروع دوره

تاریخ شروع دوره: درحال برنامه‌ریزی

محل برگزاری دوره

محل برگزاری دوره: تهران، یوسف آباد، میدان فرهنگ، خیابان سی و سوم، پلاک ۲۹، طبقه دوم

طول دوره

طول دوره: ۳۳ ساعت (۱۰ جلسه ۳ ساعته)

نام استاد

استاد: علیرضا ارومند

نوع ارائه

نوع ارائه: حضوری

پرسش و پاسخ

پرسش و پاسخ: هرجلسه به‌صورت حضوری + گروه پشتیبانی

پشتیبانی

پشتیبانی: گروه تلگرامی اختصاصی

مدرک رکت در دوره

مدرک شرکت در دوره: انگلیسی

پیشنیاز شرکت در دوره

پیشنیاز شرکت در دوره: حداقل ۴ سال سابقه کار برنامه نویسی حرفه‌ای

تاریخ شروع دوره

تاریخ شروع دوره: درحال برنامه‌ریزی

محل برگزاری دوره

محل برگزاری دوره: تهران، یوسف آباد، میدان فرهنگ، خیابان سی و سوم، پلاک ۲۹، طبقه دوم

۳۰% تخفیف

پیش ثبت‌نام دوره

۱۱,۰۰۰,۰۰۰ تومان

۷,۷۰۰,۰۰۰ تومان

پیش ثبت نام کلاس مهندسی نرم افزار مقدماتی - گروه C

فیلد های "*" اجباری هستند

این قسمت برای اهداف اعتبارسنجی است و باید بدون تغییر باقی بماند.

مزایای دوره های نیک آموز

کاملا کاربردی

کاملاً کاربردی

دوره‌های نیک آموز نزدیک‌ترین سرفصل به بازار کار را دارند.

اساتید مجرب

اساتید مجرب

اساتید دوره‌های نیک آموز، متخصصین با رزومه اجرایی قوی هستند.

شبکه سازی

شبکه سازی

ارتباط با سایر شرکت‌کنندگان و توانایی تعامل

مثال های متنوع

مثال‌های متنوع

در دوره‌های نیک آموز، تمارین و مثال‌های متنوعی اجرا می‌شوند.

پرسش و پاسخ

پرسش و پاسخ

دسترسی هم‌زمان به استاد برای پرسش و پاسخ سریع

دانلود فایل

دانلود فایل‌ها

دسترسی به کلاس، در هرشرایط زمانی و مکانی

سرفصل‌های آموزشی

بخش اول: Clean Architecture

به عنوان یک توسعه دهنده همیشه از مباحث تئوری فراری بودم و دوست داشتم کارهای عملی انجام شود. به همین منظور دوره را با موضوع Clean Architecture شروع می‌کنیم. در این قسمت بررسی میکنیم که چطور لایه بندی و نحوه طراحی کلاس ها و تخصیص وظایف به بخش‌های مختلف یک نرم افزار می‌تواند قابلیت توسعه و نگهداری آن را تحت تاثیر قرار دهد. برای اینکه بتوانیم مباحثی که در این قسمت توصیف می‌کنیم را بهتر درک کنیم از ابتدا با یک پروژه عملی کار را شروع خواهیم کرد.

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

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

۷ فصل

۳ جلسه

۱۲ ساعت

۱

مقدمه‌ای بر Clean Architecture

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

  1. آشنایی با اصول اولیه طراحی و معماری
  2. چرا نیاز داریم برنامه ما ساختار داشته باشد؟
  3. آشنایی اولیه با معماری چند لایه
  4. معرفی اولیه از Clean Architecture و لایه‌های آن
 
۲

آشنایی با Domain Layer

در این فصل، به نقش و وظایف لایه Domain پرداخته می‌شود. دانشجویان یاد می‌گیرند که چگونه ساختار اصلی و قوانین تجاری نرم‌افزار در این لایه پیاده‌سازی می‌شود. آشنایی با مفاهیمی مانند Entity، Value Object و Domain Event نیز از موضوعات کلیدی این بخش است. اهمیت این فصل در این است که دانشجویان یاد می‌گیرند که منطق اصلی برنامه باید در لایه Domain مدیریت شود، که به حفظ پایداری و انعطاف‌پذیری نرم‌افزار کمک می‌کند.

  1. لایه Domain چیست و چه وظایفی به عهده دارد؟
  2. Entity چیست؟
  3. آشنایی با Value Objectها
  4. Domain Event چیست و چه کاربردی دارد؟
  5. بررسی نحوه تعیین محل قرارگیری Contractها
  6. ساخت پروژه‌ی بومگردی
  7. افزودن لایه Domain
  8. ایجاد کلاس‌های لایه Domain
  9. آیا به فریم‌ورک نیاز داریم؟!
  10. چه کلاس‌هایی و با چه شرایطی در فریم ورک قرار می‌گیرند؟
  11. ساخت پروژه فریم ورک
  12. ایجاد اولین کلاس‌های پایه مربوط به فریم ورک
  13. Refactor کردن لایه Domain  و استفاده از Framework
 
۳

آشنایی با Application Layer

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

  1. لایه Application چیست و چه وظایفی دارد؟
  2. پیاده سازی Application Service  به صورت Façade controller
  3. پیاده سازی Application Service  به صورت Session Controller
  4. معرفی الگوی CQRS
  5. افزودن لایه Application Service  به پروژه
  6. بررسی راهکارهای پیاده سازی CQRS
  7. آشنایی با MediatR و استفاده برای پیاده سازی CQRS
  8. Validation کجا باید انجام شود؟
  9. آشنایی با نحوه پیاده سازی Validation به صورت مرکزی
  10. مدیریت خطای مرکزی در Application Service ها چگونه انجام میشود؟
  11. پیاده سازی مدیریت لاگ مرکزی در Application Service
  12. طراحی فریم ورک برای لایه Application Service
  13. انتقال کلاس‌های پایه به فریم ورک
  14. ریفکتور کردن پورژه Application Service  و استفاده از فریمورک
۴

آشنایی با Infrastructure Layer

در این فصل، با مفهوم Infrastructure و نقش‌های آن آشنا می‌شویم. بررسی Data Access Layer و آشنایی با الگوهای Repository و Unit of Work نیز از موضوعات کلیدی این فصل است. هدف اصلی این بخش، مدیریت ارتباطات با سیستم‌های خارجی مانند دیتابیس‌ها و سرویس‌ها است. اهمیت یادگیری این فصل در این است که دانشجویان می‌آموزند چگونه ارتباطات خارجی نرم‌افزار را مدیریت و آن‌ها را از منطق اصلی برنامه جدا کنند.

  1. Infrastructure چیست و چه وظایفی در این لایه انجام می‌شود؟
  2. آشنایی با Data Access Layer وظایف و نقش‌ها
  3. معرفی الگوی Repository
  4. آشنایی با الگوی Unit of work
  5. افزودن لایه DAL به پروژه
  6. ایجاد Configuration برای Entityها
  7. آشنایی با نحوه انجام تنظیمات Entityها به صورت مرکزی
  8. بررسی نحوه انتشار مرکزی Domain Eventها
  9. آشنایی با موضوع Concurrency
  10. بررسی نحوه برخورد با Concurrency 
  11. طراحی و پیاده سازی فریم ورک برای DAL
  12. ریفکتور کردن پروژه و استفاده از فریم ورک
۵

آشنایی با Presentation Layer

این فصل به نحوه تعامل نرم‌افزار با کاربران می‌پردازد. تفاوت بین ارائه UI یا API و چالش‌ها و فرصت‌های هر یک از این روش‌ها بررسی می‌شود. همچنین، مفاهیمی مانند API Versioning و پیاده‌سازی Cache در این بخش معرفی می‌شوند. یادگیری این فصل به دانشجویان کمک می‌کند تا بتوانند یک لایه رابط کاربری یا API قابل اطمینان و انعطاف‌پذیر پیاده‌سازی کنند که به بهبود تجربه کاربری کمک می‌کند.

  1. Presentation Layer چیست و چه کاربردی دارد؟
  2. بررسی تفاوت ارائه UI یا API چالش‌ها و فرصت‌ها
  3. ایجاد پروژه API
  4. تنظیم Dependencyها 
  5. آشنایی با API Versioning در پروژه‌های عملیاتی
  6. ایجاد کنترلر‌ها و توسعه Actionهای مورد نیاز برای پروژه
  7. چرا به Cache نیاز داریم؟
  8. پیاده سازی Distributed Cache به کمک Redis در پروژه
  9. پیاده سازی Health check در پروژه ها برای بهبود کیفیت نرم افزار
۶

پیاده سازی نکات امنیتی در پروژه

این فصل بر روی مفاهیم امنیتی نرم‌افزار تمرکز دارد. موضوعاتی مانند AAA (Authentication, Authorization, Accounting)، Identity Provider، JWT، و انواع مختلف Authorization بررسی می‌شوند. این بخش اهمیت بالایی در حفاظت از داده‌ها و اطمینان از دسترسی‌های صحیح دارد. یادگیری این فصل به دانشجویان کمک می‌کند تا نرم‌افزارهایی امن و با قابلیت‌های کنترل دسترسی کارآمد ایجاد کنند.

  1. آشنایی با AAAدر موضوع امنیت نرم افزار
  2. Identity Provider  چیست؟
  3. راه اندازی Identity Provider
  4. دریافت JWT 
  5. پیاده سازی فرایند ثبت نام کاربر
  6. پیاده سازی فرایند لاگین 
  7. Role-base Authorizationچیست  و چگونه پیاده سازی می‌شود؟
  8. Permission-base Authorization چیست و چگونه پیاده می‌شود؟
  9. Resource-base Authorization چیست و چگونه پیاده سازی می‌شود.
  10. برقراری امنیت در نرم افزاری که توسعه داده ایم
۷

تست برنامه

در این فصل، با روش‌های Unit Testing برای لایه‌های مختلف نرم‌افزار آشنا می‌شویم. همچنین، مفهوم Architecture Test و اهمیت آن در تضمین کیفیت معماری نرم‌افزار بررسی می‌شود. یادگیری این فصل به دانشجویان امکان می‌دهد تا نرم‌افزارهای خود را به صورت خودکار تست کرده و از صحت عملکرد آن‌ها در شرایط مختلف اطمینان حاصل کنند.

  1. آشنایی با Unit test  نویسی برای لایه Domain
  2. آشنایی با Unit test نویسی برای لایه Application Service
  3. Architecture Test چیست؟

بخش دوم: معماری نرم افزار کاربردی

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

۵ فصل

۲ جلسه

۸ ساعت

۱

مقدمه ای بر معماری نرم افزار کاربردی

در این فصل، دانشجویان با تاریخچه معماری نرم‌افزار آشنا می‌شوند و اهمیت وجود آن در دنیای توسعه نرم‌افزار را درک می‌کنند. این فصل به بیان تعاریف معماری نرم‌افزار، عوامل مؤثر در آن، و چرخه کاری معماری می‌پردازد. اهمیت این فصل در این است که دانشجویان درک پایه‌ای از معماری نرم‌افزار به دست می‌آورند و یاد می‌گیرند که یک معماری خوب چگونه می‌تواند بر کیفیت و عملکرد نرم‌افزار تأثیر بگذارد.

  1. تاریخچه معماری نرم افزار
  2. اگر معماری نرم افزار وجود نداشته باشد چه اتفاقی می‌افتد؟
  3. تعریف معماری نرم افزار
  4. چه عواملی در معماری نرم افزار اثر گذار هستند؟
  5. چرخه کاری معماری نرم افزار چیست؟
  6. یک معماری خوب چه ویژگی‌هایی دارد؟
 
 

 

 

۲

معماری نرم‌افزار چیست؟

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

  1. آشنایی با تعاریف ارائه شده برای معماری نرم افزار و تحلیل آن‌ها
  2. الگوهای معماری نرم افزار چیست؟
  3. مدل مرجع و معماری مرجع چیست؟
  4. چرا معماری نرم افزار اهمیت دارد؟
  5. معماری سیستم چیست و چه تفاوتی با معماری نرم افزار دارد؟
  6. ساختار نرم افزار چیست و چه ارتباطی با معماری آن دارد؟
 
 

 

 

۳

معرفی ویژگی‌های کیفی نرم افزار

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

  1. تعریف کلی از کیفیت
  2. آشنایی با ویژگی‌های کیفی
  3. دسترس پذیری چیست؟
  4. کارایی چه معنایی دارد؟
  5. قابلیت نگهداری و توسعه
  6. امنیت نرم افزار چیست؟
  7. آشنایی با قابلیت تست پذیری 
  8. خصوصیات کیفی چه ارتباطی با معماری دارد؟
  9. دسترسی به خصوصیات کیفی نرم افزار چگونه ممکن است؟
  10. آشنایی با تشخیص خطا و ترمیم نقص برای بهبود دسترس پذیری
  11. آشنایی با محلی سازی تغییرات جهت جلوگری از خرابی‌های سلسله مراتبی
۴

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

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

  1. کاربرد‌های مستند سازی معماری
  2. انتخاب دیدهای مرتبط
  3. مستند سازی رفتار چگونه انجام می‌شود؟
  4. از چه ابزارهایی برای مستند سازی استفاده کنیم.
 
 

 

 

۵

آشنایی اولیه و معرفی الگوهای معماری نرم افزار

در این فصل، دانشجویان با انواع الگوهای معماری نرم‌افزار مانند Layard Architecture، Microkernel، Microservice، Event-Driven، Service-Based و Space-Based Architecture آشنا می‌شوند. این فصل برای درک نحوه پیاده‌سازی ساختارهای مختلف نرم‌افزار و انتخاب مناسب‌ترین الگو برای هر پروژه ضروری است. یادگیری این الگوها به دانشجویان کمک می‌کند تا نرم‌افزارهایی با کارایی و انعطاف‌پذیری بالا طراحی کنند.

  1. Layard Architecture
  2. Microkernel Architecture
  3. Microservice
  4. Event Driven Architecture
  5. Service Base Architecture
  6. Space base Architecture

بخش سوم: Modular Monolith Architecture

مدتی کلاس با مباحث تئوری ضوری جهت معماری نرم افزار پیش رفت و در بخش سوم یک الگوی معماری نرم افزار به استم Modular monolith را با هم یاد خواهیم گرفت. این قسمت هم مانند بخش اول ترکیب تئوری های مورد نیاز و کار عملی است که در حین اجرای یک پروژه مفاهیم مورد نیاز جهت پیاده سازی با این الگو را یاد خواهیم گرفت. اما این بار بنیه علمی معماری نرم افزار را نیز داریم و توقع داریم هنگامی که تصمیمی میگیریم آگاهانه بوده و بدانیم بر چه قسمت‌هایی از ویژگی‌های کارکردی و غیر کارکردی اثر می‌گذارد.
در ادامه سرفصل‌ها و موضوعات بخش سوم دوره را با هم بررسی می‌کنیم:

۷ فصل

۳ جلسه

۱۲ ساعت

۱

مقدمه‌ای بر Modular Monolith Architecture

در این فصل، دانشجویان با مفهوم “Modular Monolith” آشنا می‌شوند و آن را با معماری “Microservice” مقایسه می‌کنند. همچنین، با مثال عملی دوره و کارکردهایی که قرار است پیاده‌سازی شود، آشنا می‌شوند. اهمیت این فصل در این است که دانشجویان پایه‌ای قوی از اصول معماری Modular Monolith کسب می‌کنند و می‌توانند درک کنند که چرا انتخاب این معماری در برخی موارد بر Microservices اولویت دارد.

  1. معرفی اولیه Modular monolith
  2. مقایسه Modular Monolith با Microservice
  3. معرفی مثال دوره و کارکردهایی که پیاده سازی می‌کنیم
 
 

 

 

۲

چگونه محدوده ماژول‌ها تعیین می‌شود؟

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

  1. آشنایی با Bounded Contextها و ارتباطشان با ماژولها
  2. بررسی محدوده ماژول ها در مثال دوره
  3. شروع پیاده سازی اولین ماژول
 
 

 

 

۳

آشنایی با موضوعی به نام Cross-Cutting Concerns

در این فصل، دانشجویان با مفاهیم تزریق وابستگی، مدیریت لاگ‌ها، ثبت و ردیابی خطاها و دیگر موضوعات “Cross-Cutting Concerns” در معماری Modular Monolith آشنا می‌شوند. این موضوعات نقش مهمی در ارتقای کیفیت و عملکرد نرم‌افزار ایفا می‌کنند و اهمیت یادگیری آن‌ها در این است که به برنامه‌نویسان کمک می‌کند تا ماژول‌هایی با قابلیت انعطاف‌پذیری و پشتیبانی مناسب ایجاد کنند.

  1. تزریق وابستگی چگونه در Modular Monolith انجام می‌شود؟
  2. Structured Logging چیست؟
  3. پیاده سازی Structured Logging  به کمک Serilog و ELK
  4. آشنایی با Automatic Endpoint Registration
  5. پیاده سازی Health check چگونه انجام می‌شود؟
  6. مدیریت خطا و ثبت و رهگیری آن در Modular Monolith
  7. تنظیمات ماژول‌ها چگونه انجام می‌شود؟
  8. پیاده سازی Cross-Cotting Concerns روی ماژول اول
۴

ارتباط بین ماژول‌‌ها

این فصل به بررسی الگوهای ارتباطی میان ماژول‌ها می‌پردازد، از جمله ارتباطات Sync و Async، مدیریت داده‌های مشترک، و مفاهیمی مانند Eventual Consistency و Messaging Patterns. اهمیت این فصل در یادگیری نحوه برقراری ارتباطات مختلف میان ماژول‌ها است که برای حفظ انسجام و عملکرد نرم‌افزار در سیستم‌های بزرگ ضروری است.

  1. آشنایی با الگوهای ارتباطی 
  2. ارتباط Sync چگونه انجام می‌شود؟
  3. ارتباط Async چگونه است؟
  4. بررسی ارتباط ماژول ها به کمک Domain Event
  5. داده مشترک بین ماژول ها را چگونه باید مدیریت کنیم؟
  6. Eventual Consistency چیست؟
  7. آشنایی با الگوهای Messaging
  8. Event outbox چیست؟
  9. Inbox Pattern چیست و چگونه پیاده سازی می‌شود؟
  10. چرا به فریم ورک برای پیاده سازی الگوها نیاز داریم؟
  11. پیاده سازی فریم ورک جهت پیاده سازی الگوهای پیام رسانی
  12. توسعه دومین ماژول
  13. برقراری ارتباطات از نوع های مختلف و بررسی تاثیر بر ویژگی‌های کمی نرم افزار
۵

Authentication و Authorization در Modular Monolith

در این فصل، دانشجویان با پیاده‌سازی هویت و احراز هویت در معماری Modular Monolith آشنا می‌شوند. از نصب Identity Provider گرفته تا پیاده‌سازی Token-Based Authentication. یادگیری این مباحث برای حفظ امنیت در نرم‌افزار و مدیریت کاربران اهمیت دارد و به معماران نرم‌افزار کمک می‌کند تا راهکارهای امن و پایداری برای مدیریت دسترسی‌ها پیاده‌سازی کنند.

  1. نصب و راه اندازی Identity Provider
  2. پیاده سازی Token base Authentication در Modular Monolith
  3. بررسی نحوه مدیریت کاربران در Modular Monolith
۶

آشنایی با فرایند تست در Modular Monolith

این فصل به موضوع تست در معماری Modular Monolith می‌پردازد و مباحثی مانند Unit Testing و Integration Testing را بررسی می‌کند. اهمیت این فصل در این است که دانشجویان می‌آموزند چگونه برنامه‌های خود را تست کنند تا از عملکرد صحیح و بدون خطا در تمامی بخش‌های مختلف نرم‌افزار اطمینان حاصل کنند.

  1. مقدمه ای بر تست نویسی در Modular Monolith
  2. Unit test در برنامه‌های Modular Monolith چگونه انجام می‌شود؟
  3. بررسی نحوه انجام Integration test در Modular Monolith
۷

انتشار برنامه

در این فصل، دانشجویان با مفاهیم Docker، Dockerize کردن برنامه، انتشار در Docker Hub، و پیاده‌سازی CI/CD آشنا می‌شوند. یادگیری این مباحث برای مدیریت و انتشار نرم‌افزار در محیط‌های عملیاتی اهمیت دارد و به معماران و توسعه‌دهندگان کمک می‌کند تا فرآیندهای یکپارچه‌سازی، استقرار، و تست را به‌صورت خودکار انجام دهند.

  1. آشنایی با Docker
  2. بررسی نحوه Dockerize کردن برنامه
  3. انتشار برنامه در Docker hub
  4. پیاده سازی CI/CD
  5. پیاده سازی Test در مراحل CI/CD چگونه است؟

استاد این دوره

علیرضا ارومند

دانشجویان چه می‌گویند؟

نمونه مدارک نیک آموز

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

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

سوالات متداول دوره معماری نرم افزار - مقدماتی

معمار نرم‌افزار (Software Architect) فردی است که مسئول طراحی و توسعه ساختار کلی یک سیستم نرم‌افزاری است. او تصمیمات کلیدی مرتبط با معماری سیستم را می‌گیرد، شامل انتخاب فناوری‌ها، الگوهای معماری، و نحوه تعامل اجزای مختلف نرم‌افزار با یکدیگر است.

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

این دوره شما را با مفاهیم و تکنیک‌های معماری نرم‌افزار آشنا می‌کند و شما را برای ورود به پوزیشن معمار نرم‌افزار آماده می‌سازد. هرچند برای موفقیت در این زمینه، تجربه کاری و مشارکت در پروژه‌های بزرگ نیز بسیار مهم است. گواهی پایان دوره می‌تواند یک نقطه قوت در رزومه شما باشد.

 
 

 

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

ابتدا عرض کنم، این دوره به صورت کاملا حضوری برگزار می گردد. مطالب دوره معماری مقدماتی به روش زیر برگزار خواهد شد. 

  • یک سوم از مطالب کلاس بصورت تئوری خواهد بود.
  • یک سوم از مطالب دیگر کلاس در حوزه پیاده سازی سناریوها، مثال ها و تکنولوژی‌ها خواهد بود.
  • یک سوم از مطالب دیگر کلاس بابت کارگروهی شما عزیزان به همراه منتورینگ خواهد بود.

تمامی مثال‌ها و سناریوهای این دوره با .NET Core 9.0 و زبان برنامه نویسی C#.NET خواهد بود.

تبدیل شدن به یک معمار نرم‌افزار حرفه‌ای معمولاً به چند سال تجربه کاری در پروژه‌های بزرگ و پیچیده نیاز دارد. این دوره پایه‌های لازم را فراهم می‌کند، اما برای موفقیت بیشتر باید در پروژه‌های واقعی مشارکت کنید و به یادگیری ادامه دهید.

بلی، دسکتاپ و صدای مدرس رکورد خواهد شد و در پلیر اختصاصی اسپات پلیر به همراه کلید لایسنس ارائه خواهد شد. شما در سیستم عامل‌های ویندوز، اندروید، آیفون (سیب، اناردون)، مک بوک می‌توانید فیلم را مشاهده کنید.

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

بله، امکان خرید اقساطی با اسنپ پی فراهم شده است. برای اطلاعات بیشتر می‌توانید با تیم فروش یا در تماس باشید یا مستند«خرید اقساطی دوره آموزشی با اسنپ پی» را مطالعه بفرمایید.

 

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

بله، پس از اتمام دوره، مدرک معتبر (آموزشگاه نیک آموز) به شما ارائه می‌شود که می‌توانید از آن برای تقویت رزومه خود استفاده کنید.

۳۰% تخفیف

پیش ثبت‌نام دوره

۱۱,۰۰۰,۰۰۰ تومان

۷,۷۰۰,۰۰۰ تومان

پیش ثبت نام کلاس مهندسی نرم افزار مقدماتی - گروه C

فیلد های "*" اجباری هستند

این قسمت برای اهداف اعتبارسنجی است و باید بدون تغییر باقی بماند.

کلیه حقوق این وب‌سایت متعلق به مجموعه نیک‌آموز می‌باشد.

close-image