Saud | سعود الانصاري
Saud | سعود الانصاري

@Alansaricodez

11 تغريدة Mar 03, 2023
♦️ما هي البرمجة الوظيفية functional programming ؟
البرمجة الوظيفية هي طريقة لكتابة التطبيقات باستخدام دالّات functions تتجنب مشاركة البيانات والحالة القابلة للتغيير
إنه مفهوم أساسي في JavaScript، عند الحديث عن JavaScript وظيفي ، يجب أن تتبادر إلى الذهن 4 مفاهيم رئيسية:
١- دالّات خالصة pure functions:
الدالات التي ترجع نفس المخرجات مع الأخذ بعين الاعتبار إدخال محدد
٢- الدوال الترتيب الأعلى higher-order functions:
الدالات التي تتلقى دالة أخرى كمعامل أو لها وظيفة كقيمة إرجاع
٣- تجنب الآثار الجانبية:
الآثار الجانبية هي الطفرات أو الإجراءات التي تحدث في التعليمات البرمجية الخاصة بنا ولا يمكننا وضعها في الاعتبار أو التنبؤ بها
٤- كائنات من الدرجة الأولى first-class objects:
دالّات JavaScript هي كائنات في الواقع ، مما يعني أنه يمكننا العمل معها مثل المتغير:
تعيينها إلى متغير، وتمريرها كمتغيرات، وإعادتها، وتضمينها في هياكل بيانات مختلفة
♦️ ما هو ربط البيانات ثنائي الاتجاه وتدفق البيانات أحادي الاتجاه، وكيف هم مختلفون؟
- ربط البيانات بطريقة one-way binding:
النموذج (المثال الذي يحتفظ بالبيانات) هو المصدر الوحيد للحقيقة
عندما تتغير البيانات في أحد المكونات، سيتم تحديث واجهة المستخدم بالبيانات الجديدة
ولكن إذا تغيرت البيانات في Ul ، فلن يتم تحديث النموذج، تُعرف React بربط البيانات أحادي الاتجاه
- اتجاهين لربط البيانات بطريقة two-way data binding:
في هذه الحالة تتدفق البيانات في كلا الاتجاهين ، فهذا يعني أن أي تغيير يحدث في طريقة العرض سيؤدي إلى تحديث بيانات المكون
وأي تغيير يحدث داخل المكون سيؤدي إلى تحديث العرض، Angular هو إطار عمل شائع يستخدم ربط البيانات ثنائي الاتجاه
♦️ما هو الإغلاق closure في JavaScript؟
أبسط تعريف يقول أن الإغلاق هو:
عندما يكون للدالة الداخلية دائمًا وصول إلى متغيرات variables ومعلمات attributes دالّتها الخارجية ، حتى بعد عودة الوظيفة الخارجية
مثال بسيط يمكن تقديمه هو هذا:
♦️ لماذا تعتبر البرمجة غير المتزامنة asynchronous programming مهمة في JavaScript؟
تعني البرمجة المتزامنة أن الكود يتم تنفيذه في تسلسل من أعلى إلى أسفل ويتم حظره بواسطة مهام طويلة المدى مثل طلبات HTTP
تعمل البرمجة غير المتزامنة على إصلاح هذه المشكلة عن طريق تقديم حلقة الحدث
يمكن تشغيل الطلبات في الخلفية دون حظر بقية التعليمات البرمجية وواجهة المستخدم فعليًا
تعد الواجهات غير متزامنة بطبيعتها، ولديها العديد من المهام التي يتعين القيام بها بشكل متزامن، لذا فإن الكود غير المتزامن مناسب تمامًا لبناء وظائف ديناميكية غير معطلة
إنه مفيد لكتابة كود أنيق وقوي وزيادة تجربة المستخدم
هل تعلمت شيء جديد؟ لا تنس اعادة التغريد حتى يستفيد الجميع 🙏🏼

جاري تحميل الاقتراحات...