مقاله : در طراحی با رویکرد DDD و Event Sourcing, چرا قراردادن Value Object ها در Event ها ایده ی خوبی نیست؟
https://buildplease.com/pages/vos-in-events/
https://buildplease.com/pages/vos-in-events/
Buildplease
Why we Avoid Putting Value Objects in Events
What’s the harm in putting Value Objects in your Events? Say we have the following event:
public class PlannedNewRoastDay : Message
{
public readonly Guid Id;
public readonly string RoastDate;
public PlannedNewRoastDay(Guid id, string roastDate)…
public class PlannedNewRoastDay : Message
{
public readonly Guid Id;
public readonly string RoastDate;
public PlannedNewRoastDay(Guid id, string roastDate)…
مقاله زیر به ۳ موضوع در حوزه ی Continuous Delivery می پردازد :
۱. مشکلات پروژه های Monolithic و نحوه ی شکستن آنها به قسمت های کوچک تر
۲. طراحی Test Suite بهینه برای گرفتن بازخورد مناسب
۳. مفهوم Deployment Pipeline و راه اندازی آن
https://www.thoughtworks.com/insights/blog/architecting-continuous-delivery
۱. مشکلات پروژه های Monolithic و نحوه ی شکستن آنها به قسمت های کوچک تر
۲. طراحی Test Suite بهینه برای گرفتن بازخورد مناسب
۳. مفهوم Deployment Pipeline و راه اندازی آن
https://www.thoughtworks.com/insights/blog/architecting-continuous-delivery
Thoughtworks
Architecting for Continuous Delivery
When you start on the CD journey, it is tempting to think of it only as “What tools should I use?”
شش نوع تست که در معماری مایکروسرویس ها باید بشناسید :
http://www.business2community.com/brandviews/upwork/6-types-testing-know-microservices-architectures-01902537/amp
http://www.business2community.com/brandviews/upwork/6-types-testing-know-microservices-architectures-01902537/amp
Principles of Microservice Security Whitepaper.pdf
747.8 KB
کتابچه ی اصول امنیت در معماری مایکروسرویس ها
نمونه پیاده سازی مایکروسرویس ها با NET Core. و Docker
https://github.com/dotnet-architecture/eShopOnContainers
https://github.com/dotnet-architecture/eShopOnContainers
GitHub
GitHub - dotnet-architecture/eShopOnContainers: Cross-platform .NET sample microservices and container based application that runs…
Cross-platform .NET sample microservices and container based application that runs on Linux Windows and macOS. Powered by .NET 7, Docker Containers and Azure Kubernetes Services. Supports Visual St...
سرویس پرداخت اینترنتی Paypal پلتفرم خود را با سرویس های RESTful طراحی کرده است. تیم توسعه ی PayPal روش ها و Pattern های مورد استفاده خود را در سایت GitHub منتشر کرده است تا تیم های دیگر نیز بتوانند در پروژه های خود از این روش ها استفاده کنند. این دستور العمل ها شامل موارد همچون Versioning، Backward Compatibility، Error Handling و ... می باشد. مطالعه ی این 2 سند به دوستان پیشنهاد می شود.
دستورالعمل های طراحی API :
https://github.com/paypal/api-standards/blob/master/api-style-guide.md
الگوها و Pattern های طراحی API :
https://github.com/paypal/api-standards/blob/master/patterns.md
دستورالعمل های طراحی API :
https://github.com/paypal/api-standards/blob/master/api-style-guide.md
الگوها و Pattern های طراحی API :
https://github.com/paypal/api-standards/blob/master/patterns.md
پیشنهاد کتاب
تا مدت ها در صنعت نرم افزار، معماری چیزی بود که باید کاملا تکمیل میگردید تا اولین خط کد نوشته شود. این ایده که از صنعت ساخت و ساز گرفته شده بود، معماری موفق را، معماری می دانست که در طول توسعه نیاز به هیچ تغییری نداشته باشد. این نگاه با ظهور متد های Agile تحت تاثیر قرار گرفت. امروزه معماران نرم افزار معتقدند که علی رغم تغییرات غیر قابل پیش بینی، می توان معماری نرم افزار را در مسیر درست حرکت داد. این تفکر Evolutionary Architecture (به فارسی : معماری تکاملی) نام دارد. این کتاب به بررسی این تفکر و چالش ها و روش های مختلف آن می پردازد.
نام کتاب : Building Evolutionary Architectures - Support Constant Change
نویسندگان : Neal Ford, Rebecca Parsons, Patrick Kua
تا مدت ها در صنعت نرم افزار، معماری چیزی بود که باید کاملا تکمیل میگردید تا اولین خط کد نوشته شود. این ایده که از صنعت ساخت و ساز گرفته شده بود، معماری موفق را، معماری می دانست که در طول توسعه نیاز به هیچ تغییری نداشته باشد. این نگاه با ظهور متد های Agile تحت تاثیر قرار گرفت. امروزه معماران نرم افزار معتقدند که علی رغم تغییرات غیر قابل پیش بینی، می توان معماری نرم افزار را در مسیر درست حرکت داد. این تفکر Evolutionary Architecture (به فارسی : معماری تکاملی) نام دارد. این کتاب به بررسی این تفکر و چالش ها و روش های مختلف آن می پردازد.
نام کتاب : Building Evolutionary Architectures - Support Constant Change
نویسندگان : Neal Ford, Rebecca Parsons, Patrick Kua
دانلود کتاب Building Evolutionary Architectures :
http://dl.hadiahmadi.ir/Books/Architecture-Design/Building-Evolutionary-Architectures-Support-Constant-Change.pdf
http://dl.hadiahmadi.ir/Books/Architecture-Design/Building-Evolutionary-Architectures-Support-Constant-Change.pdf
پادکست : آقای ریچاردسون از معماران صاحب نظر در حوزه ی مایکروسرویس ها، در مورد بهره گیری از DDD و CQRS در پیاده سازی مایکروسرویس ها صحبت میکند. برخی نکات جالب در صحبت های ایشون :
- به زبان DDD، هر سرویس یک Bounded Context بوده که دارای مدل و Ubiquitous Language مخصوص به خود است.
- قوانین DDD بیان می کند که در هر Transaction تنها باید یک Aggregate ایجاد و یا ویرایش شود. این به این معناست که در معماری مایکروسرویس ها، Distributed Transaction نخواهیم داشت.
- اگر قصد دارید مایکروسرویس ها را به درستی پیاده سازی کنید، ابتدا کتاب DDD را بخوانید.
لینک کامل پادکست :
https://www.infoq.com/podcasts/chris-richardson
(پادکست بر روی سرویس SoundCloud می باشد، در صورت لود نشدن از پروکسی استفاده کنید)
- به زبان DDD، هر سرویس یک Bounded Context بوده که دارای مدل و Ubiquitous Language مخصوص به خود است.
- قوانین DDD بیان می کند که در هر Transaction تنها باید یک Aggregate ایجاد و یا ویرایش شود. این به این معناست که در معماری مایکروسرویس ها، Distributed Transaction نخواهیم داشت.
- اگر قصد دارید مایکروسرویس ها را به درستی پیاده سازی کنید، ابتدا کتاب DDD را بخوانید.
لینک کامل پادکست :
https://www.infoq.com/podcasts/chris-richardson
(پادکست بر روی سرویس SoundCloud می باشد، در صورت لود نشدن از پروکسی استفاده کنید)
Enterprise Software Development
bdd-at-the-heart-of-devops.pdf
در دنیای رقابتی امروز، تمام سازمان ها و شرکت ها نیاز به Deliver کردن سریعتر نرم افزار دارند. به همین علت تعداد شرکت هایی که به سمت تحولات Agile و DevOps می روند افزایش پیدا میکند. روش ها و فرهنگ DevOps هم در Deliver کردن سریع تر نرم افزار و هم در کیفیت بهتر آن تاثیر گذار است. اما پیاده سازی DevOps و تحول سازمان و تیم های فنی کار آسانی نیست و بسیاری از شرکت ها در آن با چالش مواجه می شوند.
در این کتابچه آقای John Ferguson (نویسنده کتاب BDD in Action) به بررسی 4 جنبه ی کلیدی در تحولات موفق DevOps میپردازد و BDD را به عنوان یک الزام جهت حرکت به سوی DevOps معرفی میکند.
نام کتابچه : BDD at the heart of any DevOps transformation story
در این کتابچه آقای John Ferguson (نویسنده کتاب BDD in Action) به بررسی 4 جنبه ی کلیدی در تحولات موفق DevOps میپردازد و BDD را به عنوان یک الزام جهت حرکت به سوی DevOps معرفی میکند.
نام کتابچه : BDD at the heart of any DevOps transformation story
پیاده سازی و نگهداری Acceptance Test ها با چالش های مخصوص به خود همراه است، اما تیم هایی که بتوانند این چالش ها را حل کنند و تست های کاملی بنویسند، به سطح بالایی از اطمینان در رفتار و عملکرد سیستم دست پیدا میکنند. این سطح بالای اطمینان، برای راه اندازی Continuous Delivery الزامی است. در این ویدیو اقای Dave Farely در مورد رویکرد ها و الگوهای نوشتن Acceptance Test ها و همچنین چالش های این مسیر صحبت میکند.
https://www.youtube.com/watch?v=SBhgteA2szg
https://www.youtube.com/watch?v=SBhgteA2szg
YouTube
Acceptance Testing for Continuous Delivery • Dave Farley • GOTO 2016
This presentation was recorded at GOTO Berlin 2016
http://gotober.com
Dave Farley - Co-Author of 'Continuous Delivery' @ContinuousDelivery
You can find more content like this on Dave’s "Continuous Delivery YouTube Channel": https://www.youtube.com/cha…
http://gotober.com
Dave Farley - Co-Author of 'Continuous Delivery' @ContinuousDelivery
You can find more content like this on Dave’s "Continuous Delivery YouTube Channel": https://www.youtube.com/cha…
شرکت اریکسون از "۷ هفته زمان تست, ۶ ماه زمان Deploy و ۲-۳ سال زمان توسعه" به مدل "۹۰ دقیقه زمان تست, ۳ هفته زمان deploy و سیکل های توسعه ی ۶ هفته ای" رسید.
مقاله ی زیر را در مورد Continuous Delivery در اریکسون بخوانید :
https://www.infoq.com/news/2017/10/continuous-delivery-ericsson
مقاله ی زیر را در مورد Continuous Delivery در اریکسون بخوانید :
https://www.infoq.com/news/2017/10/continuous-delivery-ericsson
InfoQ
Continuous Delivery of Telecom Software at Ericsson
The telecom industry has seen changes in service delivery processes in recent years via the adoption of DevOps principles and tools. Ericsson’s talk at the DevOps Enterprise Summit 2017 in London and their and continuous delivery paper outline the challenges…
روش ها و راهکارهای Validate کردن Command های کاربر در CQRS و DDD
http://danielwhittaker.me/2016/04/20/how-to-validate-commands-in-a-cqrs-application/
http://danielwhittaker.me/2016/04/20/how-to-validate-commands-in-a-cqrs-application/
Learn CQRS and Event Sourcing
How To Validate Commands in a CQRS Application | Learn CQRS and Event Sourcing
Do you know the 4 places to validate commands in a CQRS application? Find out what Superficial validation is and how to manage it in code.
چهار روش برای مدیریت Eventual Consistency در سطح UI جهت نمایش اخرین وضعیت داده ها به کاربر
http://danielwhittaker.me/2014/10/27/4-ways-handle-eventual-consistency-ui/
http://danielwhittaker.me/2014/10/27/4-ways-handle-eventual-consistency-ui/
Learn CQRS and Event Sourcing
4 Ways to Handle Eventual Consistency on the UI | Learn CQRS and Event
Ever tried to hold a slippery eel in your hands? In case you haven't, its hard. On the UI, eventual consistency needn't be that slippery with these 4 tips
Top-10-DDD-Mistakes.png
393.5 KB
فایل گرافیکی 10 اشتباه رایج در DDD
مقدمه ای بر Event Storming و بررسی تاثیر آن در طراحی با رویکرد DDD
https://techbeacon.com/introduction-event-storming-easy-way-achieve-domain-driven-design
https://techbeacon.com/introduction-event-storming-easy-way-achieve-domain-driven-design
TechBeacon
An introduction to event storming: The easy way to achieve
Event storming is a fast, lightweight group modeling technique you can use to accelerate developer productivity and facilitate domain-driven design.