بلاگ

CQRS حداقلی: مسیرهای کد را جدا کنید، یک برنامه و یک دیتابیس نگه دارید

CQRS می‌تواند با مسیرهای جدا برای command و query در یک برنامه و با یک دیتابیس شروع شود. این مرز، پیش از آنکه زیرساختی باشد، مربوط به مسئولیت‌ها است.

مهندسی معماری نرم‌افزار #architecture #cqrs #cqs #dotnet #csharp

CQS و commandها: کاری کنید برنامه هدف کاربر را بفهمد

commandی که نامش رفتار موردنظر را روشن می‌کند، به برنامه می‌گوید کاربر چه می‌خواهد تا اعتبارسنجی، مجوزدهی و قوانین کسب‌وکار جای مشخصی داشته باشند.

مهندسی معماری نرم‌افزار #architecture #cqrs #cqs #dotnet #csharp

وقتی CRUD دیگر زبان مناسبی برای مسئله نیست

CRUD برای داده‌های ساده خوب جواب می‌دهد؛ اما وقتی updateها هدف کاربر را پنهان می‌کنند و read و write به مدل‌های متفاوت نیاز دارند، دیگر به‌تنهایی کافی نیست.

مهندسی معماری نرم‌افزار #architecture #cqrs #cqs #dotnet #csharp

Async، concurrency و parallelism یکی نیستند

async از انتظارهای blocking جلوگیری می‌کند، concurrency کارهای هم‌پوشان را هماهنگ می‌کند و parallelism از چند هسته‌ی CPU استفاده می‌کند.

مهندسی توسعه نرم‌افزار #csharp #dotnet #async #concurrency #parallelism

چرا برنامه‌نویسی async وجود دارد؟

برنامه‌نویسی async کمک می‌کند برنامه هنگام انتظار برای I/O همچنان کار مفید انجام دهد.

مهندسی توسعه نرم‌افزار #csharp #dotnet #async

سه روش برای پاک‌سازی برنچ‌های محلی Git

برنچ‌های محلی Git را با پاک‌سازی هدفمند، حذف برنچ‌های Merge‌شده یا شروعی تازه مرتب نگه دارید.

مهندسی #git #developer-productivity #workflow

ساخت این وبلاگ، بدون ساختن یک CMS

این وبلاگ استاتیک دوزبانه چطور Markdown و HTML قابل ویرایش را بدون دیتابیس یا فریم‌ورک فرانت‌اند به سایتی کوچک و قابل انتشار تبدیل می‌کند.

مهندسی #typescript #static-site #web-development