نتائج البحث

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

طريقة الاستعمال وتشغيل الأمثلة في Node.js

البنية العامة node [options] [V8 options] [script.js | -e "script" | - ] [arguments] راجع رجاءً توثيق خيارات سطر الأوامر للمزيد من المعلومات عن الخيارات والطرائق التي يمكن استعمالها لتشغيل السكربتات وتنفيذها مع Node.js. تشغيل الأمثلة سنشرح مثالًا عن إنشاء خادم ويب باستعمال Node.js يُظهِر العبارة 'مرحبًا بالعالم!' في المتصفح. تبدأ الأوامر المستعملة في هذا المثال بالمحرف $ أو < وذلك لمحاكاة كيفيَّة ظهورها في طرفيَّة المستخدم، لذا لا تضف هذين المحرفين إلى الأوامر عند نسخها واستعمالها. توجد الكثير من الدروس ...

التابع Keyboard.move()‎ في أردوينو

يحرك التابع move()‎ مؤشر الفأرة في الحاسوب المتصل. يُحدَّد الموقع الجديد المراد تحريك المؤشر إليه نسبةً إلى الموقع الحالي للمؤشر. قبل استعمال التابع move()‎، يجب استدعاء التابع begin()‎. البنية العامة Mouse.move(xVal, yPos, wheel); المعاملات xVal محرفٌ ذو إشارة (signed char) يحدِّد مقدار انتقال المؤشر على المحور الأفقي (x-axis). yVal محرفٌ ذو إشارة (signed char) يحدِّد مقدار انتقال المؤشر على المحور الشاقولي (y-axis). wheel محرفٌ ذو إشارة (signed char) يحدِّد مقدار تدوير عجلة الفأرة. القيم المعادة لا يعاد أي شيء. أمثلة ...

تعريف الإضافات محليًّا (Introduce Local Extensions)

المشكلة الحاجة إلى بعض التوابع (methods) غير الموجودة في الصنف المساعد (utility class)، ومن غير الممكن إضافتها إلى ذلك الصنف. الحل إنشاء صنفٍ (class) جديدٍ يحتوي التوابع اللازمة، وجعله كصنف تغليفٍ (wrapper) للصنف المساعد أو كصنفٍ فرعيٍّ (subclass) له. مثال قبل إعادة التصميم يعتمد صنف العميل ClientClass على الصنف المساعد Date ولكنّه بحاجة إلى بعض التوابع غير الموجودة فيه (كتابع الحصول على اليوم التالي مثلًا): الصنف العميل ClientClass الذي يعتمد على الصنف المساعد Date. بعد إعادة التصميم أصبح هنالك صنف ...

التابع HTTPRedirectHandler.http_error_301()‎‎ في بايثون

يعيد التابع التوجيه إلى عنوان Location:‎ أو URI:‎. يُستدعى هذا التابع بواسطة كائن OpenerDirector الأب عند الحصول على الاستجابة (moved permanently). البنية العامة HTTPRedirectHandler.http_error_301(req, fp, code, msg, hdrs) مصادر صفحة Extensible library for opening URLs في توثيق بايثون الرسمي.

إخفاء التفويض (Hide Delegate)

المشكلة يصل العميل (client) إلى كائنٍ (object) ما وليكن الكائن B من أحد حقول (fields) أو توابع (methods) كائنٍ آخر وليكن A، ومن ثمّ يستدعي تابعًا لهذا الكائن B. الحل إنشاء تابعٍ جديدٍ في الصنف A والذي يُفضي إلى استدعاءٍ للكائن B، وبهذا لن يعلم العميل تفاصيل التفويض (delegation) للكائن B ولن يعتمد على ذلك. مثال قبل إعادة التصميم يتعامل صنف العميل (client class) مع صنفين، الأول صنف الأقسام (Department) والثاني صنف الأشخاص (Person) واللذان يحتويان تابعين للحصول على كائنٍ ...

الأصناف الخاملة (Lazy Classes)

