مقالات بوسم «التصميم»
قائمة بالمقالات الموسومة بـ «التصميم» (18 مقالة)، من الأحدث إلى الأقدم.
-
أفضل الممارسات العمليّة لتعدّد الخيوط: طبعة Java ── اصطلاحات عصر الخيوط الافتراضيّة
في Java، الممارسة الراسخة لتعدّد الخيوط هي ألّا تُنشئ الخيوط مباشرة بل تبني على ExecutorService والخيوط الافتراضيّة. يضع هذا المقال المبادئ العمليّة: الاختيا...
-
أفضل الممارسات العمليّة لتعدّد مؤشّرات الترابط: نسخة C++ ── إزالة الحوادث بالبنية عبر RAII وjthread
في C++، تعدّد مؤشّرات الترابط عالمٌ تصبح فيه سباقات البيانات سلوكاً غير معرَّف. يعالج المقال فخّ مدمِّر std::thread، وتصميم التوقّف بـ jthread وstop_token، و...
-
أفضل الممارسات العمليّة لتعدّد مؤشّرات الترابط: نسخة .NET ── ما تقرِّره قبل إضافة مؤشّرات ترابط
قواعد تصميم عمليّة تمنع شيفرة .NET/C# متعدّدة مؤشّرات الترابط من الانهيار أو التجمّد أحياناً: اركب على Task بدل إنشاء المؤشّرات بنفسك، قلِّل الحالة القابلة ل...
-
مدخل إلى ADR (سجلّ قرار العمارة) ── أقلّ وسيلة لتوثيق «لماذا اخترنا هذا التصميم» في التطوير الصغير
لا تخبرنا الشيفرة «لماذا اتُّخذ هذا القرار». نشرح كيفية توثيق أسباب قرارات التصميم عبر ADR (Architecture Decision Record) بصيغة Markdown بمعدّل قرار واحد لكل...
-
لكي لا تنسى تحديد «كم ثانية يجب أن يستغرق التشغيل حتى يكون مُرضياً» ── تنظيم المتطلبات غير الوظيفية باستخدام «درجة المتطلبات غير الوظيفية» الصادرة عن IPA
كثير من أسباب الخلاف حول «السرعة بطيئة» أو «التعامل مع الأعطال لم يكن متوقَّعاً» يعود إلى نسيان تحديد المتطلبات غير الوظيفية. نشرح للجانب الطالب بلغة واضحة ا...
-
متى لا يُفضَّل تحويل تطبيق Windows إلى الويب: جدول القرار وحل «التقسيم» الواقعي
تتزايد الطلبات على تحويل تطبيقات Windows الداخلية إلى الويب، لكن في التطبيقات التي تعتمد على التكامل مع الأجهزة، ومعالجة الملفات المحلية، والعمل دون اتصال، و...
-
كيف تفهم عزل الجلسات في Windows — Session 0 وRDP وتشغيل عدة مستخدمين في وقت واحد
يوضح هذا المقال مفهوم «الجلسة» (session) في Windows، وهو موضوع يسبب ارتباكًا مستمرًا لمطوري تطبيقات Windows. يتناول المقال سبب وجود عزل Session 0 (ولماذا لا ...
-
كيف تختار وسيلة الاتّصال بين عمليّات Windows ── جدول قرار للأنابيب المسمّاة / TCP / gRPC / الذاكرة المشتركة / COM
كيف تختار وسيلة التواصل بين تطبيقات Windows؟ ننظّم في جدول قرار مجالات تفوّق ومطبّات الأنابيب المسمّاة، وTCP المحليّ، وgRPC، والذاكرة المشتركة، وتكامل الملفّ...
-
كيف تختار مكان حفظ بيانات تطبيق Windows محليّاً ── جدول قرار بين SQLite وJSON وRegistry وAccess
أين ينبغي حفظ بيانات تطبيق سطح مكتب Windows، وبأيّ صيغة؟ نرتّب الفرق بين AppData وProgramData، ونقاط قوّة وعيوب كلّ من SQLite وملفّات JSON وRegistry وAccess ...
-
أين يجب التقاط الاستثناءات وتسجيلها ومعالجة الأخطاء - دليل عمليّ للحدود والمسؤوليّات في تسلسل الاستدعاء
دليل عمليّ يساعدك على تحديد مستوى تسلسل الاستدعاء الذي يجب فيه التقاط الاستثناء وكتابة السجلّ وتحويل الإخفاق إلى قرار، مع أمثلة C# وقائمة فحص للمراجعة.
-
قائمة تحقّق للحدّ الأدنى من الأمان في تطوير تطبيقات Windows
قائمة تحقّق عمليّة لخطّ الأساس الأمنيّ في تطبيقات Windows: حدود الصلاحيّات، توقيع التوزيع، حماية الأسرار، HTTPS، تحميل DLL، logging، وتحديث التبعيّات قبل الإ...
-
ما هو .NET Generic Host - شرح DI والإعدادات والـ logging و BackgroundService
مقدمة عمليّة إلى .NET Generic Host وكيف يجمع DI والإعدادات والـ logging و BackgroundService في تطبيقات console و worker، مع متى يفيد فعلاً ومتى يكون استخداما...
-
ما هو Native AOT في .NET - الفروق عن JIT و ReadyToRun و trimming
شرح Native AOT في .NET كنموذج نشر يقدّم الترجمة الأصليّة، مع الفروق عن JIT و ReadyToRun و trimming، والأنسب أن يكون أدوات CLI و workers و APIs صغيرة بدل WPF ...
-
كيفيّة استخدام FileSystemWatcher بأمان - الأحداث المفقودة والإشعارات المكرّرة وفخاخ كشف الاكتمال
دليل عمليّ يشرح لماذا ينبغي اعتبار FileSystemWatcher مجرّد محفّز للمسح وليس إشارة اكتمال، ويقدّم أنماط المطالبة الذرّيّة و idempotency.
-
أفضل الممارسات لـ C# async/await - جدول قرار لـ Task.Run و ConfigureAwait
دليل عمليّ لـ async/await في C# يبدأ بفصل عمل I/O-bound عن CPU-bound، ثمّ يقدّم جداول قرار حول Task.Run و WhenAll و ConfigureAwait و fire-and-forget لتختار ا...
-
دليل عملي إلى soft real-time على Windows - قائمة فحص لخفض latency
دليل عمليّ مكثّف لبناء تطبيقات soft real-time على Windows العاديّ، يقدّم قائمة فحص لاستراتيجيّة الانتظار، الأولويّات، الـ timers، إعدادات الطاقة، والقياس لخف...
-
التحكّم الآمن في تزامن تكامل الملفّات - أفضل الممارسات لـ file lock والمطالبة الذرّيّة والمعالجة idempotent
دليل مكثَّف لتزامن تكامل الملفّات: file lock، المطالبة الذرّيّة، نشر temp -> rename، ملفّات done، lease-based locks، و idempotency لتفادي السباقات والقراءات ...
-
ما هو HCP chart - كيفية استخدام MakingHCPChartSkill لتحويل HCP-DSL إلى SVG حتمي
تعرّف على HCP chart ثم اتبع جولة عملية لاستخدام MakingHCPChartSkill في تحويل HCP-DSL إلى SVG حتمي مع شرح بنية المستودع وقراءة المخرجات.