گروه سوم
طول دوره: ۳۳ ساعت (۱۰ جلسه ۳ ساعته)
استاد: علیرضا ارومند
نوع ارائه: حضوری
پرسش و پاسخ: هرجلسه بهصورت حضوری + گروه پشتیبانی
پشتیبانی: گروه تلگرامی اختصاصی
مدرک شرکت در دوره: انگلیسی
پیشنیاز شرکت در دوره: حداقل ۴ سال سابقه کار برنامه نویسی حرفهای
تاریخ شروع دوره: از ۱۷ بهمن - چهارشنبهها- ساعت ۱۷:۳۰ الی ۲۰:۳۰
محل برگزاری دوره: تهران، یوسف آباد، میدان فرهنگ، خیابان سی و سوم، پلاک ۲۹، طبقه دوم
۳۰% تخفیف
پیش ثبتنام دوره
فیلد های "*" اجباری هستند
Δ
کاملاً کاربردی
دورههای نیک آموز نزدیکترین سرفصل به بازار کار را دارند.
اساتید مجرب
اساتید دورههای نیک آموز، متخصصین با رزومه اجرایی قوی هستند.
شبکه سازی
ارتباط با سایر شرکتکنندگان و توانایی تعامل
مثالهای متنوع
در دورههای نیک آموز، تمارین و مثالهای متنوعی اجرا میشوند.
پرسش و پاسخ
دسترسی همزمان به استاد برای پرسش و پاسخ سریع
دانلود فایلها
دسترسی به کلاس، در هرشرایط زمانی و مکانی
از دید یک توسعهدهنده، انجام کارهای عملی نسبت به یادگیری مباحث تئوری جدابتر است؛ بههمین دلیل، دوره با موضوع Clean Architecture آغاز خواهند شد. در این بخش، بررسی خواهند شد که چگونه طراحی صحیح لایهها، نحوه طراحی کلاسها و تخصیص وظایف به بخشهای مختلف یک نرمافزار، میتواند بر قابلیت توسعه و نگهداری آن تأثیرگذار باشد. برای درک بهتر مفاهیم این قسمت، دوره با یک پروژه عملی شروع خواهند شد.
در این دوره، توسعه یک برنامه در زمینه اجاره اقامتگاه بومگردی از ابتدا آغاز خواهد شد و مفاهیمی تدریس میشود که بتوان آن را بهصورت عملی در پروژه بهکار برود. قسمت اول دوره کاملاً عملی است و در کنار توضیح مباحث تئوری، به توسعه نرمافزاری خواهند پرداخت که در هر جلسه، بخشی از کار توسط مدرس در کلاس انجام خواهد شد و بخش دیگری از آن بهعنوان تمرین به دانشجویان واگذار خواهد شد.
پس از انجام تمرینها توسط دانشجویان، راهکار پیشنهادی مدرس نیز بررسی خواهد شد و مباحث این قسمت که در ادامه به آنها پرداخته میشود، شامل موارد زیر است:
سرفصلهای بخش اول
مقدمه ای بر Clean Architecture
آشنایی با Domain Layer
آشنایی با Application Layer
آشنایی با Infrastructure Layer
آشنایی با Presentation Layer
پیاده سازی نکات امنیتی در پروژه
تست برنامه
۷ فصل
۳ جلسه
۱۲ ساعت
در این فصل، دانشجویان با اصول اولیه طراحی و معماری نرمافزار آشنا میشوند. اهمیت داشتن یک ساختار مشخص در برنامهها، اولین موضوعی است که بررسی میشود؛ سپس با معماریهای چندلایه و معرفی اولیه از Clean Architecture آشنا میشوند. این فصل اهمیت پایهای در درک معماری نرمافزار دارد و دانشجویان با یادگیری آن، آماده میشوند تا در فصلهای بعدی بتوانند تصمیمات معمارانه صحیحتری اتخاذ کنند:
در این فصل، به نقش و وظایف لایه Domain پرداخته میشود. دانشجویان یاد میگیرند که چگونه ساختار اصلی و قوانین تجاری نرمافزار در این لایه پیادهسازی میشود. آشنایی با مفاهیمی مانند Entity، Value Object و Domain Event نیز از موضوعات کلیدی این بخش است. اهمیت این فصل در این است که دانشجویان یاد میگیرند که منطق اصلی برنامه باید در لایه Domain مدیریت شود که به حفظ پایداری و انعطافپذیری نرمافزار کمک میکند.
این فصل بر روی نقش و وظایف لایه Application تمرکز دارد. با یادگیری این فصل، دانشجویان با نحوه پیادهسازی Services نرمافزار آشنا میشوند؛ همچنین، الگوی CQRS و چگونگی پیادهسازی آن در نرمافزار مورد بررسی قرار میگیرد. اهمیت این فصل در فراهمسازی یک لایه برای مدیریت عملیات برنامه و جریان دادهها است. یادگیری این بخش به دانشجویان کمک میکند تا بتوانند برنامههایی با ساختاری منظم و قابل گسترش پیادهسازی کنند.
در این فصل، با مفهوم Infrastructure و نقشهای آن آشنا میشویم. بررسی Data Access Layer و آشنایی با الگوهای Repository و Unit of Work نیز از موضوعات کلیدی این فصل است. هدف اصلی این بخش، مدیریت ارتباطات با سیستمهای خارجی مانند دیتابیسها و سرویسها است. اهمیت یادگیری این فصل در این است که دانشجویان میآموزند چگونه ارتباطات خارجی نرمافزار را مدیریت و آنها را از منطق اصلی برنامه جدا کنند.
این فصل به نحوه تعامل نرمافزار با کاربران میپردازد. تفاوت بین ارائه UI یا API و چالشها و فرصتهای هر یک از این روشها بررسی میشود. همچنین، مفاهیمی مانند API Versioning و پیادهسازی Cache در این بخش معرفی میشوند. یادگیری این فصل به دانشجویان کمک میکند تا بتوانند یک لایه رابط کاربری یا API قابل اطمینان و انعطافپذیر پیادهسازی کنند که به بهبود تجربه کاربری کمک میکند.
این فصل بر روی مفاهیم امنیتی نرمافزار تمرکز دارد. موضوعاتی مانند AAA (Authentication ،Authorization ،Accounting) ،Identity Provider ،JWT و انواع مختلف Authorization بررسی میشوند. این بخش اهمیت بالایی در حفاظت از دادهها و اطمینان از دسترسیهای صحیح دارد. یادگیری این فصل به دانشجویان کمک میکند تا نرمافزارهایی امن و با قابلیتهای کنترل دسترسی کارآمد ایجاد کنند:
در این فصل، با روشهای Unit Testing برای لایههای مختلف نرمافزار آشنا میشویم؛ همچنین، مفهوم Architecture Test و اهمیت آن در تضمین کیفیت معماری نرمافزار بررسی میشود. یادگیری این فصل به دانشجویان امکان میدهد تا نرمافزارهای خود را به صورت خودکار تست کرده و از صحت عملکرد آنها در شرایط مختلف اطمینان حاصل کنند:
در بخش دوم معماری نرم افزار و ارائه تعاریف و ایجاد یک بنیان علمی برای معماری نرم افزار ارائه خواهد شد. در این قسمت به این موضوع پرداخته میشود که چه اتفاقی افتاده است که دهههای متوالی سیستمها بر پایه نیازمندیهای عملیاتی ساخته شده و چرا نیاز است که به مباحث غیرعملیاتی نیز پرداخته شود. مباحث بخش دوم تئوری است، اما مطالبی است که باید بدانیم تا هنگام پیاده سازی عملی، چراغ راه ما باشد. موضوعات بخش دوم عبارتاند از:
سرفصلهای بخش دوم
مقدمه ای بر معماری نرم افزار کاربردی
معماری نرمافزار چیست؟
معرفی ویژگیهای کیفی نرم افزار
مستند سازی معماری
آشنایی اولیه و معرفی الگوهای معماری نرم افزار
۵ فصل
۴ جلسه
۹ ساعت
در این فصل، دانشجویان با تاریخچه معماری نرمافزار آشنا میشوند و اهمیت وجود آن در دنیای توسعه نرمافزار را درک میکنند. این فصل به بیان تعاریف معماری نرمافزار، عوامل مؤثر در آن و چرخه کاری معماری میپردازد. اهمیت این فصل در آن است که دانشجویان درک پایهای از معماری نرمافزار به دست میآورند و یاد میگیرند که یک معماری خوب چگونه میتواند بر کیفیت و عملکرد نرمافزار تأثیر بگذارد:
این فصل با ارائه تعاریف و تحلیل آنها به شناخت کاملتری از معماری نرمافزار کمک میکند؛ همچنین به تفاوتهای میان معماری سیستم و معماری نرمافزار و ارتباط آن با ساختار نرمافزار پرداخته میشود. اهمیت این فصل در شناخت اصول و الگوهای معماری نرمافزار نهفته است که به دانشجویان کمک میکند تا اهمیت و نقش معماری در موفقیت پروژههای نرمافزاری را درک کنند:
در این فصل، دانشجویان با ویژگیهای کیفی نرمافزار مانند دسترسپذیری، کارایی، امنیت، قابلیت نگهداری و توسعه و تستپذیری آشنا میشوند. اهمیت این فصل در این است که یادگیری ویژگیهای کیفی به معماران نرمافزار کمک میکند تا بتوانند معماریهای پایدار، امن و قابل توسعه ایجاد کنند. دانشجویان در این فصل میآموزند که چگونه با اعمال این ویژگیها میتوانند کیفیت کلی نرمافزار را ارتقا دهند و از خرابیهای احتمالی جلوگیری کنند:
این فصل به بررسی اهمیت مستندسازی در فرآیند معماری نرمافزار میپردازد. انتخاب دیدهای مرتبط، مستندسازی رفتار سیستم و ابزارهای مرتبط برای این کار از موضوعات اصلی این فصل هستند. اهمیت این فصل در این است که دانشجویان یاد میگیرند چگونه معماری را بهصورت دقیق و کامل مستند کنند تا ارتباطات و تصمیمات طراحی در تیمهای توسعه قابل فهم و قابل پیگیری باشد:
در این فصل، دانشجویان با انواع الگوهای معماری نرمافزار مانند Layard Architecture ،Microkernel ،Microservice ،Event-Driven، Service-Based و Space-Based Architecture آشنا میشوند. این فصل برای درک نحوه پیادهسازی ساختارهای مختلف نرمافزار و انتخاب مناسبترین الگو برای هر پروژه ضروری است. یادگیری این الگوها به دانشجویان کمک میکند تا نرمافزارهایی با کارایی و انعطافپذیری بالا طراحی کنند.
مدتی کلاس با مباحث تئوری ضوری جهت معماری نرم افزار پیش رفت و در بخش سوم یک الگوی معماری نرم افزار به استم Modular monolith را با هم یاد خواهیم گرفت. این قسمت هم مانند بخش اول ترکیب تئوریهای مورد نیاز و کار عملی است که در حین اجرای یک پروژه مفاهیم مورد نیاز جهت پیاده سازی با این الگو را یاد خواهیم گرفت؛ اما این بار بنیه علمی معماری نرم افزار را نیز داریم و توقع داریم هنگامی که تصمیمی میگیریم آگاهانه بوده و بدانیم بر چه قسمتهایی از ویژگیهای کارکردی و غیر کارکردی اثر میگذارد. در ادامه سرفصلها و موضوعات بخش سوم دوره بررسی خواهد شد:
سرفصلهای بخش سوم
مقدمه ای بر Modular Monolith Architecture
چگونه محدوده ماژولها تعیین میشود؟
آشنایی با موضوعی به نام Cross-Cutting Concerns
ارتباط بین ماژول ها
Authentication و Authorization در Modular Monolith
آشنایی با فرایند تست در Modular Monolith
انتشار برنامه
در این فصل، دانشجویان با مفهوم “Modular Monolith” آشنا میشوند و آن را با معماری “Microservice” مقایسه میکنند؛ همچنین، با مثال عملی دوره و کارکردهایی که قرار است پیادهسازی شود، آشنا میشوند. اهمیت این فصل در این است که دانشجویان پایهای قوی از اصول معماری Modular Monolith کسب میکنند و میتوانند درک کنند که چرا انتخاب این معماری در برخی موارد بر Microservices اولویت دارد:
این فصل به معرفی مفاهیم Bounded Contextها و ارتباطشان با ماژولها پرداخته میشود. دانشجویان یاد میگیرند چگونه محدوده ماژولها را مشخص کنند و پیادهسازی یک ماژول را آغاز کنند. اهمیت این فصل در شناخت نحوه سازماندهی و تعیین حدود ماژولها است که به طراحی ساختار نرمافزار قابل نگهداری و توسعه کمک میکند.
در این فصل، دانشجویان با مفاهیم تزریق وابستگی، مدیریت لاگها، ثبت و ردیابی خطاها و دیگر موضوعات “Cross-Cutting Concerns” در معماری Modular Monolith آشنا میشوند. این موضوعات نقش مهمی در ارتقای کیفیت و عملکرد نرمافزار ایفا میکنند و اهمیت یادگیری آنها در این است که به برنامهنویسان کمک میکند تا ماژولهایی با قابلیت انعطافپذیری و پشتیبانی مناسب ایجاد کنند:
این فصل به بررسی الگوهای ارتباطی میان ماژولها میپردازد، از جمله ارتباطات Sync و Async، مدیریت دادههای مشترک و مفاهیمی مانند Eventual Consistency و Messaging Patterns. اهمیت این فصل در یادگیری نحوه برقراری ارتباطات مختلف میان ماژولها است که برای حفظ انسجام و عملکرد نرمافزار در سیستمهای بزرگ ضروری است:
در این فصل، دانشجویان با پیادهسازی هویت و احراز هویت در معماری Modular Monolith آشنا میشوند. از نصب Identity Provider گرفته تا پیادهسازی Token-Based Authentication. یادگیری این مباحث برای حفظ امنیت در نرمافزار و مدیریت کاربران اهمیت دارد و به معماران نرمافزار کمک میکند تا راهکارهای امن و پایداری برای مدیریت دسترسیها پیادهسازی کنند.
این فصل به موضوع تست در معماری Modular Monolith میپردازد و مباحثی مانند Unit Testing و Integration Testing را بررسی میکند. اهمیت این فصل در این است که دانشجویان میآموزند چگونه برنامههای خود را تست کنند تا از عملکرد صحیح و بدون خطا در تمامی بخشهای مختلف نرمافزار اطمینان حاصل کنند:
در این فصل، دانشجویان با مفاهیم Docker، Dockerize کردن برنامه، انتشار در Docker Hub و پیادهسازی CI/CD آشنا میشوند. یادگیری این مباحث برای مدیریت و انتشار نرمافزار در محیطهای عملیاتی اهمیت دارد و به معماران و توسعهدهندگان کمک میکند تا فرآیندهای یکپارچهسازی، استقرار و تست را بهصورت خودکار انجام دهند:
استاد این دوره
علیرضا ارومند
دانشجویان چه میگویند؟
نمونه مدارک نیک آموز
پس از مشاهده و گذراندن دوره آموزش معماری نرم افزار مقدماتی، یک مدرک اتمام دوره به شما تعلق میگیرد. این مدرک، بیانگر موفقیت شما در حل تمرینها و سناریوهای طراحی شده در دوره معماری نرم افزار مقدماتی است و میتواند به عنوان یک گواهی کاربردی، سطح مهارتهای فنی و عملی شما در این حوزه اعتبار ببخشد. در بازار کار فعلی، دارا بودن مدرک دوره، به عنوان یک فاکتور مهم در حسن تمایز شما با سایر افراد تلقی میشود.
معمار نرمافزار (Software Architect) فردی است که مسئول طراحی و توسعه ساختار کلی یک سیستم نرمافزاری است. او تصمیمات کلیدی مرتبط با معماری سیستم را میگیرد، شامل انتخاب فناوریها، الگوهای معماری و نحوه تعامل اجزای مختلف نرمافزار با یکدیگر است.
این دوره مناسب برای برنامهنویسان، توسعهدهندگان نرمافزار و تحلیلگران سیستم است که قصد دارند به نقش معمار نرمافزار منتقل شوند. افرادی که به دنبال یادگیری اصول معماری سیستمها و چگونگی طراحی زیرساختهای نرمافزاری هستند نیز از این دوره بهره خواهند برد. برای شرکت در این دوره شما باید حداقل ۴ سال سابقه کار در حوزه برنامه نویسی حرفهای داشته باشید.
این دوره شما را با مفاهیم و تکنیکهای معماری نرمافزار آشنا میکند و شما را برای ورود به پوزیشن معمار نرمافزار آماده میسازد. هرچند برای موفقیت در این زمینه، تجربه کاری و مشارکت در پروژههای بزرگ نیز بسیار مهم است. گواهی پایان دوره میتواند یک نقطه قوت در رزومه شما باشد.
فقط می خواهیم سطح کلاس یکدست باشد. ابتدا در یک آزمون تستی/تشریحی شرکت خواهید کرد، بعد از به مصاحبه حضوری یا آنلاین دعوت خواهد شد. چنانچه در آزمون و مصاحبه ورودی قبول شدید میتوانید در دوره شرکت نمایید. اگر هم سطح شما از دوره مقدماتی بالاتر بود، اسم شما رزرو و در دوره پیشرفته دعوت به حضور خواهید شد.
ابتدا عرض کنم، این دوره به صورت کاملا حضوری برگزار می گردد. مطالب دوره معماری مقدماتی به روش زیر برگزار خواهد شد.
تمامی مثالها و سناریوهای این دوره با .NET Core 9.0 و زبان برنامه نویسی C#.NET خواهد بود.
تبدیل شدن به یک معمار نرمافزار حرفهای معمولاً به چند سال تجربه کاری در پروژههای بزرگ و پیچیده نیاز دارد. این دوره پایههای لازم را فراهم میکند، اما برای موفقیت بیشتر باید در پروژههای واقعی مشارکت کنید و به یادگیری ادامه دهید.
بلی، دسکتاپ و صدای مدرس رکورد خواهد شد و در پلیر اختصاصی اسپات پلیر به همراه کلید لایسنس ارائه خواهد شد. شما در سیستم عاملهای ویندوز، اندروید، آیفون (سیب، اناردون)، مک بوک میتوانید فیلم را مشاهده کنید.
پشتیبانی در گروه اختصاصی تلگرامی دوره انجام میشود. سوالات خود را میتوانید در گروه مطرح کنید تا مدرس یا تیم پشتیبانی پاسخگوی شما باشند.
بله، امکان خرید اقساطی با اسنپ پی فراهم شده است. برای اطلاعات بیشتر میتوانید با تیم فروش یا در تماس باشید یا مستند«خرید اقساطی دوره آموزشی با اسنپ پی» را مطالعه بفرمایید.
بله شما می توانید برای خرید این دوره از طریق فاکتور رسمی اقدام کنید. برای دریافت فاکتور رسمی، کافی است با بخش فروش تماس بگیرید.
بله، پس از اتمام دوره، مدرک معتبر (آموزشگاه نیک آموز) به شما ارائه میشود که میتوانید از آن برای تقویت رزومه خود استفاده کنید.