دوره‌های آموزشی

برگزاری دوره‌های آموزشی حضوری و غیر حضوری

  • طراحی، مدلسازی و معماری نرم‌افزار
  • انواع رویکردهای تست نرم‌افزار
  • مسائل مرتبط با حوزه‌ی استادکاری (Craftsmanchip)
مشاوره

ارائه خدمات مشاوره به سازمان‌ها و شرکت‌ها در زمینه‌های:

  • طراحی و مدلسازی دامین‌های پیچیده به کمک DDD
  • داشتن تیم‌ها و سرویس‌های مستقل
  • برقراری و برپایی فرهنگ مناسب تست‌ نرم‌افزار
  • طراحی و پیاده‌سازی سیستم‌های مبتنی بر CQRS و EventSourcing
  • کشف حقایق و دانش دردامنه‌های پیچیده به کمک EventStorming

منابع آموزشی

ارائه نقشه راه، منابع آموزشی و مقالات معتبر در بخش وبلاگ

Thinking like a TDDer

وبینار بررسی موانع و چالش‌های خودکارسازی تست نرم‌افزار

پنجشنبه هشتم آبان ۱۳۹۹ - ساعت ۱۸ الی ۲۰


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

در ابتدای این وبینار، مهندس یوسف مهرداد بی‌بالان به بیان دیدگاه و نظرات خود در این رابطه خواهند پرداخت. آقای یوسف مهرداد بی‌بالان به مدت 25 دقیقه یک سخنرانی بسیار جذاب با موضوع "TDD خوب، بد، زشت" خواهند داشت.

پس از این سخنرانی، برنامه در قالب یک پنل تخصصی با حضور افراد زیر ادامه خواهد یافت:

  • یوسف مهرداد بی‌بالان
  • اسد صفری
  • روح‌الله دلپاک
  • ابراهیم نبیئی
  • مسعود بهرامی

شرکت در این وبینار رایگان می‌باشد.

شرکت کنندگان در پنل:

Card image cap
یوسف مهرداد بی‌بالان
Card image cap
اسد صفری

مربی چابک و خالق FactfulAgile (چابکی برآیند محور)

Card image cap
روح‌الله دلپاک

Card image cap
ابراهیم نبیئی

توسعه دهنده

Card image cap
مسعود بهرامی

توسعه دهنده

ثبت ‌نام
دوره عملی طراحی و پیاده‌سازی معماری نرم‌افزار به کمک TDD

دوره عملی طراحی و پیاده‌سازی معماری نرم‌افزار به کمک TDD


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

‌معرفی دوره و سرفصل‌ها ثبت ‌نام
Card image cap
دوره عملی EventSourcing/CQRS + Tactical DDD

این دور با هدف معرفی اصول و تکنیک‌ها و چالش‌های سیستم‌های مبتنی بر معماری EentSourcing/CQRS طراحی شده است. در این دوره مهمترین اصول و تکنیک‌های تکنیکال DDD نیز بصورت عملی آموزش داده می‌شود.

‌معرفی دوره و سرفصل‌ها ثبت ‌نام
Patterns, Principles and Practices of Clean Code

دوره عملی الگوها، اصول و تکنیک‌های Clean Code


این دوره با هدف آموزش الگوها، اصول و پرکتیس‌های Clean Code و همچنین اصول حرفه ای گری و استادکاری در برای توسعه دهندگان نرم‌افزار طراحی شده است. در این دوره همچنین الگوهای متداول طراحی شی‌گرا نیز بصورت عملی و به زبان #C آموزش داده می‌شود.

‌معرفی دوره و سرفصل‌ها ثبت ‌نام
Refactoring legacy code

Refactoring Legacy Codes Guided by Tests


این دوره جهت آشنا ساختن دانشجویان با اصول و تکنیک‌های مختلف نوشتن تست و همچنین بهبود کدهای Legacy بصورت عملی طراحی شده است

معرفی دوره و سرفصل‌ها ثبت ‌نام
Crafting Microservices

Crafting Resilient Microservices


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

معرفی دوره و سرفصل‌ها ثبت ‌نام
BDD

دوره فرآیند کامل توسعه محصول به روش BDD


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

معرفی دوره و سرفصل‌ها ثبت ‌نام
Applying DDD

Applying DDD


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

معرفی دوره و سرفصل‌ها ثبت ‌نام
Running Example Mapping Workshop

Running Example Mapping Workshop


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

معرفی دوره و سرفصل‌ها ثبت ‌نام
Card image cap

کارگاه Big-Picture ایونت‌استورمینگ


ایونت‌استورمینگ به عنوان یک فرمت کارگاه بسیار موثر، ساده، جذاب و مبتنی بر مشارکت فعال ذینفعان(شامل توسعه‌دهندگان، مالکان محصول، متخصصان دامنه، طراحان UX و ...) برای کشف حقایق دامنه مسئله، مدل کردن دامین و حل مسائل پیچیده در سال‌های اخیر مورد توجه و استقبال قرار انجمن‌های نرم‌افزاری بخصوص انجمن‌های چابکی و DDD گرفته است. و نتابج بسیار مثبتی از استفاده از این روش گزارش شده است.

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

