نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

التوجيه (Routing) في Laravel

التوجيه الأساسي تقبل أغلب مسارات Laravel الأساسيّة مُتغّيرين: رابط URI  و نطاق مغلق Closure مما يُوفّر طريقة بسيطة ومعبّرة جدّا لتعريف المسارات (routes): Route::get('foo', function () { return 'Hello World'; }); ملفات المسار الإفتراضيّة كل مسارات Laravel مُعرّفة في ملفات مساراتك الموجودة في المجلّد routes. يُحمّل إطار العمل كل هذه الملفّات تلقائيًا. يعرّف الملف routes/web.php كل المسارات المُخصّصة لواجهة الويب. مجموعة البرمجيّات الوسيطة web معيّنة على كل المسارات وتوفّر خاصيّات مثل حالة الجلسة (session state) والحماية CSRF. المسارات ...

القوائم المنسدلة Dropdowns في إطار العمل Bootstrap

أظهر تراكيب سياقيّة لعرض قوائم روابط أو غيرها من العناصر باستخدام مُلحَق القوائم المنسدلة Dropdowns في إطار العمل Bootstrap. نظرة عامّة القوائم المنسدلة هي تراكيب سياقيّة يمكن التبديل بينها لعرض قوائم روابط أو عناصر أخرى. يعمل مُلحَق JavaScript الخاصّ بالقوائم المنسدلة المُضمَّن في إطار العمل Bootstrap على جعل القوائم تفاعليّة. يُبدَّل بين عناصر القائمة بالنقر وليس بالحومان؛ اختير هذا السلوك في التصميم على نحوٍ واع. تُبنَى القوائم المنسدلة على مكتبة Popper.js التي توفّر تموضعًا ديناميكيًّا للعناصر واكتشاف إطار العرض Viewport. ...

الدالة radial-gradient()‎

الدالة radial-gradient()‎ في CSS ستُنشِئ تدرجًا لونيًا بين لونين أو أكثر على شكل أشعة تبدأ من المبدأ، ويمكن أن يكون شكلها دائريًا أو على شكل قطع ناقص، والنتيجة هي كائن من نوع البيانات <gradient> الذي هو نوعٌ خاصٌ من <image>. /* تدرج لوني يبدأ من مركز العنصر يبدأ باللون الأحمر ثم يتحول إلى أزرق ثم ينتهي بالأخضر */ radial-gradient(circle at center, red 0, blue, green 100%) لا تملك التدرجات اللونية في CSS أبعادًا فعليةً، أي ليس لها قياس مُحدَّد ولا ...

الخاصية float

الخاصية float في CSS تُحدِّد أنَّ العنصر يجب أن يوضع على يسار أو يمين الحاوية التي ينتمي إليها، مما يسمح للنص والعناصر السطرية بالالتفاف حول العنصر، وسيُزال هذا العنصر من الهيكل التنظيمي (flow) العادي للصفحة، لكنه سوف يبقى جزءًا منه (على عكس العناصر ذات الموضع المطلق [absolute]). بطاقة الخاصية القيمة الابتدائية none تُطبَّق على جميع العناصر، لكن لن يكون لهذه الخاصية أثر إن كانت قيمة الخاصية display تساوي none. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. ولمّا ...

Python/Examples

هذه الصفحة هي تجميع منظم ومرتب لأمثلة بلغة بايثون الاستثناءات تحتوي هذه الفقرة على أمثلة يصدر فيها استثناءات. الاستثناء FileNotFoundError تُصدره بعض التوابع القارئة للملفات عند عدم وجود الملف >>> f=open('D:\\file.txt') Traceback (most recent call last): File "<pyshell#123>", line 1, in <module> f=open('D:\\file.txt') FileNotFoundError: [Errno 2] No such file or directory: 'D:\\file.txt' الاستثناء KeyError  يصدر عند محاولة الوصول إلى عنصر عن طريق مفتاح غير موجود في القاموس >>> a=dict() >>> a["test"]="good" >>> print(a["no key"]) Traceback ...

التنقل بين العناصر في jQuery

تتيح التوابع في هذا القسم بتحديد عناصر موجودة في موضع محدد والتنقل بينها. ‎.add()‎ إنشاء كائن jQuery جديد من العناصر المضافة إلى مجموعة من العناصر المطابقة. ‎.addBack()‎ يُضيف هذا التّابع مجموعة العناصر الموجودة سابقًا في المَكْدَس (stack) إلى المجموعة الحاليّة، مع إمكانيّة ترشيحها بشكل اختياري عن طريق مُحدِّد (selector). ‎.andSelf()‎ يُضيف هذا التّابع مجموعة العناصر الموجودة سابقًا في المَكدَس (stack) إلى المجموعة الحاليّة. ‎.children()‎ يحصل هذا التّابع على العناصر الأبناء لكل عنصر من مجموعة العناصر المُطابِقة. ‎.closest()‎ يحصل هذا التّابع ...

الخاصية background-attachment

الخاصية background-attachment في CSS تُحدِّد إذا كان موضع الصورة (المُحدَّدة عبر الخاصية background-image) ثابتًا (fixed) ضمن إطار العرض (viewport) أو كان سيُمرَّر عند التمرير في العنصر (أو الصفحة) الحاوي له. بطاقة الخاصية القيمة الابتدائية scroll تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة كالقيمة المُحدَّدة. /* كلمات مفتاحية */ background-attachment: scroll; background-attachment: fixed; background-attachment: local; /* القيم العامة */ background-attachment: inherit; background-attachment: initial; background-attachment: unset; أمثلة مثال بسيط عن استخدام الخاصية background-attachment لجعل موضع صورة الخلفية (المُحدَّدة عبر الخاصية background-image) ثابتًا. شيفرة HTML: ...

الدوال من المرتبة الأعلى (Higher-Order Functions) و Lambdas

