کانال مکتب‌خانه DDD
659 subscribers
83 photos
1 video
4 files
156 links
کانال مکتب‌خانه DDD

اطلاع‌رسانی کارگاه‌ها، دوره‌ها و وبینارهای آموزشی
ارائه منابع و مطالب آموزشی

https://DomainDrivenDesign.ir

#Youtube Channel:
https://www.youtube.com/@Masoud.Bahrami

#Public Group:
https://t.iss.one/DomainDrivenDesignGroup

#DDD
Download Telegram
کانال مکتب‌خانه DDD
📣 اطلاع رسانی دومین جلسه آنلاین DDD Plus جلسه دوم DDD Plus این هفته جمعه از ساعت ۱۸:۰۰ الی ۱۹:۰۰ برگزار خواهد شد. توی این جلسات آنلاین، در مورد چالش‌های مطرح شده تحت عنوان DDD Plus با همدیگر به بحث و تبادل نظر می‌پردازیم و سعی می‌کنیم از همدیگر یاد بگیریم.…
🎬 ویدئوی رویداد دوم DDD Plus

با سلام خدمت همه‌ی عزیزان گرامی

ویدئوی دومین رویداد DDD Plus منتشر شد. شما می‌توانید از طریق لینک زیر به ویدئو دسترسی پیدا کنید:

https://youtu.be/m9Oi3s-uxmU


جزپیات بیشتر این رویداد را از لینک زیر دنبال کنید:
https://domaindrivendesign.ir/ddd-plus-02-video/



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

💬 گروه بحث و تبادل نظر:
https://t.iss.one/DomainDrivenDesignGroup

💬 کانال مکتب‌خانه DDD:
https://t.iss.one/DomainDrivenDesign_ir
🎥کانال یوتیوب:
https://www.youtube.com/@Masoud.Bahrami


#DDDP | #DDD_Plus2 #DDDP2
🙏63
اطلاعیه ثبت‌نام رویداد حضوری DDD Plus
☕️ سلام به همه‌ی دوستان و عزیزان گرامی!

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

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

تا حالا پنج تا دورهمی آنلاین برگزار کردیم و امیدواریم که براتون مفید بوده باشن. حالا می‌خوایم اولین دورهمی‌ حضوری DDD Plus رو برگزار کنیم.

امیدوارم این رویداد حضوری فرصتی رو فراهم کنه که بتونیم همدیگه رو ببینیم، از همدیگه یاد بگیریم، با همدیگه آشنا بشیم یا تجدید دیدار مجددی کنیم. ☕️🥮



برای اطلاعات بیشتر و ثبت‌نام به این لینک‌ها سر بزن:

https://evand.com/events/رویداد-حضوری-ddd-plus
https://domaindrivendesign.ir/ddd-plus-in-person-event-01/
منتظرتون هستیم!
2👍1
Forwarded from Masoud Bahrami
Media is too big
VIEW IN TELEGRAM
🪕🎼🧑‍💻بداهه‌نوازی و TDD: رقصی از خلاقیت و ساختار

اگرچه بداهه‌نوازی موسیقی ایرانی و طراحی پدیدار(emergent design) به روش TDDدر ظاهر دو حوزه کاملا متفاوت به نظر می‌رسند؛ یکی هنر اصیل و دیگری روشی مهندسی در توسعه نرم‌افزار. اما با کمی دقت می‌توانیم شباهت‌هایی شگفتی بین این دو مفهوم پیدا کنیم. هر دو فرایند، ریشه در خلاقیت، انعطاف‌پذیری و تکرار دارند

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


در TDD نیز، فرد با نوشتن اولین تست، هدفی مشخص برای خود تعیین میکند. سپس با نوشتن کمترین کد ممکن برای پاس کردنش، به تدریج ویژگی‌های نرم‌افزار را می‌سازد. هر تست، کد را به سمت هدف نهایی سوق می‌دهد.
8👍1
📢چالش شماره 15 DDD Plus

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