توصيف المشكلة وجود بعض الأصناف (classes) قليلة الاستخدام ولا أهمية لها في البرنامج، ويجدر التخلُّص منها إذ إنّ فهم وصيانة الأصناف يكلِّفان الوقت والجهد. أسبابها يكون تصميم الصنف بدايةً لأداء مهامٍ (functionality) معيّنة، ولكنّه قد يصبح صغيرًا لا أهميّة له من بعد الكثير من عمليات إعادة التصميم (refactoring). قد تُخصَّص بعض الأصناف لدعم التطوير المستقبلي للبرنامج (كالتخطيط المُسبق لميّزاتٍ ستُضاف لاحقًا)، وتصبح تلك الأصناف خاملةً عندما لا يحدث أيُّ تطويرٍ فيما بعد. وما الحل؟ تضمين الأصناف (inline classes) للعناصر (components) ...

التابع call‎ الخاص بالصنف Method في روبي

يستدعي call كتلة التابع الذي استٌدعي معه، ويضبط وسائط الكتلة عند القيم المُمرَّرة إليه باستخدام صياغة مشابهة لصياغة استدعاء التوابع ثم يعيد قيمة آخر تعبير تم تقييمه في الكتلة. لاحظ أن ‎prc.()‎ يستدعي prc.call()‎ مع تمرير المعاملات المعطاة. وهي صياغة مختصرة لإخفاء التابع "call". بالنسبة للكائنات procs التي تم إنشاؤها باستخدام lambda أو ‎->()‎‎‎، سيُطلق خطأ إذا كان عدد المعاملات الممررة إلى proc غير صحيح. بالنسبة للكائنات proc التي تم إنشاؤها باستخدام Proc.new أو Kernel.proc ، سيتم تجاهل المعاملات الإضافية ...

الشيفرة النظيفة (Clean Code)

تهدف عملية إعادة التصميم (refactoring) للتخلُّص من المتطلَّبات التقنيّة الزائدة، إذ تحوِّل كلَّ الفوضى المنتشرة في الشيفرة إلى شيفرةٍ نظيفةٍ (clean code) ذات تصميمٍ مُبسَّط، وهذا -لا بُدَّ- أمرٌ رائعٌ ولكن بالبداية؛ ما معنى أن تكون الشيفرة نظيفةً؟ مميزات الشيفرة النظيفة فيما يأتي بعضٌ مما يميز الشيفرة النظيفة: واضحةٌ ومقروءةٌ للمبرمجين الآخرين إنّ ما يجعل الشيفرات أكثر تعقيدًا (بعيدَا عن الخوارزميّات فائقة التعقيد) هو اعتمادها على تسمية المتغيِّرات تسميةً ضعيفةً (غير منطقيّةٍ أو بدون معنى) أو احتوائها على أصناف (classes) ...

التابع ThreadGroup.enclose في روبي

يمنع التابع enclose إضافة أو إزالة أي خيط من مجموعة الخيوط التي استدعيت معه. لا يزال بإمكان الخيوط الجديدة أن تُبدَأ في مجموعة خيوط مغلقة. البنية العامة enclose → thgrp القيمة المعادة تعاد مجموعة الخيوط المعطاة بعد إغلاقها. أمثلة مثال على استعمال التابع enclose: ThreadGroup::Default.enclose #=> #<ThreadGroup:0x4029d914> thr = Thread.new { Thread.stop } #=> #<Thread:0x402a7210 sleep> tg = ThreadGroup.new ...

الاستغناء عن الوسيط (Remove Middle Man)

المشكلة احتواء الصنف (class) على العديد من التوابع (methods) التي تنقل (delegate) سياق البرنامج إلى كائنات (objects) أخرى. الحل حذف تلك التوابع وإجبار العميل (client) على الاستدعاء المباشر للتوابع النهائية (التي سيصل إليها بالنهاية وتحتوي المهام الفعليّة). مثال قبل إعادة التصميم يتعامل صنف العميل (client class) مع صنفٍ واحدٍ فقط وهو الصنف Person، والذي بدوره يستدعي كائنًا من صنفٍ آخر باسم Department دون أن يكون العميل على علمٍ بتفاصيل ذلك الاستدعاء، كما هو واضح في مخطط الأصناف الآتي: مخطط يوضح ...

الأعباء التقنية (Technical Debt)