الدوال من المرتبة الأعلى (Higher-Order Functions) وهي الدوال التي تقبل دوالًا أخرى كمعاملاتٍ (parameters) لها، أو تلك التي تُعيد (return) دوالًا أخرى كنتيجة لها، وكمثالٍ عنها لنأخذ الدالة lock()‎، وهي الدالة التي تقبل كائنًا lock ودالةً أخرى، حيث ستحصلُ الدالة على الكائن lock وتُنفِّذُ الدالةَ الوسيطةَ ثم تُحرِّر القفل في النهاية، كما في الشيفرة: fun <T> lock(lock: Lock, body: () -> T): T { lock.lock() try { ...

الخاصية flex

الخاصية flex المختصرة في CSS تُحدِّد كيف سيتمدد أو يتقلص أحد عناصر flex لكي يملأ المساحة المتوافرة في حاوية flex. هذه الخاصية المختصرة تضبط الخاصيات flex-grow و flex-shrink و flex-basis. بطاقة الخاصية القيمة الابتدائية لكل قيمة مختصرة: flex-grow: 0 flex-shrink: 1 flex-basis: auto تُطبَّق على عناصر flex. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة لكل قيمة مختصرة: flex-grow: كما حُدِّدَت. flex-shrink: كما حُدِّدَت. flex-basis: كما حُدِّدَت، لكن مع تحويل الأطوال النسبية إلى مطلقة. /* القيم الأساسية */ flex: auto; flex: initial; flex: none; flex: 2; /* One ...

الخاصية text-emphasis-style

الخاصية text-decoration-style في CSS تُحدِّد نوع علامة التوكيد (emphasis mark) المستخدمة على كل محرف نصي في العنصر باستثناء الفراغات ومحارف التحكم (control chars، مثل محرف السطر الجديد، ومحرف العودة إلى بداية السطر)؛ يمكن ضبط قيمة هذه الخاصية باستعمال الخاصية المختصرة text-emphasis. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك لا الوسائط مرئية القيمة المحسوبة كما حُدِّدَت. /* القيمة الابتدائية */ text-emphasis: none; /* <string> سلاسل نصية */ text-emphasis-style: 'x'; text-emphasis-style: '点'; text-emphasis-style: '\25B2'; text-emphasis-style: '*'; text-emphasis-style: 'foo'; /* لا تستخدم هذه القيمة، ...

الخاصية margin

الخاصية margin المختصرة في CSS تضبط الهوامش في الأطراف الأربعة للعنصر، ويمكن استخدام هذه الخاصية بدلًا من ضبط الهوامش فرادى باستخدام margin-top و margin-right و margin-bottom و margin-left. بطاقة الخاصية القيمة الابتدائية لكل خاصية مختصرة: margin-bottom: 0 margin-left: 0 margin-right: 0 margin-top: 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* تطبيق الهوامش على الأطراف ...

المعاملات الافتراضية للدوال في JavaScript

معاملات الدالة الافتراضية (default function parameters) تسمح بتهيئة معاملات الدالة مع قيم افتراضية إن لم تُمرَّر لها قيمة أثناء استدعاء الدالة أو كانت القيمة المُمرَّرة هي undefined. البنية العامة function [name]([param1[ = defaultValue1 ][, ..., paramN[ = defaultValueN ]]]) { statements } الوصف تكون قيمة المعاملات الافتراضية في JavaScript هي undefined، لكن في بعض الحالات يكون من المفيد ضبط قيمة تلك المعاملات إلى قيمةٍ أخرى، وهنا تلعب المعاملات الافتراضية دورها. في الماضي كانت الاستراتيجية العامة المتبعة لضبط قيم افتراضية ...

تعريف التوابع الدخيلة (Introduce Foreign Methods)

المشكلة الحاجة إلى تابعٍ غير موجودٍ في الصنف المساعد (utility class) ومن غير الممكن إضافته إلى ذلك الصنف. الحل إضافة التابع المطلوب إلى صنف العميل (client class) وتمرير كائنٍ (object) من الصنف المساعد إليه كوسيط (argument). مثال قبل إعادة التصميم يحتوي الصنف Report تابعًا باسم sendReport والذي يستخدم الصنف المساعد Date لإنشاء تاريخ اليوم التالي عبر إضافة القيمة 1 إلى اليوم الحالي، كما يلي: في لغة Java: class Report { //... void sendReport() { Date ...

أصناف البيانات (Data Classes) في لغة Kotlin

تُنشَأ بعض الأصناف بهدف تخزين البيانات فيها بشكلٍ أساسيّ، وبالتالي فإنّ كلّ ما تقوم به هذه الأصناف من وظائف يرتبط بالبيانات، وهذا ما يُسمى بأصناف البيانات في لغة Kotlin وتُعرَّف بالمُحدِّد data كما يلي: data class User(val name: String, val age: Int) قواعد عامّة يقوم المُترجِم في الأصناف من هذه النوع باشتقاق العناصر (deriving members) الآتية من كلِّ الخاصّيّات المُعرَّفة في الباني الأساسيّ (primary constructor): كلًا من equals()‎ و hashCode()‎ الدالة toString()‎ بشكلها ‎"User(name=John, age=42‎)‎"‎ الدوال بالصيغة componentN() functions بما ...

الوحدة lzma في بايثون

تقدّم هذه الوحدة مجموعة من الأصناف والدوال المساعدة لإجراء عمليات ضغط البيانات وفك الضغط عنها باستخدام خوارزمية الضغط LZMA. وتتضمّن هذه الوحدة كذلك واجهة للتعامل مع الملفات ذات الامتداد ‎.xz و ‎.lzma المستخدمة بواسطة الأداة xz، إضافة إلى التعامل مع البيانات المضغوطة الخام. تقدّم هذه الوحدة واجهة مشابهة إلى حد كبير للواجهة المقدّمة في الوحدة bz2، ولكن يجب الانتباه إلى أنّ الصنف LZMAFile -وعلى عكس الصنف bz2.BZ2File- لا تتمتع بسلامة الخيوط not thread-safe؛ لذا إن احتجت إلى استخدام نسخة واحدة ...

المكتبة Active Record في ريلز

إنَّ Active Record هو مكتبة تربط أصنافًا بجداول قاعدة بيانات علائقية لتأسيس طبقة ثابتة لا تحتاج إلى ضبط للتطبيقات. توفر المكتبة صنفًا أساسيًّا يضبط - عند تفريع أصناف منه - العلاقة الرابطة بين الصنف الجديد وجدول موجود مسبقًا في قاعدة البيانات. في سياق أي تطبيق، يشار إلى هذه الأصناف عادةً على أنها «نماذج» (models). يمكن ربط النماذج Models أيضًا بنماذج أخرى عبر تعريف ارتباطات. يعتمد Active Record كل الاعتماد على التسمية، إذ يستعمل أسماء الصنف والارتباط لتأسيس علاقة رابطة (mapping) ...

تبديل التابع إلى كائن التابع (Replace Method with Method Object)

المشكلة وجود تابعٍ طويلٍ بالكثير من المتغيِّرات المحليّة (local variables) المتداخلة والتي تحول دون تطبيق تقنية الحل باستخراج التابع (extract method). الحل نقل التابع إلى صنفٍ (class) مستقلٍ بحيث تصبح متغيِّراته المحليّة حقولًا (fields) لهذا الصنف، وتقسيم التابع بعد ذلك إلى عدّة توابع أصغر في الصنف ذاته. مثال قبل إعادة التصميم نلاحظ وجود العديد من المتغيِّرات المحليّة في التابع price()‎ بالإضافة إلى عملياتٍ أخرى قد تكون طويلةً ومعقَّدة: في لغة Java: class Order { //... public double price() ...

التعامل مع نظام الملفات في Node.js

الاستقرار: 2 - مستقر توفِّر الوحدة fs‎ واجهةً برمجيةً للتعامل مع نظام الملفات بطريقة قريبة جدًا من دوال POSIX القياسية. يمكن الوصول إلى هذه الوحدة باستعمال الأمر التالي: const fs = require('fs'); جميع عمليات نظام الملفات لها أشكال متزامنة وغير متزامنة. تأخذ الأشكال المتزامنة دالة رد نداء مكملة دومًا وتُمرَّر إليها كآخر وسيط. تعتمد الوسائط المُمرَّرة إلى دالة رد النداء المكملة تلك على التابع نفسه، ولكن الوسيط الأول فيها محجوزٌ دومًا للاستثناء. إن اكتملت العملية بنجاح، فستكون قيمة هذا الوسيط null‎ ...

الخاصية align-items

الخاصية align-items في CSS تُعرِّف طريقة توزيع المتصفح للمسافة بين العناصر وحولها على امتداد المحور الثانوي من حاوية flex. فهي تعمل كالخاصية justify-content لكن في الاتجاه المعامد. بطاقة الخاصية القيمة الابتدائية stretch تُطبَّق على حاويات flex. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* الكلمات المحجوزة الأساسية */ align-items: normal; align-items: stretch; /* المحاذاة المكانية */ align-items: center; align-items: start; align-items: end; align-items: flex-start; align-items: flex-end; align-items: self-start; align-items: self-end; align-items: left; align-items: right; /* محاذاة خط الأساس */ align-items: baseline; align-items: first baseline; align-items: ...

CSS/Topics/Text

الخاصية الوصف direction تضبط اتجاه النص، ونستخدم القيمة rtl معها للإشارة إلى اللغات التي تُكتَب من اليمين إلى اليسار مثل اللغة العربية، و ltr للغات التي تُكتَب من اليسار إلى اليمين مثل اللغة الإنكليزية. لاحظ أنَّ اتجاه النص يُعرَّف عادةً باستخدام الخاصية dir على عنصر <html> لكامل المستند، وليس باستخدام الخاصية direction. letter-spacing تُحدِّد ما هو التباعد بين الأحرف النصية. line-break تُحدِّد سلوك المتصفح في الانتقال إلى سطرٍ جديد عند التعامل مع علامات الترقيم والرموز. overflow-wrap تُحدِّد إذا كان على المتصفح الانتقال إلى سطر جديد ضمن الكلمات نفسها لمنع ...

CSS/Topics/Text

الخاصية الوصف direction تضبط اتجاه النص، ونستخدم القيمة rtl معها للإشارة إلى اللغات التي تُكتَب من اليمين إلى اليسار مثل اللغة العربية، و ltr للغات التي تُكتَب من اليسار إلى اليمين مثل اللغة الإنكليزية. لاحظ أنَّ اتجاه النص يُعرَّف عادةً باستخدام الخاصية dir على عنصر <html> لكامل المستند، وليس باستخدام الخاصية direction. letter-spacing تُحدِّد ما هو التباعد بين الأحرف النصية. line-break تُحدِّد سلوك المتصفح في الانتقال إلى سطرٍ جديد عند التعامل مع علامات الترقيم والرموز. overflow-wrap تُحدِّد إذا كان على المتصفح الانتقال إلى سطر جديد ضمن الكلمات نفسها لمنع ...

الأنواع المُعمَّمة في TypeScript

مقدمة بناء مكونات ذات واجهات برمجية متناسقة وثابتة من أسس هندسة البرمجيات، وجعل هذه المكونات قابلةً لإعادة الاستعمال من أحد أكبر أسُسِها كذلك. المكونات التي يُمكنها العمل مع بيانات اليوم كما بيانات المُستقبل ستُعطي إمكانيات مرنةً جدًّا لبناء نظم برمجيات كبيرة. الأنواع المُعمّمة (generics) من الأدوات الرئيسية التي تُساعد على بناء مكوّنات قابلة لإعادة الاستعمال في لغات مثل C#‎ وJava، إذ تُعطي القُدرة على إنشاء مكوّنات يُمكن لها العمل مع عدّة أنواعٍ من البيانات عوضًا عن نوع واحد فقط. ما ...

أنواع البيانات (Data Types) في Kotlin

إن كلَّ عنصرٍ في Kotlin يعد كائنًا إذ يمكن استدعاء الدوال (member functions) والخاصّيّات (properties) عبر أي متغيِّر (variable)، ولبعض الأنواع تمثيلها الداخلي الخاص بها؛ فعلى سبيل المثال تُمثَّل الأعداد والمحارف والقيم المنطقية (boolean) كقيمٍ أساسيّةٍ أثناء التشغيل (runtime) ولكنها بالنسبة للمستخدم مجرّد أصنافٍ عادية، وتناقش هذه الصفحة الأنواع الرئيسيّة للبيانات في Kotlin وهي: الأعداد، والمحارف، والقيم المنطقية (boolean)، والمصفوفات، والسلاسل النصيّة. الأعداد (Numbers) تتعامل لغة Kotlin مع البيانات العدديّة بطريقةٍ مماثلةٍ للغة Java ولكن بفوارق بسيطة، فلا تدعم مثلًا ...

الخاصية clear

الخاصية clear في CSS تُحدِّد إذا كان العنصر يمكن أن يكون بجوار العناصر العائمة (floating elements) المجاورة له أو يجب أن يُحرَّك إلى الأسفل (يسمى هذا الفعل بالمصطلح clear)؛ يمكن تطبيق هذه الخاصية على العناصر العائمة وغير العائمة على حدٍ سواء. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على العناصر الكتلية (block-level elements). قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* الكلمات المحجوزة */ clear: none; clear: left; clear: right; clear: both; clear: inline-start; clear: inline-end; /* القيم العامة */ clear: inherit; clear: initial; clear: unset; عند تطبيق هذه ...

الخاصية align-content

الخاصية align-content في CSS تُعرِّف طريقة توزيع المتصفح للمسافة بين العناصر وحولها على امتداد المحور الثانوي من حاوية flex. بطاقة الخاصية القيمة الابتدائية stretch تُطبَّق على حاويات flex التي تُعرَض فيها العناصر على أكثر من سطر. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* المحاذاة المكانية */ align-content: center; align-content: start; align-content: end; align-content: flex-start; align-content: flex-end; align-content: left; align-content: right; /* محاذاة خط الأساس */ align-content: baseline; align-content: first baseline; align-content: last baseline; /* توزيع المسافات */ align-content: space-between; align-content: space-around; align-content: space-evenly; align-content: stretch; /* التحكم بالفائض من المحتوى */ align-content: safe ...

الصنف Numeric في روبي

الصنف Numeric هو الصنف الذي يجب أن ترثه كل الأصناف العددية عالية المستوى. يسمح الصنف Numeric بتمثيل (instantiation) الكائنات المحجوزة في الكومة (heap-allocated objects). تُنفَّذ الأصناف العددية الأساسية الأخرى، مثل Integer، كأصناف آنيَّة، أي أنّ كل عدد صحيح هو كائن غير قابل للتغيير (immutable)، والذي يُمرَّر دائمًا بقيمته. اطلع على المثال التالي: a = 1 1.object_id == a.object_id #=> true لا يمكن أن يكون هناك إلا نسخة (instance) واحدة فقط من العدد الصحيح 1. تضمن روبي بهذا منع إنشاء نسخ ...

الخاصية box-sizing

الخاصية box-sizing في CSS تُستخدم لتعديل النموذج الصندوقي الافتراضي في CSS (أي CSS box model) المستخدم لحساب عرض وارتفاع العناصر. بطاقة الخاصية القيمة الابتدائية content-box تُطبَّق على جميع العناصر التي يمكن تحديد قيمة للخاصية width و height فيها. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* الكلمات المحجوزة */ box-sizing: content-box; box-sizing: border-box; /* القيم العامة */ box-sizing: inherit; box-sizing: initial; box-sizing: unset; يُطبَّق العرض والارتفاع -افتراضيًا- على صندوق المحتوى (content box) التابع للعنصر، وإذا كان للعنصر إطار (border) أو حاشية (padding) فستُضاف إلى ...

الدوال في JavaScript

على وجه العموم، الدالة هي «برنامجٌ فرعي» (subprogram) الذي يمكن استدعاؤه من شيفرة خارجية (أو داخلية، في حال أردنا استدعاء الدالة تعاوديًا [recursively])؛ وتحتوي الدالة على سلسلةٍ من التعابير البرمجية التي تسمى «جسم الدالة»، ويمكن تمرير قيم إلى الدالة، وتستطيع الدالة أن تعيد قيمةً ما. تُعدّ الدوال في JavaScript على أنَّها كائنات من الصنف الأول (first-class objects)، لأنها تملك خاصيات ودوال مثل بقية الكائنات، لكن ما يميّزها عن بقية الكائنات هو إمكانية استدعائها، إذ إنَّها كائنات من النوع Function. الوصف ...

الدوال المباشرة (Inline Functions) في لغة Kotlin

الدوال المباشرة (Inline Functions) ينتُج عن استخدام الدوال من المرتبة الأعلى (higher-order functions) بعض التأثيرات السلبيّة أثناء التنفيذ (runtime)، إذ تُعدُّ كل دالة كائنًا (object) ضمن نطاقٍ مغلقٍ (closure) يشمل المتغيِّرات التي يمكن الوصول إليها في بُنية الدالة، كما ويتطلَّب ذلك تكلفةً إضافيّةً عند تخصيص جزءٍ من الذاكرة (لكلٍ من كائنات الدوال والأصناف [classes]) وعند الاستدعاءات الوهمية (virtual calls) أثناء التنفيذ. وقد يُحدُّ من هذه المشاكل باللجوء إلى تعابير lambda المباشرة، إذ تُعدُّ الدالة lock()‎ مثالًا جيدًا لمثل هذه الحالات التي ...

افعل ولا تفعل في TypeScript

الأنواع العامة ‎Number‎، و‎String‎، و‎Boolean‎، و‎Object‎ لا تستعمل أبدًا الأنواع ‎Number‎، و‎String‎، و‎Boolean‎، و‎Object‎. هذه الأنواع تشير إلى الكائنات غير الأوليّة المحاطة (non-primitive boxed objects) التي لا تُستعمَل في أغلب الأحيان بطريقة صحيحة في شيفرة JavaScript: /* خطأ */ function reverse(s: String): String; استعمل بدلًا منها الأنواع ‎number‎، و‎string‎، و‎boolean‎: /* صحيح */ function reverse(s: string): string; استعمل النوع غير الأولي ‎object‎ (الذي أُضِيفَ في TypeScript 2.2) عوضًا عن النوع ‎Object‎. الأنواع المعممة (Generics) لا تُعرِّف أبدًا نوعًا معمّمًا لا يستخدم معامل ...

مدخل إلى TypeScript

يُشار إلى TypeScript على أنّها مجموعة عليا (superset) من JavaScript وتُترجم (compile) إليها. وهذا يعني بأن البرامج المكتوبة بلغة JavaScript هي برامج TypeScript صالحة كذلك، ولأنّها تُترجم إلى لغة JavaScript عاديّة، فيُمكن كتابة برامج بلغة TypeScript وترجمتها وتشغيلها في أي مكان يقبل تشغيل برمجيات JavaScript مثل المتصفّح، أو منصّة Node.js، أو أي مُحرّكٍ (engine) يدعم الإصدار ECMAScript 3 من لغة JavaScript أو أي إصدار أحدث منه. تدعم TypeScript مزايا JavaScript الجديدة والتي قيد التطوير، ما يشمل مزايا الإصدار ECMAScript 2015 ...

الخاصية background-size

الخاصية background-clip في CSS تُحدِّد أبعاد صورة الخلفية للعنصر؛ ويمكن أن تُترَك الأبعاد الابتدائية للصورة، أو تُغيّر إلى أبعاد جديدة، أو يمكن ملء المساحة المتوافرة بها مع الحفاظ على نسبة الأبعاد. لاحظ أنَّ الفراغات التي لا تغطى من صورة الخلفية ستُملأ بقيمة الخاصية background-color، ويجدر بالذكر أنَّ من الممكن مشاهدة لون الخلفية إذا كانت صورة الخلفية تحتوي على شفافية. بطاقة الخاصية القيمة الابتدائية auto auto تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك نعم النسب المئوية تكون نسبةً لمساحة ...

المزخرفات في TypeScript

مقدمة مع إضافة الأصناف إلى TypeScript ونسخة ES6، فقد ظهرت كذلك حاجةٌ إلى ميزات إضافية لدعم تعديل الأصناف وعناصر الأصناف أو توصيفها (annotating). توفّر المزخرفات (Decorators) طريقة لإضافة توصيفات وبنية برمجة وصفيّة (meta-programming) لتصريحات الأصناف وعناصرها. المزخرفات حاليًّا اقتراح في المرحلة 2 (stage 2 proposal) في JavaScript وهي متوفّرة كميّزة تجريبيّة في TypeScript. ملاحظة: المزخرفات ميّزة تجريبيّة قد تتغيّر في النسخ الجديدة مستقبلًا. لتفعيل الدعم التجريبي للمزخرفات، عليك تفعيل خيار المترجم ‎experimentalDecorators‎ إما على سطر الأوامر أو في ملفّ ‎tsconfig.json‎ ...

معاملات الدوال

يمكن تعريف الدوال مع عدد غير محدّد من المعاملات، وهناك ثلاث صيغ للمعاملات يمكن استخدامها معًا في نفس الوقت. المعاملات ذات القيم الافتراضية يمكن تحديد قيمة افتراضية للمعامل عند تعريفه، وبهذا يمكن استدعاء الدالة مع عدد أقلّ من المعاملات المعرّفة، فعلى سبيل المثال: def ask_ok(prompt, retries=4, reminder='Please try again!'): while True: ok = input(prompt) if ok in ('y', 'ye', 'yes'): ...

الصنف Float في روبي

تمثِّل كائنات الصنف Float أعدادًا حقيقيةً غير دقيقة (inexact real numbers) باستخدام التمثيل العشري ذي الدقة المضاعفة للبنية الأصلية. للمنازل العشرية حساب مختلف وهو عدد غير دقيق، لذا يجب معرفة نظامها الخاص. نقترخ عليك الاطلاع على الصفحات التالية: ما هي الأشياء التي يجب أن يعرفها كل عالم حاسوب عن الأعداد العشرية. لماذا الأعداد العشرية في روبي غير دقيقة؟ مشاكل في الدقة. الثوابت DIG الحد الأدنى لعدد الأرقام العشرية ذات الدلالة في المنازل العشرية المزدوجة الدقة. وعادةً ما تكون قيمته الافتراضية ...

isNaN()‎

الدالة isNaN()‎ تُحدِّد فيما إذا كانت القيمة المُمرَّرة إليها هي NaN أم لا. لاحظ أنَّ تحويل القيم داخل الدالة isNaN()‎ له قواعد مثيرة للاهتمام؛ لذا يمكنك استخدام الدالة Number.isNaN()‎ التي عُرِّفَت في ECMAScript 2015 بدلًا من هذه الدالة. البنية العامة isNaN(value) value القيمة التي ستُختبَر إن كانت NaN. القيمة المعادة القيمة true إذا كانت القيمة المُعطاة هي NaN، والقيمة false فيما عدا ذلك. الوصف ضرورة وجود الدالة isNaN على النقيض من بقية القيم في JavaScript، لا يمكن الاعتماد على معاملات ...

مقدمة إلى التعامل مع قواعد البيانات في Laravel

مقدمة يُبسّط Laravel التعامل مع قواعد البيانات بشكل كبير عبر مجموعة متنوعة من الأسندة الخلفية (backends) قواعد البيانات إمّا باستخدام  لغة الاستعلام البنيوية SQL خام أو باستخدام منشئ الاستعلامات الفصيح (fluent query builder)، أو باستخدام رابط الكائنات بالعلاقات Eloquent. يدعم Laravel حاليًا أربع قواعد بيانات: MySQL PostgreSQL SQLite SQL Server الضبط تقع إعدادات قاعدة بيانات تطبيقك في config/database.php. تستطيع في هذا الملف تعريف جميع اتصالات قاعدة بياناتك لإضافةً لتحديد الاتصال الافتراضي. تتوافر أمثلة عن معظم أنظمة قواعد البيانات المدعومة في ...

الدوال في TypeScript

مقدمة تُعدّ الدوال أحد أساسات أي تطبيق مكتوب بلغة JavaScript. إذ تُستخدم لبناء طبقات تجريد (layers of abstraction)، ولبناء مكونات تعمل كالأصناف، ولإخفاء المعلومات (information hiding)، وتعمل كوحداتٍ (modules) كذلك. ورغم أن الأصناف ومجالات الأسماء والوحدات موجودة في TypeScript، إلّا أنّ الدوال لا تزال تلعب الدور الرئيسيّ في وصف كيفيّة القيام بالأمور. وتُضيف TypeScript كذلك بعض المزايا الجديدة لدوال JavaScript الاعتياديّة لتسهيل مهمّة العمل معها. الدوال يُمكن بدايةً إنشاء الدوال في لغة TypeScript كما في لغة JavaScript، ويُمكن إنشاء الدوال ...

التصريح عن المتغيّرات في TypeScript

التصريح عن المتغيّرات (Variable Declarations) الكلمتان المفتاحيتان ‎let‎ و‎const‎ نوعان جديدان من طرق التصريح عن المتغيرات في لغة JavaScript. الكلمة المفتاحية let مُشابهة للكلمة المفتاحية var من عدّة نواحي، لكنّ let تسمح للمُطورين بتجنب بعض المشاكل التي تحدث عادةً في لغة JavaScript. أمّا const فهي طريقة لمنع إعادة تعيين القيم للمتغيرات. ولأنّ TypeScript مجموعة عليا من JavaScript، فاللغة تدعم ‎let‎ و‎const‎. وسنشرح طرق التصريح عن المتغيرات هذه ولمَ يُفضّل استعمالها عوضًا عن ‎var‎. إن كانت لديك خبرة قليلة في لغة ...

JavaScript/Topics

الكائنات العامة في هذا القسم جميع الكائنات العامة المُضمَّنة في لغة JavaScript، إضافةً إلى جميع الخاصيات والدوال التابعة لها. الخاصيات العامة هذه الخاصيات العامة تُعيد قيمةً بسيطةً، فهي لا تُمثِّل دوالًا أو خاصياتٍ تابعة لأحد الكائنات. Infinity NaN undefined null الدوال العامة هذه الدوال العامة -أي التي تستدعى في النطاق العام بدل استدعائها على كائن بعينه- تُعيد نتائجها إلى التعبير البرمجي الذي استدعاها. eval()‎‎ isFinite()‎ isNaN()‎ parseFloat()‎ parseInt()‎ decodeURI()‎ decodeURIComponent()‎ encodeURI()‎ encodeURIComponent()‎ escape()‎ unescape()‎ الكائنات الأساسية هذه هي الكائنات الأساسية ...

التابع Array.pack في روبي

يُحزِّمُ (packs) التابع pack محتويات المصفوفة التي استُدعيت معه على شكل تسلسل ثنائي (binary sequence) وفقًا للمُوجِّهات (directives) الواردة في المعامل aTemplateString؛ يمكن أن يتبع المُوجِّهات ","" و "A"" و ""a"" عددًا يحدّد عرض الحقل الناتج. قد تأخذ المُوجّهات المتبقية عددًا أيضًا مما يشير إلى عدد عناصر المصفوفة المطلوب تحويلها. إذا كان العدد يمثِّل محرف النجمة ("*")، فستُحوَّل جميع عناصر المصفوفة المتبقية. يمكن أن تُتبَع أيٌّ من المُوجّهات "sSiIlL" بشرطة سفلية ("_") أو إشارة تعجب ("!") لاستخدام الحجم الأصلي للمنصة ...

المخاليط (Mixins) في Sass

تتيحُ المخاليط تعريف الأنماط التي يمكن إعادة استخدامها في ملف الأنماط دون اللجوء إلى الأصناف غير الدلاليَّة مثلِ ‎.float-left. يمكن أن تحوي المخاليط أيضًا جميع قواعد CSS وأيَّ شيء آخر يُسمح باستعماله في ملفات Sass. يمكن أيضًا أن يُمرَّر لها وسائط (arguments) وبذلك يمكن إنتاج مجموعة واسعة من الأنماط بعدد قليل من المخاليط. تعريف المخلوط (Defining a Mixin):‏ ‎@mixin تعرَّف المخاليط (Mixins) بوساطة التعليمة ‎@mixin متبوعةً باسم المخلوط، ويمكن اختياريًا إضافة وسائط له، ثمّ كتلة من الأنماط تتضمّن محتويات المخلوط. ...

استدعاء التوابع في روبي

عندما تستدعي تابعًا، فإنّك تمرّر رسالة لكائن معيّن لأجل تنفيذ مهمّة معيّنة، ويتمّ ذلك في لغة روبي كالتّالي: my_method() لاحظ أنّ استخدام الأقواس المنحنية هنا اختياريّ: my_method المعتمد في هذا التّوثيق أن تُستخدّم الأقواس عند وجود المعامِلات لإزالة الالتباس، إلا في حالة وجود فرق بين وجود الأقواس وحذفها. هذا القسم يغطّي فقط كيفيّة استدعاء التوابع، وستُشرَح كيفيّة تعريف التّوابع في قسم آخر. المستقبِل المستقبِل (Receiver) الافتراضي في لغة روبي هو self وهو الذي يُستخدَم في حال عدم تحديد أيّ مستقبل آخر. ولأجل ...

منشئ الاستعلامات في Laravel

مقدمة يوفّر منشئ استعلامات قاعدة بيانات Laravel واجهة ملائمة وسلسة لإنشاء وإدارة استعلامات قاعدة البيانات. يمكن استخدامه لتنفيذ معظم عمليات قاعدة البيانات بتطبيقك كما أنه يعمل على جميع أنظمة قواعد البيانات المدعومة. يستخدم منشئ استعلامات Laravel ارتباط المعاملة PDO لحماية تطبيقك من هجمات حقن SQL. لا حاجة لتنظيف السلاسل النصيّة التي تُمرّر كارتباطات. استرداد النتائج استرداد جميع الصفوف من الجدول تستطيع استخدام التابع table على الواجهة الساكنة DB لبدء استعلام. يرد التابع table نسخة منشئ استعلامات فصيحة (fluent) للجدول المحدد، ...

الخاصّيّات المُعمَّمة (Delegated Properties) في لغة Kotlin

 استخدام الخاصّيّات المُعمَّمة تستطيع في لغة Kotlin تعريف استخدام (implement) الخاصّيّات يدويًا مرارًا وتكرارًا بكل مرةٍ تحتاجها، ولكن من الأسهل تعريف استخدامها مرةً واحدةً وتخزين هذا التعريف في المكتبة (library) للاستفادة منه كلما دعت الحاجة، وهذا يشمل: الخاصّيّات الكسولة (Lazy property): تُحسب قيمتها مرةً واحدةً فقط وذلك عند الوصول إليها للمرّة الأولى. الخاصّيّات المُراقَبة (observable property): إذ يُستدعَى مسؤول الانتظار (listener) عند حدوث أي تغييرٍ في الخاصّيّة. تخزين الخاصّيّات في map بدلًا من حقلٍ منفصلٍ لكلِّ منها. وتشمل لغة Kotlin ...

Kotlin/Topics

بُنية لغة Kotlin مشابهةٌ لبنية لغة البرمجة Java بوصفها كائنيّة التوجه (OOP)، وبالتالي فهي تعتمد أساسًا على وجود الأصناف (classes) التي تحتوي بدورها على الخاصّيّات (properties) والدوال (functions)، كما وتدعم Kotlin العلاقات فيما بينها مثل الوراثة (inheritance) من صنفٍ أعلى (superclass) أو التداخل فيما بينها (nesting classes)، وتمتاز بوجود مُحدِّدات الوصول (visibility modifiers) للتحكم بعمليات الوصول للبيانات المُخزَّنة، وكذلك فهي تعتمد في بُنيتها على الحزم (packages) والمكتبات (libraries) التي تحتوي على الدوال المساعدة عند الحاجة إليها، أمّا عن بُنية التعليمات ...

نظرة عامة على Action Cable في ريلز

ستتعرف في هذا الدليل على كيفية عمل Action Cable وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز. بعد قراءة هذا الدليل، ستتلعم: ماهية Action Cable وكيفية دمج الواجهة الخلفية والأمامية الخاصة به. كيفية إعداد Action Cable. كيفية إعداد القنوات. النشر وإعداد المعمارية لتشغيل Action Cable. المقدمة يدمج Action Cable مقابس الويب WebSockets مع باقي تطبيق ريلز بسلاسة. يسمح ذلك بكتابة الميزات في الوقت الحقيقي في روبي بنفس الأسلوب والشكل كبقية تطبيقات ريلز، مع الاستمرار في الأداء وقابلية التطوير. ...

خيارات المترجم في TypeScript

يوضح الجدول التالي جميع الخيارات التي يمكن استعمالها مع مترجم TypeScript للتحكم بسير عمله والتعديل على سلوكه أثناء ترجمة الشيفرات. الخيار النوع القيمة الافتراضية الوصف ‎--allowJs‎ ‎boolean‎ ‎false‎ السماح بترجمة ملفّات JavaScript. ‎--allowSyntheticDefaultImports‎ ‎boolean‎ ‎module === "system" ‎ أو أنّ الخيار ‎--esModuleInterop‎ مضبوط وقيمة ‎module‎ ليست ‎es2015‎ أو ‎esnext‎ السماح للاستيرادات الافتراضية من الوحدات التي لا تحتوي على تصديرات افتراضيّة. هذا لا يؤثر على الشيفرة المولَّدة، ويؤثر فقط على آلية التحقق من الأنواع. ‎--allowUnreachableCode‎ ‎boolean‎ ‎false‎ لا تُخبِر عن الأخطاء ...

الكائن Process

يكون الكائن process عامًا (global) والذي يزود معلومات عن عملية Node.js الحالية ورقابةً عليها، كونه كائنًا عامًا فهو متوافر دومًا لتطبيقات Node.js دون استخدام ()require. أحداث Process الكائن process هو نسخة من EventEmitter. الحدث 'beforeExit' أُضيف في الإصدار: 0.11.12. يُطلَق الحدث 'beforeExit' عندما تفرغ Node.js من حلقة الأحداث (event loop) ولا يوجد عمل إضافي لجدولته. بشكل طبيعي، عملية Node.js سوف تنتهي عندما لا يكون هناك عمل مجدولٌ، لكن المُنصِت المسجِّل لحدث 'beforeExit' يمكن أن يعمل استدعاءات غير متزامنة، وبذلك يسبب ...

JSX في TypeScript

مقدمة JSX بنيةٌ (syntax) مشابهةٌ للغة XML يُمكن تضمينها وتحويلها إلى شيفرة JavaScript صالحة، لكن آلية عملية التحويل تختلف من تطبيق (implementation) إلى آخر. اشتهرت JSX باستخدامها مع مكتبة React، لكنها تملك تطبيقات أخرى غير React. تدعم لغة TypeScript تضمين JSX، وتدقيق الأنواع فيها، وكذا ترجمة JSX إلى JavaScript مباشرةً. ملاحظة حول المصطلحات: نستخدم في هذه الصّفحة كلمة "صِفَة" للإشارة إلى الكلمة الإنجليزيّة "attribute" وكلمة "خاصيّة" للإشارة إلى كلمة "property"، كلاهما يُترجَم إلى كلمة "خاصيّة" ولهما نفس المعنى في معظم ...

التابع ‎‎.animate()‎‎‎ في jQuery

‎.animate( properties [, duration ] [, easing ] [, complete ] )‎ القيمة المعادة كائن jQuery. الوصف يُستخدَم التّابع ‎.animate()‎ في تنفيذ تحريك (animation) مُخصَّص لمجموعة من خاصيّات CSS. ‎.animate( properties [, duration ] [, easing ] [, complete ] )‎ أضيفت في الإصدار 1.0. properties كائن مُجرَّد (PlainObject)، ويُمثِّل خاصيّات CSS والقيم التي سيتجه التحريك باتجاهها. duration عدد أو سلسلة نصيّة، وتُمثِّل القيمة التي ستُحدِّد فترة تشغيل التحريك. القيمة الافتراضيّة: 400. easing سلسلة نصيّة، وتُمثِّل دالة الحركة السّلسة (easing ...

الصنف Regexp في روبي

تمثل كائنات الصنف Regexp التعابير النمطية التي تُستخدم لمطابقة نمط (pattern) معيّن في سلسلة نصية. تُنشَأ التعابير النمطية باستخدام الصياغتين /.../ و ‎%r{...}‎، أو باستعمال الباني new. التعابير النمطية هي أنماط تصف محتويات السلسلة النصية. يمكن استخدامها للتحقق من أنّ سلسلة نصية تحتوي على نمط معين، أو لاستخراج الأجزاء المُطابقة منها. عادةً ما يتم تحديد التعبير النمطي بخط مائل (/) كما يوضح المثال التالي: /hay/ =~ 'haystack' #=> 0 /y/.match('haystack') #=> #<MatchData "y"> ‎ إذا احتوت سلسلة نصية على النمط، فسيقال ...

الطلبات HTTP في Laravel

الوصول إلى الطلب عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك للحصول على نسخة الطلب HTTP الحالي عبر إضافة الاعتماديّة. ستُضاف نسخة الطلب الوارد تلقائيًّا بواسطة حاوي الخدمات: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { /** * خزّن مستخدمًا جديدًا * * @param Request $request * @return Response */ public function store(Request ...

jQuery/Topics a-z

‎.add()‎ إنشاء كائن jQuery جديد من العناصر المضافة إلى مجموعة من العناصر المطابقة. ‎.addBack()‎ يُضيف هذا التّابع مجموعة العناصر الموجودة سابقًا في المَكْدَس (stack) إلى المجموعة الحاليّة، مع إمكانيّة ترشيحها بشكل اختياري عن طريق مُحدِّد (selector). ‎.addClass()‎ يُضيف هذا التّابع الصّنف أو الأصناف المُحدَّدة لكل عنصر من مجموعة العناصر المُطابقة. ‎.after()‎ يُدخِل هذا التّابع المحتوى المُحدَّد عن طريق المُعامِل بعد كل عنصر من مجموعة العناصر المُطابقة. ‎.ajaxComplete()‎ يُسجِّل هذا التّابع مُعالِج الأحداث (Event handler) لاستدعائه عند اكتمال طلبات Ajax. ‎.ajaxError()‎ ...

نظرة عامة على وحدة العرض في ريلز

بعد قراءة هذا الدليل، ستعرف: ما هو Action View وكيفية استخدامه مع ريلز. أفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات. ما الذي يقدمه المساعدون عن طريق Action View. كيفية استخدام العروض المحلية. ما هو Action View؟ في ريلز، تُعَالَج طلبات الويب من خلال Action Controller و Action View. عادةً ما يقع على عاتق وحدة التحكم التواصل مع قاعدة البيانات وتنفيذ الإجراءات CRUD عند الضرورة؛ بعد ذلك، يكون Action View مسؤولًا عن تفسير (compiling) الاستجابة. تُكتَب قوالب Action View باستخدام روبي ...

الخاصية transform

الخاصية transform في CSS تسمح لنا بتحويل شكل العناصر في الفضاء ثنائي أو ثلاثي الأبعاد، وبالتالي يمكن نقل العنصر أو تدويره أو إعادة تحجيمه أو جعله منحرفًا. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة كما حُدِّدَت. /* كلمة محجوزة */ transform: none; /* دالة */ transform: matrix(1.0, 2.0, 3.0, 4.0, 5.0, 6.0); transform: translate(12px, 50%); transform: translateX(2em); transform: translateY(3in); transform: scale(2, 0.5); transform: scaleX(2); transform: scaleY(0.5); transform: rotate(0.5turn); transform: skew(30deg, 20deg); transform: skewX(30deg); transform: skewY(1.07rad); transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, ...

الأصناف في TypeScript

مقدمة تعتمد لغة JavaScript التقليدية على الدوال والوراثة المعتمدة على سلسلة Prototype لبناء مكونات قابلة لإعادة الاستعمال، وقد يجد بعض المبرمجين هذه الطريقة غريبة ومرهقة، خاصّة الذين ألِفوا البرمجة كائنيّة التوجه التي تعتمد على الأصناف التي ترث وظيفة (functionality) الأصناف الأساس (base classes) وتُبنَى فيها الكائنات من هذه الأصناف. بدايةً من الإصدار ECMAScript 2015 المعروف كذلك بالإصدار ECMAScript 6، يُمكن لمبرمجي JavaScript بناء التطبيقات باستخدام البرمجة كائنيّة التوجّه المعتمِدة على الأصناف. وتسمح TypeScript للمطورين باستعمال هذه التقنيات الآن، وتُترجِمها إلى ...

البرمجة كائنية التوجه في PHP

بدءًا من الإصدار الخامس من اللغة، أعيدت كتابة نموذج الكائنات للحصول على أداء أفضل وإضافة المزيد من الميزات، وقد كان هذا من التغييرات الكبيرة في اللغة، إذ قدّم الإصدار الخامس نموذج مكتملًا للكائنات. ومن الميزات التي قدّمها الإصدار الخامس قابلية الرؤية (visibility)، الأصناف والتوابع المجرّدة (abstract) والنهائية (final)، المزيد من التوابع السحرية (magical methods)، الواجهات (interfaces)، الاستنساخ (cloning) والإشارة إلى الأنواع (typehinting). تعامل PHP الكائنات معاملة المراجع (references) أو المقابض (handles)، بمعنى أنّ كلّ متغيّر يتضمن كائنًا مرجعيًا وليس نسخة ...

البدء مع ريلز

يغطي هذا الدليل بدء وتشغيل ريلز. بعد قراءة هذا الدليل، ستتعلم: كيف تثبّت ريلز وتُنشئ تطبيق ريلز جديد وتربط تطبيق ريلز بقاعدة بيانات. التخطيط العام لتطبيق ريلز. المبادئ الأساسية للنمط MVC (النموذج [Model]، والواجهة [View]، ووحدة التحكم [Controller]) والتصميم RESTful. كيف تولد سريعًا أجزاء البداية لتطبيق ريلز. افتراضات الدليل صُمِّم هذا الدليل للمبتدئين الراغبين ببدء استعمال إطار العمل ريلز من الصفر. ولا يفترض أن لك سابق خبرة بريلز. إنَّ ريلز هو إطار عمل لتطبيقات الويب يعمل على لغة البرمجة روبي. ...

صيغة التعابير النمطية في بايثون

تستخدم التعابير النمطية لمطابقة مجموعة من الحروف في السلاسل النصية، وتسمح الدوال في هذه الوحدة بالتحقق من تطابق سلسلة نصّية معينة مع التعبير النمطي المعطى (أو من تطابق التعبير النمطي المعطى مع سلسلة نصّية معينة، والنتيجة في كلتا الحالتين واحدة). يمكن ربط التعابير النمطية بعضها ببعض لتكوين تعابير نمطية جديدة، فعلى سبيل المثال إن كان A و B تعبيرين نمطيين فإنّ AB هو تعبير نمطيّ أيضًا. وبصورة عامة، إن كانت السلسلة p تطابق التعبير النمطي A وكانت سلسلة نصية أخرى ...

الأنواع المتقدمة في TypeScript

أنواع التقاطع (Intersection Types) يجمعُ نوعُ تقاطعٍ عدّة أنواع في نوع واحد. يسمح هذا بجمع الأنواع الموجودة في نوع واحد يملك جميع الميّزات التي تحتاج إليها. مثلًا، النوعُ ‎Person & Serializable & Loggable‎ هو من النّوع ‎Person‎ والنّوع ‎Serializable‎ والنّوع ‎Serializable‎، كلّها مجموعة في نفس النّوع. هذا يعني أنّ كائنًا ما من هذا النوع سيحتوي على جميع عناصر الأنواع الثلاثة. تُستعمل أنواع التّقاطع عادةً في المخاليط (mixins) والمبادئ الأخرى التي قد تكون غريبة على البرمجة كائنيّة التوجه العاديّة (وهي متواجدة ...

ضبط تطبيقات ريلز

يغطي هذا الدليل ميزات الضبط والتهيئة المتاحة لتطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية ضبط سلوك تطبيقات ريلز. كيفية إضافة شيفرة مصدريّة إضافية لتنفيذها وقت بدء تشغيل التطبيق. مواقع شيفرة التهيئة والضبط يوفر ريلز أربعة مواضع رئيسيّة لوضع الشيفرة المصدريّة للتهيئة: config/application.rb ملفات الضبط (configuration) الخاصة بالبيئة المهيآت (Initializers) ما بعد المهيآت (After-initializers) تشغيل شيفرة برمجية قبل ريلز في أحيان نادرة، يحتاج تطبيقك لتشغيل بعض الشيفرات البرمجية قبل تحميل ريلز نفسه، ذا ضعها آنذاك قبل استدعاء require 'rails/all'‎ في ...

تنقيح تطبيقات ريلز

يقدّم هذا الدليل التقنيات اللازمة لتنقيح تطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلّم: الغرض من التنقيح. كيفة تتبّع العلل والأخطاء التي لا تتعرّف عليها الاختبارات في تطبيقك. طرقًا مختلفة للتنقيح. كيفيّة تحليل أثر المكدس. مساعدي العرض للتنقيح احدى المهام الشائعة في التنقيح هي فحص محتويات متغيّر معيّن، لذا يوفر ريلز ثلاثة طرائق لفعل ذلك: Debug To_yaml Inspect debug سيعيد المساعد debug الوسم <pre> الذي يصدّر الكائن باستخدام تنسيق YAML، وسيؤدي هذا إلى توليد بيانات يمكن للإنسان قراءتها من أي كائن. ...

الوحدة URL في Node.js

توفر الوحدة url مجموعة من الأدوات لمعالجة وتحليل عناوين الويب (URL). يمكن استيراد الوحدة والبدء باستخدامها عبر تنفيذ: ‎‎const url = require('url'); سلاسل العناوين والكائِن URL سلسلة العنوان (URL String) هي سلسلة نصيّة مُنظمة مؤلَّفة من عدِّة مكوِّنات. يُعاد الكائِن URL، عند تحليل سلسلة العنوان، مقرونًا بخاصيّات تُمثِّل مكوِّنات سلسلة العنوان المُختلفة. توفر الوحدة url واجهتين برمجيّتين للتعامل مع عناوين الويب: واجهة قديمة خاصّة ببيئة Node.js، وأخرى جديدة تُطبِّق معيار WHATWG المُستخدَم في مُتصفحات الويب (سنستخدم عبارة "الواجهة الحديثة" للإشارة ...

الوحدة ‎‎‎crypto‎ في Node.js

الاستقرار: 2-مستقر توفِّر الوحدة crypto وظيفة التشفير (cryptographic functionality) التي تتضمن مجموعةً من المغلفات (wrappers) التي تُستعمَل من أجل دوال شيفرة Hash في OpenSSL، والتشفير HMAC، والتشفير (cipher)، وفك التشفير (decipher)، والتوقيع (sign)، والتحقق (verify). استعمل الأمر require('crypto')‎ للوصول إلى هذه الوحدة. const crypto = require('crypto'); const secret = 'abcdefg'; const hash = crypto.createHmac('sha256', secret) .update('I love cupcakes') ...

نظرة خاطفة على وحدة التحكم في ريلز

ستتعرف في هذا الدليل على كيفية عمل وحدات التحكم (Controller) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم. كيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك. كيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies). كيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب. كيفية استخدام استيثاق HTTP المضمن في وحدة التحكم. كيفية تدفق البيانات مباشرة إلى ...

الوحدة Stream

الاستقرار: 2-مستقر المجرى هو واجهة مجرّدة للعمل مع البيانات المتدفقة في Node.js. توفّر الوحدة stream واجهة برمجية (API) أساسية تجعل من السهل بناء كائنات تتعامل مع واجهة المجرى. يوجد العديد من كائنات المجرى التي توفرها Node.js. على سبيل المثال، http.IncomingMessage (طلبيات الخادم HTTP) و process.stdout هما نسخ من الصنف stream. يمكن أن تكون المجاري قابلة للقراءة (readable)، أو قابلة للكتابة (writable)، أو كليهما. كل المجاري هي نسخ من الصنف EventEmitter. يمكن الوصول إلى الوحدة stream باستخدام: const stream = require('stream'); لمَّا ...

عرض (250 السابقة | 250 التالية) (20 | 50 | 100 | 250 | 500).