🔴 سناریو:
شما در حال پیاده‌سازی و طراحی یک سیستم مدیریت پروژه در شرکت AgileTaskManager.Muck هستید. در این سیستم، پروژه‌ها به وظایف کوچکتر تقسیم می‌شوند و هر وظیفه می‌تواند توسط یک یا چند عضو تیم انجام شود. هر وظیفه دارای تاریخ شروع و پایان، وضعیت (در حال انجام، تکمیل شده، لغو شده)، و وابستگی به وظایف دیگر است. همچنین، پروژه‌ها دارای بودجه، منابع و تاریخ تحویل هستند.

صورت مسئله:
با توجه به سناریو بالا به سوالات زیر پاسخ دهید:
🔶اگریگیت پروژه: آیا پروژه یک Aggregate است؟ اگر بله، مرزهای آن کجا قرار می‌گیرد؟ آیا وظایف، تیم، و منابع بخشی از این Aggregate هستند یا Aggregate‌های جداگانه‌ای هستند؟
🔶 اگریگیت وظیفه(Task): آیا وظیفه یک Aggregate است؟ یا یک Entity برای پروژه؟ وابستگی‌های بین وظایف چگونه مدل‌سازی می‌شوند؟
🔶وظایفی که مربوط به چند پروژه هستند: چگونه وظایفی مثل برنامه‌ریزی‌های استراتژیک که مربوط به چند پروژه هستند را مدلسازی می‌کنید؟
🔶وابستگی‌های بین اگریگیت ها: چگونه وابستگی‌های بین Aggregate‌های مختلف (مثلاً بین پروژه و وظیفه، یا بین وظیفه و منابع) مدل‌سازی می‌شود؟
🔶 تغییرات در پروژه: چگونه تغییرات در یک پروژه (مثلاً تغییر در تاریخ تحویل، اضافه شدن یک وظیفه جدید) بر Aggregate‌های دیگر تأثیر می‌گذارد؟
🔶 عملکرد: چگونه می‌توانیم از نظر عملکرد، اندازه بهینه برای Aggregate‌ها را تعیین کنیم؟
🔶قوانین کسب‌وکار: چه قوانین کسب‌وکاری در این سیستم وجود دارد که بر مرزهای Aggregate‌ها تأثیر می‌گذارد؟ مثلاً، آیا یک وظیفه می‌تواند توسط بیش از یک تیم انجام شود؟ آیا یک منبع می‌تواند به چندین پروژه اختصاص داده شود؟

چالش را بصورت کامل در زیر می‌توانید مشاهده و دنبال کنید:


لینک به چالش شماره 15: 👇

https://domaindrivendesign.ir/ddd-plus-15/

💬گروه بحث و تبادل نظر در مورد این چالش: 👇
https://t.iss.one/DomainDrivenDesignGroup

هشتگ‌:
#DDDP | #DDD_Plus | #dddp15

https://t.iss.one/DomainDrivenDesign_ir
👍31
Large-Scale Architecture - Randy Shoup - Explore DDD 2024


Building distributed systems that work is hard. And scaling those systems by multiple orders of magnitude is even harder. Using examples from internet-scale consumer properties like Google, Amazon, and eBay, this talk deep-dives into the counterintuitive idea that the key to success in large-scale architecture is simplicity.

Randy Shoup first discuss simple components like modular services, orthogonal domain logic, and service layering. Next he discuss simple interactions between components, leveraging event-driven models, immutable logs, and asynchronous dataflow. Then Randy explore techniques that simplify making changes the system, including incremental changes, continuous testing, canary deployments, and feature flags.

In the final part of the talk, Randy Shoup shows how all these ideas work together with specific architectural examples from Amazon, Netflix, and Walmart.


🔴 Watch the talk: https://www.youtube.com/watch?v=rO00-4gH3SI
How AI is Changing Coding and Education

Stanford Webinar - Andrew Ng & Mehran Sahami

This engaging fireside chat brings together two leading Stanford experts, Andrew Ng and Mehran Sahami, for an illuminating conversation on how AI is reshaping both coding and education. Their thought-provoking insights reveal the transformative impact of AI on the future of technology and learning.