يبذل المبرمج عادةً ما بوسعه لكتابة شيفرةٍ جيدةٍ، ولا ينوي أبدًا -أيًّا كان المبرمج- الحصولَ على شيفرةٍ رديئةٍ تكون السبب في فشل مشروعه البرمجيّ، لذا فلنطرح السؤال: ما هو الحدُّ الذي تصبح عنده الشيفرةُ النظيفةُ رديئةً؟ فخ الأعباء التقنية اقتُرح مصطلح "الأعباء أو الالتزامات التقنيّة" (ويقابله بالانكليزيّة Technical Debt) للمرّة الأولى من قِبل Ward Cunningham، فإنه لدى اقتراضك مبلغًا ماليًا من أحد المصارف تكبُر أمامك فرصة الشراء بشكلٍ أسرع، ويحدث أن تدفعَ علاوةً (وأيّ إضافات أخرى) لتسريع الأمر والحصول على ...

الخاصية cursor

الخاصية cursor في CSS تُحدِّد ما هو شكل مؤشر الفأرة الذي سيُعرَض عندما تمر الفأرة فوق العنصر. بطاقة الخاصية القيمة الابتدائية auto تُطبَّق على جميع العناصر. قابلة للوراثة نعم قابلة للحركة لا القيمة المحسوبة كما حُدِّدَت، لكن مع تحويل روابط URL النسبية إلى مطلقة. /* كلمات محجوزة */ cursor: pointer; cursor: auto; /* استخدام رابط للأيقونة مع إحداثيات */ cursor: url(cursor1.png) 4 12, auto; cursor: url(cursor2.png) 2 2, pointer; /* القيم العامة */ cursor: inherit; cursor: initial; cursor: unset; أمثلة مثال عن استخدام مختلف القيم مع الخاصية cursor: <div ...

المكتبة Mouse في أردوينو

تتيح توابع المكتبة Mouse إمكانية تحكم اللوحات التي تعتمد على متحكمات 32u4 أو SAMD بمؤشر الفأرة في الحاسوب المتصل عبر المنفذ USB الأصلي للمتحكم. يكون موقع مؤشر الفأرة نسبي دومًا؛ فعند تحديث موقع مؤشر الفأرة الحالي وتحريكه، ينتقل المؤشر إلى الموقع الجديد نسبةً إلى موقعه القديم. تسمح المكتبات الأساسية للوحات التي ترتكز على متحكمات 32u4 و SAMD (مثل عائلة Leonardo، و Esplora، و Zero، و Due، و MKR) بجعل الفأرة و/أو لوحة المفاتيح تبدوان عند وصلهما بالحاسوب وكأنَّهما أصليتان. هنالك ...

الكلمة static المفتاحية في أردوينو

تُستعمَل الكلمة المفتاحية static عند إنشاء متغيرات مرئيَّة لدالةٍ واحدة فقط من أجل الحفاظ على محتواها بعد انتهاء تنفيذ تلك الدالة المستدعاة وحتى الاستدعاء التالي لها خلافًا للمتغيرات المحلية التي تُنشَأ وتدمَّر في كل مرة تُستدعَى فيها الدالة. ستُنشَأ وتُهيَّأ المتغيرات الساكنة المصرَّح عنها ضمن الدالة مع الكلمة static المفتاحية أول مرة تُستدعَى فيها تلك الدالة فقط. البنية العامة static dataType var = val; يمثِّل dataType نوع المتغير المراد تعريفه، و var اسم المتغير، و val القيمة المراد إسنادها إلى هذا ...

التابع Keyboard.begin()‎ في أردوينو

يبدأ التابع begin()‎ عملية محاكاة (emulating) لفأرة افتراضية موصولة بالحاسوب المتصل باللوحة. يجب استدعاء هذا التابع قبل بدء التحكم بالحاسوب. إن أردت إنهاء هذه العملية، فاستدعِ التابع end()‎. البنية العامة Mouse.begin() القيم المعادة لا يعاد أي شيء. أمثلة إرسال رسالة إلى الحاسوب عبر لوحة مفاتيح افتراضية متصلة به عند الضغط على زر موصول بالرجل 2: #include <Mouse.h> void setup(){ pinMode(2, INPUT); } void loop(){ // عند الضغط على الزر المتصل بالرجل 2 Mouse تهيئة وبدء المكتبة if(digitalRead(2) == HIGH){ ...

التابع Keyboard.end()‎ في أردوينو

