2 378
订阅者
无数据24 小时
-37 天
-2630 天
数据加载中...
相似频道
标签云
进出提及
---
---
---
---
---
---
吸引订阅者
四月 '26
四月 '26
+9
在0个频道中
三月 '26
+15
在0个频道中
Get PRO
二月 '26
+41
在0个频道中
Get PRO
一月 '26
+50
在0个频道中
Get PRO
十二月 '25
+60
在0个频道中
Get PRO
十一月 '25
+62
在0个频道中
Get PRO
十月 '25
+68
在0个频道中
Get PRO
九月 '25
+76
在0个频道中
Get PRO
八月 '25
+54
在0个频道中
Get PRO
七月 '25
+70
在0个频道中
Get PRO
六月 '25
+39
在0个频道中
Get PRO
五月 '25
+54
在0个频道中
Get PRO
四月 '25
+46
在0个频道中
Get PRO
三月 '25
+66
在1个频道中
Get PRO
二月 '25
+75
在0个频道中
Get PRO
一月 '25
+150
在0个频道中
Get PRO
十二月 '24
+152
在0个频道中
Get PRO
十一月 '24
+94
在0个频道中
Get PRO
十月 '24
+140
在0个频道中
Get PRO
九月 '24
+96
在0个频道中
Get PRO
八月 '24
+121
在0个频道中
Get PRO
七月 '24
+108
在0个频道中
Get PRO
六月 '24
+54
在0个频道中
Get PRO
五月 '24
+77
在0个频道中
Get PRO
四月 '24
+59
在0个频道中
Get PRO
三月 '24
+78
在0个频道中
Get PRO
二月 '24
+119
在0个频道中
Get PRO
一月 '24
+109
在0个频道中
Get PRO
十二月 '23
+98
在0个频道中
Get PRO
十一月 '23
+102
在0个频道中
Get PRO
十月 '23
+86
在0个频道中
Get PRO
九月 '23
+71
在0个频道中
Get PRO
八月 '23
+55
在0个频道中
Get PRO
七月 '23
+55
在0个频道中
Get PRO
六月 '23
+45
在0个频道中
Get PRO
五月 '23
+54
在0个频道中
Get PRO
四月 '23
+38
在0个频道中
Get PRO
三月 '23
+50
在0个频道中
Get PRO
二月 '23
+49
在0个频道中
Get PRO
一月 '23
+64
在0个频道中
Get PRO
十二月 '22
+68
在0个频道中
Get PRO
十一月 '22
+57
在0个频道中
Get PRO
十月 '22
+115
在0个频道中
Get PRO
九月 '22
+120
在0个频道中
Get PRO
八月 '22
+405
在0个频道中
| 日期 | 订阅者增长 | 提及 | 频道 | |
| 09 四月 | 0 | |||
| 08 四月 | 0 | |||
| 07 四月 | 0 | |||
| 06 四月 | +2 | |||
| 05 四月 | +3 | |||
| 04 四月 | +1 | |||
| 03 四月 | 0 | |||
| 02 四月 | +1 | |||
| 01 四月 | +2 |
频道帖子
حل “الطلبات المتزامنة المكررة” في Local-First: Request Coalescing (Single-flight) ✅
المشهد معروف:
شاشة Product List تُرندر عدة منتجات في نفس اللحظة (Product A / B / C…)
وكلهم يحتاجون نفس الـ Reference Data مثل: Get Section #4.
بدون حل، كلهم يطلقون API Calls متطابقة قبل ما يكتمل أول طلب ويكتب للكاش.
🧠 الحل: SDK Request Coordinator (In-flight Map)
نضيف طبقة داخل الـ SDK تعمل كـ “مُنسّق طلبات”:
- تحتفظ بخريطة: Map<Key, Future>
- المفتاح = (Section#4)
- القيمة = Shared Future (طلب جاري)
كيف يعمل؟
1) أول طلب (Product A):
- لا يجد المفتاح في الـ In-flight Map
- ينشئ Shared Future
- ويرسل 1x API Request فقط
2) الطلبات التالية (Product B / C…):
- تجد Shared Future موجودة
- لا تُنشئ طلبات جديدة
- فقط “تنتظر” نفس الطلب الجاري (Await existing in-flight request)
📦 عند وصول النتيجة
- يتم كتابة البيانات إلى Local DB (Cache) ✔️
- يتم توزيع نفس النتيجة فوراً لكل عناصر UI المنتظرة (Fan-out) ✔️
📌 النتيجة
- 1x Optimized API Request بدل 20x Duplicate Requests
- Minimal Backend Load
- Fast & Consistent UX
- Cache يُملأ مرة واحدة ويُستخدم للجميع
🔎 مصطلحات مرتبطة
- Request Coalescing
- Single-flight Mechanism
- In-flight Deduplication
- Shared Future / Promise
- (وأحياناً يُستخدم كـ Lock per Key)
هل تطبّقون Single-flight في الـ SDK أو على مستوى Repository Layer؟
#API #MobileArchitecture #DistributedSystems
| 2 | حل “الطلبات المتزامنة المكررة” في Local-First: Request Coalescing (Single-flight) ✅
المشهد معروف:
شاشة Product List تُرندر عدة منتجات في نفس اللحظة (Product A / B / C…)
وكلهم يحتاجون نفس الـ Reference Data مثل: Get Section #4.
بدون حل، كلهم يطلقون API Calls متطابقة قبل ما يكتمل أول طلب ويكتب للكاش. | 501 |
| 3 | مشكلة شائعة في Local-First: “Race Condition” تسبّب رحلات API مكررة 🚨
تخيّل شاشة Product List تُرندر عدة عناصر في نفس اللحظة (Product A / B / C…).
كل منتج يحتاج نفس الـ Reference Data مثل: Section #4.
الـ SDK يعمل Local-First → يفحص Local DB (Cache) أولاً.
⚠️ أين المشكلة؟
لأن الطلبات متزامنة، الجميع يصلون للكاش قبل أن يكتب أول طلب النتيجة:
Local DB = MISS (Not Found Yet)
فيقوم كل منتج بإطلاق طلب شبكة مستقل لنفس البيانات…
فتتحول العملية إلى 20+ طلب متطابق قبل أن يكتمل الأول.
🔥 الأثر على الخلفية (Backend)
- High Concurrency Load
- Wasted Bandwidth
- Risk of Rate Limiting
- UX أبطأ بسبب ازدحام الشبكة
🧠 المصطلحات الشائعة
- Cache Stampede / Thundering Herd
- Race Condition (In Local-First Cache)
- Redundant API Calls (وأحياناً تُرى كـ N+1 / Over-fetching حسب السياق)
✅ كيف نعالجها عادة؟
- Single-Flight / In-Flight Deduplication: “طلب واحد لكل مفتاح” والبقية تنتظر نفس الـ Future/Promise
- Request Coalescing: تجميع الطلبات المتطابقة
- (اختياري) Prefetch/Batch للـ Reference Data عند تحميل المنتجات
هل واجهت هذا السيناريو في تطبيقك؟ وكيف تعاملت معه؟
الحل في المنشورات القادمة
#API #MobileArchitecture #DistributedSystems | 413 |
| 4 | مشكلة شائعة في Local-First: “Race Condition” تسبّب رحلات API مكررة 🚨 | 347 |
| 5 | حل مشكلة “الطلبات المكررة” في Reference Data بطريقة أبسط وأذكى داخل MyApp ✅
بدل ما الـ SDK يعيد جلب كل شيء عند انتهاء TTL أو عند تكرار فتح الشاشة، طبقنا 3 أفكار مع بعض:
1) Delta Sync (Incremental Updates)
كل مرة نطلب فقط التغييرات عبر:
?since=lastSentAt
يعني: “أعطني ما تغيّر منذ آخر مزامنة ناجحة” بدل Full Fetch.
2) Throttle Window (مثلاً 10 دقائق)
لو المستخدم أعاد فتح الشاشة أو كرر نفس الطلب خلال 10 دقائق:
لا نرسل API Call جديد → نكتفي بالمحلي.
وبعد انتهاء النافذة نسمح بطلب Delta جديد.
3) Stale-While-Revalidate (SWR)
نعرض البيانات المحلية فوراً (حتى لو قديمة قليلاً) ونحدّث بصمت في الخلفية.
النتيجة: تجربة أسرع بدون “فلاش” بيانات ناقصة.
📌 النتيجة النهائية:
Optimized Network ✅
Low Server Load ✅
Fast & Fluid UX ✅
Tiny Delta Payload بدل Massive Payload ✅
هل تستخدمون lastSyncAt / lastSentAt أو Delta Sync في مشاريعكم؟
#API #MobileArchitecture #DistributedSystems | 335 |
| 6 | هل صادفت شاشة منتجات “تفلاش” بيانات ناقصة… ثم تبدأ الطلبات تتكرر على الـ API بدون سبب؟
في MyApp واجهنا سيناريو شائع في Local-First داخل الـ SDK:
عند عرض Product List، كل منتج يحتاج Reference Data: Section / Unit / Manufacturer.
لكن عند انتهاء TTL تصبح البيانات Stale.
⚠️ المشكلة (The Blind Spot)
بدون سياق مزامنة مثل since أو lastSentAt، الـ SDK لا يعرف ما تغيّر فعلاً → يلجأ إلى Blind Full Fetch (Get All).
🔥 النتيجة
Redundant API Calls + High Server Load + Poor UX + نفس الداتا تُرسل مراراً.
✅ الحل
Delta/Incremental Sync + إرسال since = lastSentAt عند إعادة الطلب،
مع نافذة منع تكرار (10 دقائق) + (اختياري) Stale-While-Revalidate،
ومع ضغط UI العالي: Single-Flight / In-Flight Deduplication.
هل تستخدمون updatedSince / ETag / lastSyncAt في مشاريعكم؟
شرح الحل في المنشورات القادمة
#API #MobileArchitecture #DistributedSystems | 327 |
| 7 | .
بشكل مبسط و سهل , انفوجرافيك يشرح الفرق بين تعليمات الـ JOINS في لغة SQL
استبدل كلمة Full ب cross في بعض البيئات ك SQL server | 522 |
| 8 | ماذا تعني CRUD ؟
هي اختصار لأربع عمليات اساسية نستخدمها كثيرا عند برمجة نظام او تطبيق يتعامل مع البيانات وهي إنشاء وقراءة وتحديث وحذف وتستخدم كثيراَ مع قواعد البيانات , وتنفذ من خلال لغة الاستعلام SQL بواسطة هذه التعليمات INSERT و SELECT و UPDATE و DELETE . | 466 |
| 9 | ملخص جميل جدا لل SQL 😍 | 407 |
| 10 | 📍ملخص CheatSheet ل SQL
👨💻 احفظها عندك راح تحتاجها 👏 | 395 |
| 11 | شرح اوامر SQL DML.pdf | 386 |
| 12 | ملف بوربوينت يوضح التعاملات معا قاعدة البيانات بلغة SQL
ك الاضافة او التعديل او الحذف او العرض | 372 |
| 13 | فقرات تعليمة select | 362 |
| 14 | كتاب باللغة العربية لشرح اساسيات الجانب العملي في قواعد البيانات
هذا المنهج المستخدم في الجامعة للسنوات الماضية
وذلك لضعف مستوى الطلبة في اللغة الانجليزية
حيث كان سابقاً ( قبل ٤ سنوات ) بالانجليزي لكلا الجانبين النظري والعملي | 371 |
| 15 | ماهي SQL ؟ | 386 |
| 16 | اضافه فهرسة للمحتوى يسهل به التنقل
الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/ | 298 |
| 17 | رسم الجداول
الموقع الرسمي لتعلم markdown
https://www.markdownguide.org/ | 213 |
| 18 | رسم المخططات التسلسلية.
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit | 191 |
| 19 | يمكن ايضا رسم المخططات العلائقية للجداول
الموقع الرسمي لتعلم رسم المخططات
https://mermaid.js.org/intro/
اداة الرسم بالواجهات
https://mermaid.live/edit | 184 |
| 20 | 没有文字... | 184 |