From the rich history of these disciplines to the latest breakthroughs fueled by generative AI, they offer sharp insights into what’s coming next in technology and learning, and how it will reshape the world around us.


🔴 How generative AI is empowering faster development for experienced developers while simplifying coding for novices, making advanced software creation more accessible.

🔴 Why learning to code and use generative AI will become vital for professionals across various fields, not just software engineers
How educational institutions are integrating generative AI tools into computer science curricula to ensure students are proficient with these emerging technologies from the outset.

🔴 The importance of equipping students to recognize the broader societal implications of the technologies they develop by embedding considerations of fairness, privacy, and decision-making into technical courses.



Watch the webinar 👇

https://www.youtube.com/watch?v=J91_npj0Nfw
2
کانال مکتب‌خانه DDD
📣 اطلاع رسانی سومین جلسه آنلاین DDD Plus جلسه سوم DDD Plus این هفته جمعه از ساعت ۱۸:۰۰ الی ۱۹:۰۰ برگزار خواهد شد. توی این جلسات آنلاین، در مورد چالش‌های مطرح شده تحت عنوان DDD Plus با همدیگر به بحث و تبادل نظر می‌پردازیم و سعی می‌کنیم از همدیگر یاد بگیریم.…
📢فیلم رویداد سوم DDD Plus با موضوع تیم فورمینگ در DDD بر روی کانال یوتیوب منتشر شد.

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

چه ترکیب تیمی بهتره؟
آیا تیم‌ها باید کاملاً مستقل باشن؟
DDD چه تاثیری روی تیم‌سازی داره؟

چطور ویژگی‌های مشترک بین بخش‌های مختلف نرم‌افزار رو مدیریت کنیم؟


لینک ویدئو👇
https://www.youtube.com/watch?v=74y3SP7rK5U&si=Dp_VEzLKDAwOlFZu
3👍1
What Studying the Brain Tells Us About Arts Education

by George Lakoff
George Lakoff, Distinguished Professor of Cognitive Science and Linguistics at U.C. Berkeley, emphasizes that the bridge between existing knowledge and new ideas is imagination. In this talk, he stresses the importance of educators incorporating the arts into educational curriculum, in order to nurture creative thinking.

https://www.youtube.com/watch?v=fpIa16Bynzg
1
Authority and Responsibility
By Kent Beck


It’s often regarded as a key attitude for every player in any social activity, including software development.

What are some good and bad traits that define a productive person?

Authority and responsibility are certainly among the most challenging yet game-changing qualities. What is the reasoning behind being responsible in a social setting? Why is it so important? Does it really matter at all?


Read the article📰👇

https://substack.com/@kentbeck/p-149451292
🙏1
Forwarded from Masoud Bahrami
Zipf's Law: A Universal Pattern in Our Data-Driven World

Have you ever wondered why some words appear far more frequently than others in a language? Or why a handful of cities dominate a country's population? These seemingly disparate phenomena share a surprising commonality: they often follow a simple yet profound pattern known as Zipf's Law.


Read the article:👇

https://www.linkedin.com/pulse/zipfs-law-universal-pattern-our-data-driven-world-masoud-bahrami-osixc/?trackingId=83SElbhUQLuSBH%2BAdTJxbg%3D%3D
Crucial Conversations Live by Emily Gregory


A crucial conversation is one in which: 1) the stakes are high; 2) opinions vary; and 3) emotions run strong. These types of conversations can happen at home and in the workplace."



https://www.youtube.com/watch?v=8lp5qIkGa9s
Temporal Modelling
by Mathias Verraes

Distributed systems are all about time. Traditional modeling styles, focused on things and structures, are not the primary way anymore to build modern systems that handle complexity well. Entity-centric designs tend to have an uneasy relation with events happening over time. The actual business processes, the heart of how organisations operate, end up hidden in the many calls between services.


Temporal Modelling is the cure: build models and systems that make events and processes the first class building blocks of a domain model. In this talk, Mathias is going to look at how reasoning with time helps us better understand how to build our software.


Watch the talk🎬 👇:

