معماری نرم افزار چیست و معمار نرم افزار چه کسی است و چه وظایفی دارد?
https://www.infoq.com/articles/brown-are-you-a-software-architect
https://www.infoq.com/articles/brown-are-you-a-software-architect
InfoQ
Are You a Software Architect?
The line between development and architecture is tricky. Some say it's fake, that architecture is an extension of the design process undertaken by developers; others say it's a chasm that can only be crossed by lofty developers who believe you must abstract…
سرویس Netflix چگونه از Event Sourcing برای پیاده سازی قابلیت دانلود فیلم ها استفاده کرده است ? (بخش اول)
https://medium.com/netflix-techblog/scaling-event-sourcing-for-netflix-downloads-episode-1-6bc1595c5595
https://medium.com/netflix-techblog/scaling-event-sourcing-for-netflix-downloads-episode-1-6bc1595c5595
Medium
Scaling Event Sourcing for Netflix Downloads, Episode 1
by Karen Casella, Phillipa Avery, Robert Reta, Joseph Breuer
نگاهی بر اصول و مفاهیم کلیدی معماری مایکروسرویس ها
https://medium.com/microservices-in-practice/microservices-in-practice-7a3e85b6624c
https://medium.com/microservices-in-practice/microservices-in-practice-7a3e85b6624c
Medium
Pragmatic Microservices
Nowadays, Microservices is one of the most popular buzz-words in the field of software architecture. There are quite a lot of learning…
ویدیو : سرویس Netflix چگونه از Event Sourcing برای پیاده سازی قابلیت دانلود فیلم ها استفاده کرده است?
https://www.infoq.com/presentations/netflix-scale-event-sourcing
https://www.infoq.com/presentations/netflix-scale-event-sourcing
مصاحبه ی InfoQ با پنج معمار نرم افزار در خصوص معماری مایکروسرویس ها :
https://www.infoq.com/articles/microservices-in-practice
https://www.infoq.com/articles/microservices-in-practice
InfoQ
Virtual Panel: Microservices in Practice
Microservices have gone from development practices for the select few to something many developers in a range of organisations are embracing. Some believe that technologies that can assist with developing and adopting microservices are ineffective without…
مقاله : چرا من معتقد هستم که GraphQL جایگزین REST خواهد شد؟
https://dev.to/reactiveconf/why-i-believe-graphql-will-come-to-replace-rest
https://dev.to/reactiveconf/why-i-believe-graphql-will-come-to-replace-rest
The Practical Dev
Why I believe GraphQL will come to replace REST
From the dev.to() community. Sharing ideas that makes us all better developers.
مقاله ای از سایت GitLab در مورد چالش های این سایت در Scale کردن دیتابیس ها و همچنین راه حل به کار گرفته شده ی آن ها
https://about.gitlab.com/2017/10/02/scaling-the-gitlab-database/
https://about.gitlab.com/2017/10/02/scaling-the-gitlab-database/
GitLab
Scaling the GitLab database
An in-depth look at the challenges faced when scaling the GitLab database and the solutions we applied to help solve the problems with our database setup.
مقاله ای از وبلاگ Uncle Bob در مورد وابستگی ساختاری و رفتاری بین کد ها و تست های آنها :
http://blog.cleancoder.com/uncle-bob/2017/10/03/TestContravariance.html
http://blog.cleancoder.com/uncle-bob/2017/10/03/TestContravariance.html
مقاله : در طراحی با رویکرد 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…