tgoop.com/dotnetcode/3056
Last Update:
۳۰ مفهوم کلیدی طراحی سیستم برای مهندسان نرمافزار
طراحی سیستم یکی از مهارتهای ضروری برای هر مهندس نرمافزار است. درک مفاهیم بنیادی آن به شما کمک میکند تا سیستمهایی مقیاسپذیر، قابل اتکا و با کارایی بالا بسازید. در ادامه، لیستی از ۳۰ مفهوم کلیدی در طراحی سیستم به همراه مقالاتی عالی برای یادگیری هر کدام، گردآوری شده است.
لیست مفاهیم و منابع یادگیری
۱. رابطهای برنامهنویسی کاربردی (APIs): (https://blog.algomaster.io/p/whats-an-api)
۲. توکنهای وب جیسون (JWTs): (https://blog.algomaster.io/p/json-web-tokens)
۳. وبهوکها (Webhooks): (https://blog.algomaster.io/p/what-are-webhooks)
۴. دروازههای API (API Gateways): (https://blog.algomaster.io/p/what-is-an-api-gateway)
۵. توزیع بار (Load Balancing): (https://blog.algomaster.io/p/load-balancing-algorithms-explained-with-code)
۶. پراکسی در مقابل پراکسی معکوس (Proxy vs Reverse Proxy): (https://blog.algomaster.io/p/proxy-vs-reverse-proxy-explained)
۷. مقیاسپذیری (Scalability): (https://blog.algomaster.io/p/scalability)
۸. در دسترس بودن (Availability): (https://blog.algomaster.io/p/system-design-what-is-availability)
۹. نقطه شکست منفرد (SPOF): (https://blog.algomaster.io/p/system-design-how-to-avoid-single-point-of-failures)
۱۰. قضیه CAP (CAP Theorem): (https://blog.algomaster.io/p/cap-theorem-explained)
۱۱. پایگاهدادههای SQL در مقابل NoSQL: (https://blog.algomaster.io/p/sql-vs-nosql-7-key-differences)
۱۲. تراکنشهای ACID: (https://blog.algomaster.io/p/what-are-acid-transactions-in-databases)
۱۳. ایندکسهای پایگاهداده (Database Indexes): (https://blog.algomaster.io/p/a-detailed-guide-on-database-indexes)
۱۴. شاردینگ پایگاهداده (Database Sharding): (https://blog.algomaster.io/p/what-is-database-sharding)
۱۵. هشینگ سازگار (Consistent Hashing): (https://blog.algomaster.io/p/consistent-hashing-explained)
۱۶. ضبط دادههای تغییر یافته (CDC): (https://blog.algomaster.io/p/change-data-capture-cdc)
۱۷. کشینگ (Caching): (https://blog.algomaster.io/p/4d7d6f8a-6803-4c7b-85ca-864c87c2cbf2)
۱۸. استراتژیهای کشینگ (Caching Strategies): (https://blog.algomaster.io/p/top-5-caching-strategies-explained)
۱۹. سیاستهای حذف از کش (Cache Eviction Policies): (https://blog.algomaster.io/p/7-cache-eviction-strategies)
۲۰. شبکه تحویل محتوا (CDN): (https://blog.algomaster.io/p/content-delivery-networks)
۲۱. الگوریتمهای محدودسازی نرخ درخواست (Rate Limiting): (https://blog.algomaster.io/p/rate-limiting-algorithms-explained-with-code)
۲۲. صفهای پیام (Message Queues): (https://blog.algomaster.io/p/message-queues)
۲۳. فیلترهای بلوم (Bloom Filters): (https://blog.algomaster.io/p/bloom-filters)
۲۴. همانتوانی (Idempotency): (https://blog.algomaster.io/p/idempotency-in-distributed-systems)
۲۵. همزمانی در مقابل موازیسازی (Concurrency vs Parallelism): (https://blog.algomaster.io/p/concurrency-vs-parallelism)
۲۶. لانگ پولینگ در مقابل وبسوکتها (Long Polling vs WebSockets): (https://blog.algomaster.io/p/long-polling-vs-websockets)
۲۷. معماری حالتمند در مقابل بیحالت (Stateful vs. Stateless): (https://blog.algomaster.io/p/stateful-vs-stateless-architecture)
۲۸. پردازش دستهای در مقابل پردازش جریانی (Batch vs Stream Processing): (https://blog.algomaster.io/p/batch-processing-vs-stream-processing)
۲۹. سازگاری قوی در مقابل سازگاری نهایی (Strong vs. Eventual Consistency): (https://blog.algomaster.io/p/strong-vs-eventual-consistency)
۳۰. REST در مقابل GraphQL: (https://blog.algomaster.io/p/rest-vs-graphql)
---
امیدواریم این مجموعه به شما در مسیر یادگیری طراحی سیستم کمک کند. موفق باشید!
📚💻 @dotnetcode