يوقف التابع end()‎ عملية محاكاة (emulating) وصل فأرة افتراضية بالحاسوب المتصل باللوحة. إن أردت إعادة التحكم بالفأرة مجدَّدًا، فاستدعِ التابع begin()‎. البنية العامة Mouse.end() القيم المعادة لا يعاد أي شيء. أمثلة الضغط على زر الفأرة الأيسر في موقع المؤشر الحالي عند الضغط على الزر الموصول بالرجل 2: #include <Mouse.h> void setup(){ pinMode(2,INPUT); // Mouse تهيئة وبدء المكتبة Mouse.begin(); } void loop(){ // إن ضُغِط على الزر المتصل بالرجل 2، فضغط زرالفأرة الأيسر //then end the Mouse emulation ...

Object.create()‎

الدالة Object.create()‎ تُنشِئ كائنًا جديدًا له كائن prototype مُحدَّد، وتكون خاصياته معطية. البنية العامة Object.create(proto[, propertiesObject]) proto الكائن الذي يجب أن يُسنَد إلى خاصية prototype للكائن المُنشأ. propertiesObject هذا الوسيط اختياريٌ، وإذا حُدِّدَت قيمته ولم تكن undefined، فهو كائنٌ فيه خاصياتٌ تابعةٌ له وقابلةٌ للإحصاء تُحدِّد واصفات الخاصيات (property descriptors) التي ستُضاف إلى الكائن المُنشَأ والتي سترتبط بأسماء الخاصيات. وهذه الخاصيات تشبه الوسيط الثاني المُمرَّر إلى الدالة Object.defineProperties()‎ (ارجع إلى تلك الصفحة إن وجدتَ الكلام السابق غامضًا). القيمة المعادة كائن ...

التابع Keyboard.click()‎ في أردوينو

يرسل التابع click()‎ ضغطة سريعة وخاطفة إلى الحاسوب عند موقع مؤشر الفأرة الحالي. يشبه سلوك هذا التابع الضغط بسرعةٍ على زر الفأرة ضغطةً واحدةً. الزر الافتراضي الذي يضغطه هذا التابع هو زر الفأرة الأيسر. البنية العامة Mouse.click(); Mouse.click(button); المعاملات button محرفٌ يحدِّد هذا المعامل زر الفأرة المراد ضغطه. القيم التي يمكن استعمالها مع هذا المعامل هي: MOUSE_LEFT (القيمة الافتراضية) MOUSE_RIGHT MOUSE_MIDDLE القيم المعادة لا يعاد أي شيء. أمثلة الضغط على زر الفأرة الأيسر في موقع المؤشر الحالي عند الضغط على الزر ...

التابع Keyboard.isPressed()‎ في أردوينو

يتحقَّق التابع isPressed()‎ إن كان زر معيَّن من أزرار الفأرة مضغوطًا أم لا. البنية العامة Mouse.isPressed(); Mouse.isPressed(button); المعاملات button محرفٌ يحدِّد هذا المعامل زر الفأرة المراد التحقُّق منه. القيم التي يمكن استعمالها مع هذا المعامل هي: MOUSE_LEFT (القيمة الافتراضية) MOUSE_RIGHT MOUSE_MIDDLE القيم المعادة تعاد القيمة true المنطقية إن كان الزر button (أو الزر الأيسر إن لم يُعطَ) مضغوطًا أم لا. أمثلة استعمال قاطعتين لضغط زر الفأرة الأيسر باستمرار وتحريره: #include <Mouse.h> void setup(){ // قاطعة تستعمل من أجل الضغط على زر ...

التابع Keyboard.release()‎ في أردوينو

يحرِّر التابع release()‎ زر الفأرة الذي ضُغِط عليه مسبقًا باستعمال التابع press()‎. البنية العامة Mouse.release(); Mouse.release(button); المعاملات button محرفٌ يحدِّد هذا المعامل زر الفأرة المراد تحريره. القيم التي يمكن استعمالها مع هذا المعامل هي: MOUSE_LEFT (القيمة الافتراضية) MOUSE_RIGHT MOUSE_MIDDLE القيم المعادة يعاد عدد المفاتيح المُحرَّرة. أمثلة استعمال قاطعتين لضغط زر الفأرة الأيسر باستمرار وتحريره في موقع المؤشر الحالي: #include <Mouse.h> void setup(){ // قاطعة تستعمل من أجل الضغط على زر الفأرة pinMode(2,INPUT); // قاطعة أخرى تستعمل من أجل تحرير ...

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