https://www.youtube.com/watch?v=vFEEgtOFYBA
🙏1
How to debug large, distributed systems: Antithesis


An introduction on Antithesis-a testing and
debugging tool

Antithesis autonomously searches your software for problems, so your developers can spend less time writing and maintaining tests. Our powerful debugging tools make fixing the bugs we find much faster as well. This means your team can spend more of their time improving your software, and less of their time testing it.



https://newsletter.pragmaticengineer.com/p/antithesis
The Mirroring Principle and Organization Structure

The adage “as above, so below” finds a curious parallel in the realm of organizational structure and system design. The Mirroring Principle, often intertwined with Conway’s Law, posits that the structure of an organization directly influences the structure of the systems it produces.



Read the article 📝⤵️

https://masoudbahrami.medium.com/the-mirroring-principle-and-organization-structure-4520734d4c87
👍2
انجمن DDD ایران با افتخار اعلام می‌کند که در راستای گسترش تعاملات علمی در حوزه مهندسی نرم‌افزار برای ایرانیان و فارسی‌زبانان، با برگزاری یک رویداد آنلاین در رویداد جهانی 2024 Global Day of DDD مشارکت خواهد داشت.

رویداد Global Day of DDD که توسط جامعه مجازی Virtual Domain-driven design سازماندهی می‌شود، شامل یک رویداد آنلاین اصلی و مجموعه‌ای از رویدادهای محلی (Local) است که توسط جوامع DDD در کشورهای مختلف به طور همزمان و در یک بازه 16 ساعته برگزار می‌شود. انجمن DDD ایران افتخار دارد که در این رویداد جهانی مشارکت کند و با برگزاری یک رویداد آنلاین، فضایی برای تعامل و تبادل نظر علاقه‌مندان ایرانی فراهم آورد.

🔹 اطلاعات رویداد

▪️ تاریخ : پنجشنبه 1 آذر ۱۴۰۳
▪️ زمان: از ساعت ۹ الی ۲۲
▪️ قالب برگزاری: آنلاین
شرکت در این رویداد برای تمامی علاقه‌مندان رایگان است.

لینک ثبت نام:
https://evand.com/events/global-day-of-ddd-6256241
5👍2
Learn Hexagonal Architecture (aka Ports and Adapters) from It's Creator

A more concise nick name for Hexagonal Architecture as Alistair said is: Ports and Maybe Adapters!



Learn from it’s creator the rules and structure of the “Hexagonal”, more correctly called the Ports & Adapters architecture. In this lecture, Dr. Cockburn will describe why he created it, its benefits and also its costs, the UML description, and also some sample code. As an extra challenge, he will invite you to write your first Ports & Adapters application in your favorite language /during/ the talk!

Outline of the lecture:

- Challenge to write a small application during the lecture
- Short form what the code looks like
- Costs, benefits, history: why was it needed
- Viewing your application as a component
- Development sequence
- Examples in Ruby & Java with needed terminology
- How to set up the folders
- The various ways to set up the architecture
- Why is it called /Hexagonal/?
- Summary, checking in with people who accepted the challenge



https://www.youtube.com/watch?v=k0ykTxw7s0Y
📣 اطلاعیه برگزاری کارگاه Exploratory Domain Discovery

انجمن DDD ایران در نظر دارد کارگاه Exploratory Domain Discovery را به زودی برگزار کند. در صورتی که تمایل دارید در این کارگاه شرکت کنید، لطفا از طریق لینک زیر فرم پیش‌ثبت‌نام اولیه را تکمیل بفرمایید.


کارگاه بصورت حضوری و در تهران برگزار می‌شود. ولی در صورتی که عزیزان بیشتری امکان حضور نداشته باشند بصورت آنلاین نیز ممکن است برگزار بشود.

🔵 مربی کارگاه: مسعود بهرامی
🔵 برگزار کننده: انجمن DDD ایران
🔵 مکان برگزاری: بصورت حضوری در شهر تهران

⭕️لینک پیش‌ ثبت‌نام:
https://lnkd.in/gpmTf6J8
👍2