معرفی دوره و سرفصل‌ها ثبت ‌نام
ظرفیت تنها 6 نفر
Card image cap

از ایونت‌استورمینگ تا طراحی نرم‌افزار


برگزاری موثر کارگاه Big-Picture ایونت‌استورمینگ منجر به کشف مجموعه‌ای از حقایق، محدودیت‌ها و فرصت‌ها و همچین یک درک و فهم مشترک بین افراد ذینفع نسبت به دامنه مسئله خواهد شد. این حقایق اما بصورت یک فضای غیر منظم و شلوغ می‌باشد و در مرحله بعد نیاز می‌باشد از این فضای بوجود آمده جهت توسعه بهتر سیستم با انتخاب معماری و طراحی‌ای که بهتر با فضای مسئله متناسب می‌باشد دست زد.

شرکت کنندگان در این کارگاه با تکنیک‌های مختلف شناسایی Bounded Context ها و مایکروسرویس‌ها، طراحی Aggregate ها، ترجمه‌ی کارت‌ها به معماری‌ CQRS/ES، استخراج سناریوهای BDD و همچنین غنی‌تر کردن مدل به کمک تکنیک‌های Impact Mapping و Example Mapping، بر اساس خروجی کارگاه Big-Picture ایونت‌استورمینگ با مشارکت در یک کارگاه واقعی آشنا خواهند شد

ثبت ‌نام
DDD in 1 hour

DDD in 1 hour

سخنران: مسعود بهرامی

زمان: 5شنبه 30 مرداد 1399 ساعت 19:00


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

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

Bounded Context Heuristics

Bounded Context Heuristics

سخنران: مسعود بهرامی

زمان: 5شنبه 16 مرداد 1399 ساعت 19:00


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

بار اصلی مکانیزم تقسیم و غلبه مسئله در DDD بر دوش Bounded Context استوار می‌باشد. همانند بسیاری مسائل دیگر در نرم‌افزار یک راه‌حل یا راهنما و روش مشخص جهت طراحی و یافتن Bounded Contextها وجود ندارد(No Silver Bullet). در این رویداد، هیوریستیک‌هایی معرفی خواهند شد که در تشخیص Bounded Contextها می‌توانند برای ما بسیار کمک کننده باشند.

Pitfalls in the Microservices Land

Pitfalls in the Microservices Land

سخنران: مسعود بهرامی

زمان: 5شنبه 27 مرداد 1399 ساعت 19:00


معماری "مایکروسرویس‌ها" در چند سال اخیر بدلیل جذابیت‌های-بخصوص تکنولوژیک- توانسته توجه بسیار زیادی رو به خود جلب کند. بصورتی که در حال حاضر شاهد هستیم تیم‌های نرم‌افزاری غالبا در یکی از این دو وضعیت قرار دارند: یا در دنیای مایکروسرویس‌ها سیر می‌کنند و یا در حال گام برداشتن در این به سمت این دنیا هستند!

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

Thinking like a TDDer

Thinking like a TDDer

سخنران: مسعود بهرامی

زمان: 5شنبه 17 مهر 1399 ساعت 19:00


Test-Driven Development(TDD) روشی جهت طراحی و توسعه نرم افزار با پیشرانه تست می‌باشد، که در آن تاکید می شود قبل از نوشتن هر کدی، یک تست جهت صحت سنجی آن نوشته شود.

  • اما آیا واقعا می‌توان برای کدی که هنوز وجود ندارد تست نوشت؟
  • آیا نوشتن تست قبل از نوشتن کد، برای تمام ویژگی‌ها محصول قابل انجام است؟
  • تا چه اندازه این روش موثر و مفید می باشد؟
  • در چه سطحی از توسعه و طراحی و معماری محصول می‌توان از این رویکرد استفاده کرد؟
  • اما میتوان مواردی از جمله طراحی و معماری محصول را، قبل از اینکه اصولا چیزی وجود داشته باشد، بر اساس نوشتن تست پیش برد؟
  • رویکردهای outside-in و inside-out چه تفاوتی با هم دارند؟
  • و اصولا یک آدمی که به روش TDD فکر می‌کند چگونه به این سوالات پاسخ می‌دهد؟

من مسعود بهرامی هستم.

به مباحث طراحی، مدلسازی، معماری و تست نرم‌افزار علاقمند هستم. از همین رو عمده فعالیت‌های من در سال‌های اخیر شامل طراحی و تولید نرم‌افزار، آموزش و مشاوره در زمینه طراحی، معماری و تست نرم‌افزار و بصورت کلی مباحث مربوط به حوزه‌ی استادکاری(Craftsmanship) بوده است.

مکتب‌خانه DDD را در راستای همین دغدغه‌ها و با هدف ارائه دوره‌های آموزشی حضوری و غیر حضوری و خدمات مشاوره و همچنین ارائه منابع آموزشی و مقالات مرتبط با حوزه‌های استادکاری(Craftsmanship) در نرم افزار راه‌اندازی کردم.

در خبرنامه عضو شوید