تست ها تنها می توانند وجود باگ ها را نشان دهند، و نه عدم وجود آنها را. Pass شدن تمام تست ها به این معنی نیست که باگی در سیستم وجود ندارد، تنها به این معناست که باگی توسط تست های نوشته شده پیدا نشده است. با تست های ناقص و صرف Code Coverage صد در صد، در تیم خود اعتماد به نفس کاذب ایجاد نکنید.
https://www.stickyminds.com/article/exposing-false-confidence-your-tests
https://www.stickyminds.com/article/exposing-false-confidence-your-tests
Stickyminds
Exposing False Confidence in Your Tests | StickyMinds
Testing can't tell you what's wrong with your code. It can only show what is not wrong with it. And though we cannot possibly conceive everything that might be wrong, it's important to stray from the "happy path." We need test cases that present bogus inputs…
در پروژه ها با رویکرد DDD و معماری Microservice, باید از Event Sourcing هم استفاده کرد یا خیر؟
https://forcomprehension.com/2017/10/30/to-event-source-or-not/
https://forcomprehension.com/2017/10/30/to-event-source-or-not/
پیاده سازی مایکروسرویس ها با Kafka و KSQL
https://www.confluent.io/blog/building-a-microservices-ecosystem-with-kafka-streams-and-ksql/
https://www.confluent.io/blog/building-a-microservices-ecosystem-with-kafka-streams-and-ksql/
Confluent
Building a Microservices Ecosystem with Kafka Streams and KSQL
How to build fine grained, streaming microservices with the Apache Kafka Streams API and KSQL.
technology-radar-vol-17-en.pdf
2.2 MB
نسخه 17 سند Technology Radar از شرکت ThoughtWorks
امروزه تیم های توسعه ی نرم افزار تحت فشار زیادی جهت Deliver کردن هرچه سریعتر نرم افزار هستند. BDD یکی از موثرترین روش هایی است که به تیم ها جهت تولید نرم افزار با کیفیت و مورد نیاز مشتری، کمک می کند. بسیاری از تیم هایی که به سراغ BDD می روند، از اصول پایه ی BDD غافل شده و صرفا به استفاده از ابزار (مانند Specflow و یا JBehave) می پردازند. اما BDD صرفا استفاده از ابزارهای این چنینی نیست.
مطالعه مقاله زیر از اقای John Ferguson نویسنده ی کتاب BDD in Action به علاقه مندان BDD توصیه می شود.
عنوان مقاله : BDD چیزی فراتر از سینتکس Given/When/Then می باشد.
https://johnfergusonsmart.com/theres-bdd-givenwhenthen/
مطالعه مقاله زیر از اقای John Ferguson نویسنده ی کتاب BDD in Action به علاقه مندان BDD توصیه می شود.
عنوان مقاله : BDD چیزی فراتر از سینتکس Given/When/Then می باشد.
https://johnfergusonsmart.com/theres-bdd-givenwhenthen/
John Ferguson Smart
Broad brushes and narrow brushes: there's more to BDD than Given/When/Then - John Ferguson Smart
Behaviour Driven Development (BDD) is one of the more effective ways to help teams deliver the high quality software that their business needs. But BDD isn’t simply about picking up a new tool.
Enterprise Software Development
reactive_microservices_the_evolution.pdf
اگر دوست دارید نرم افزارتان Response Time میلی ثانیه ای داشته و نزدیک به 100% UpTime داشته باشد، باید بدانید معماری های سنتی با یک دیتابیس SQL و روش های Thread-Per-Request به هیچ وجه با مایکروسرویس ها قابل قیاس نیستند.
اگر با مایکروسرویس ها و برنامه نویسی Reactive آشنایی ندارید، میتوانید کتابچه ی بالا را مطالعه کنید.
اگر با مایکروسرویس ها و برنامه نویسی Reactive آشنایی ندارید، میتوانید کتابچه ی بالا را مطالعه کنید.
مقاله اخیر آقای مارتین فاولر در مورد Integration Test ها
https://martinfowler.com/bliki/IntegrationTest.html
https://martinfowler.com/bliki/IntegrationTest.html
martinfowler.com
bliki: Integration Test
Integration tests see if independently developed units of software work correctly when connected. Traditionally broad they are now better narrowly scoped.
از آنجا که مایکروسرویس های شما به دیتا مدل های متفاوتی احتیاج دارند، برای پیاده سازی آنها باید از ذخیره سازی Polyglot استفاده کرد و یا از دیتابیس های Multi-Model ؟ مزایا، معایت و محدودیت های هر یک در مقاله زیر توضیح داده شده اند :
https://www.infoworld.com/article/3236291/database/how-to-choose-a-database-for-your-microservices.html
https://www.infoworld.com/article/3236291/database/how-to-choose-a-database-for-your-microservices.html
InfoWorld
How to choose a database for your microservices
Your microservices architecture requires multiple data models. Should you opt for polyglot persistence or a multi-model database?
Enterprise Software Development
https://byrslf.co/microservices-biology-and-evolution-17961800d009 مایکروسرویس ها، زیست شناسی و تکامل
حدود 3.8 میلیارد سال پیش، تک سلولی ها بر روی زمین شکل گرفتند. میلیون ها سال بعد، با به وجود آمدن موجودات چند سلولی تحول عظیمی در حیات کره زمین رخ داد. امروزه ما یک روند تکاملی در معماری نرم افزار را مشاهده می کنیم که مشابه تکامل حیات بیولوژیک بر روی زمین می باشد.
نویسنده در این مقاله به بررسی 5 ویژگی از هر دو دنیا پرداخته و به مسیر معماری نرم افزار در آینده می پردازد.
نویسنده در این مقاله به بررسی 5 ویژگی از هر دو دنیا پرداخته و به مسیر معماری نرم افزار در آینده می پردازد.
سه تکنیک ساده که باعث می شود مایکروسرویس های Resilient تر داشته باشید
http://blog.christianposta.com/microservices/3-easy-things-to-do-to-make-your-microservices-more-resilient/
http://blog.christianposta.com/microservices/3-easy-things-to-do-to-make-your-microservices-more-resilient/
Software Blog
3 Easy Things to Do to Make Your Microservices More Resilient
One of the advantages of building distributed systems as microservices is the ability of the system as a whole to withstand faults and unexpected failures of components, networks, compute resources, etc. These systems are resilient even in the face of faults.…
لیست کاملی از کتاب ها، فریم ورک ها و منابع مرتبط با بحث های DDD، CQRS و Event Sourcing
https://github.com/heynickc/awesome-ddd
https://github.com/heynickc/awesome-ddd
GitHub
GitHub - heynickc/awesome-ddd: A curated list of Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event…
A curated list of Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), Event Sourcing, and Event Storming resources - heynickc/awesome-ddd