نتائج البحث

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

سحب متن المُنشِئ لأعلى (Pull Up Constructor Body)

المشكلة تحتوي الأصناف الفرعية على مُنشِئات لها شيفرة متطابقة في أغلبها. الحل إنشاء مُنشئ صنف أب ونقل الشيفرة المماثلة في الأصناف الفرعية إليه. استدعاء مُنشئ الصنف الأب في مُنشِئات الصنف الفرعي. مثال قبل إعادة التصميم احتواء الصنف الفرعي Manager المشتق من الصنف Employee على منشئ متطابق بنسبة كبيرة: في لغة Java: class Manager extends Employee { public Manager(String name, String id, int grade) { this.name = name; this.id = id; ...

Python/tempfile

11.6. tempfile — توليد الملفات والمجلدات المؤقتة الشيفرة المصدرية تُنشئ هذه الوحدة ملفات ومجلدات مؤقتة، وتعمل على جميع المنصات المدعومة في بايثون، وتقدم الواجهات التالية TemporaryFile و NamedTemporaryFile و TemporaryDirectory و SpooledTemporaryFile  كواجهات عالية المستوى تدعم عملية تنظيف تلقائية ويمكن استخدامها كمدير سياق context manager، كما تقدم الوحدة تابعين mkstemp و mkdtemp منخفضي المستوى يحتاجان إلى التنظيف اليدوي بعد استخدامهما.

الدالة cgitb.html()‎‎ في بايثون

تتعامل هذه الدالة مع الاستثناء الموصوف في المعاملات، وتنسّق رسالة الخطأ بصيغة HTML وتعيد النتيجة كسلسلة نصية. البنية العامة cgitb.html(info, context=5) ‎المعاملات info تصف قيمة هذا المعامل الاستثناء الذي ستتعامل معه الدالة، وقيمته عبارة عن صفٍّ tuple ذي ثلاثة عناصر وهو نتيجة استدعاء الدالة sys.exc_inf()‎. context معامل اختياري، يحدّد عدد الأسطر التي ستُعرض في رسالة الخطأ والتي تحيط بالسطر الذي يحتوي على الخطأ في الشيفرة المصدرية، ويأخذ هذا المعامل القيمة الافتراضية 5. القيمة المعادة تعيد الدالة رسالة الخطأ على هيئة ...

الدالة cgitb.handler()‎‎ في بايثون

تتعامل هذه الدالة مع استثناء معيّن باستخدام الإعدادات الافتراضية (عرض التقرير في متصفّح الويب، ولكن عدم حفظه في ملف منفصل). يمكن استخدام هذه الدالة عندما يكون هناك استثناء لم تلتقطه بايثون وترغب في عرض تقرير عنه باستخدام الوحدة cgitb. البنية العامة cgitb.handler(info=None) ‎المعاملات info معامل اختياري، وهو عبارة عن صفٍّ tuple مكوّن من ثلاثة عناصر هي نوع الاستثناء، وقيمة الاستثناء وكائن traceback، وهذا الصفّ مشابه للصفّ الذي تعيده الدالة sys.exc_info()‎. في حال عدم تزويد الدالة بالمعامل info، يُؤخذ الاستثناء الحاليّ ...

الدالة cgitb.text()‎‎ في بايثون

تتعامل هذه الدالة مع الاستثناء الموصوف في المعاملات، وتنسّق رسالة الخطأ على هيئة نصٍّ صرف plain text وتعيد النتيجة كسلسلة نصية. البنية العامة cgitb.text(info, context=5) ‎المعاملات info تصف قيمة هذا المعامل الاستثناء الذي ستتعامل معه الدالة، وقيمته عبارة عن صفٍّ tuple ذي ثلاثة عناصر وهو نتيجة استدعاء الدالة sys.exc_inf()‎. context معامل اختياري، يحدّد عدد الأسطر التي ستُعرض في رسالة الخطأ والتي تحيط بالسطر الذي يحتوي على الخطأ في الشيفرة المصدرية، ويأخذ هذا المعامل القيمة الافتراضية 5. القيمة المعادة تعيد الدالة ...

الدالة cgitb.enable()‎‎ في بايثون

يؤدّي استدعاء هذه الدالة إلى تولّي وحدة cgitb مسؤولية معالجة الاستثناءات عوضًا عن أداة المعالجة الافتراضية في مفسّر بايثون وذلك بتعيين قيمة للدالة sys.excepthook()‎. البنية العامة cgitb.enable(display=1, logdir=None, context=5, format="html") ‎المعاملات ‎display معامل اختياري، يأخذ القيمة الافتراضية 1، ويمكن أن يأخذ القيمة 0 وبذلك تُمنع الدالة من إرسال رسالة الخطأ إلى متصفّح الويب. logdir إن كان المعامل logdir موجودًا، فإنّ رسالة الخطأ ستُكتب إلى ملف، وقيمة هذا المعامل هو المجلّد الذي سيحتوي على هذه الملفات. context معامل اختياري، يحدّد عدد ...

متى تحتاج إعادة التصميم؟ (When to Refactor)

نحتاج إلى إعادة التصميم (قاعدة المرات الثلاث): عند قيامك بأيّة مهمةٍ للمرّة الأولى، فالمهم هو إنجازها والحصول على النتيجة وحسب. لدى قيامك بمهمةٍ مشابهةٍ للمرّة الثانية قد ترفض بادئ الأمر فكرة التكرار ولكنك ستجد نفسك تقوم بنفس العمل! عند قيامك بالمهمة للمرّة الثالثة، ستحتاج إعادة التصميم. عند إضافة ميّزةٍ (feature) جديدة تساعد عملية إعادة التصميم (refactoring) على فهم شيفرات المبرمجين الآخرين بشكلٍ أفضل، وعند العمل على الشيفرة غير الجيدة لأحدهم فعليك بإعادة تصميمها أولًا، وهذا ضروريٌّ إذ يصبح التحكُّم بالشيفرة ...

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

تقدم وحدة cgitb أداة خاصة للتعامل مع الاستثناءات في سكربتات بايثون. (قد يكون اسم الوحدة مضلّلًا. صمّمت هذه الوحدة في المقام الأوّل لعرض معلومات الأخطاء الخاصّة بسكربتات CGI بصيغة HTML، ولكنّها أصبحت تعرض المعلومات كنصوص صرفة في وقت لاحق). في حال حدوث استثناء لم تلتقطه بايثون، تعرض الوحدة تقريرًا مفصّلًا ومنسّقًا، ويتضمّن هذا التقرير الجزء المسؤول عن حدوث الخطأ في الشيفرة المصدرية، إضافة إلى قيم الوسائط والمتغيرات المحلية الخاصّة بالدالة الحالية. يمكن الاستفادة من هذا التقرير في تنقيح الشيفرة المصدرية ...

الصنف shelve.Shelf()‎ في بايثون

صنف متفرّع من الصنف collections.abc.MutableMapping مهمّته تخزين القيم المسلسلة في كائن dict المعطى. البنية العامة shelve.Shelf(dict, protocol=None, writeback=False, keyencoding='utf-8') المعاملات dict كائن dict الذي ستخزن فيه القيم المسَلسَلة. protocol يستخدم الإصدار 3 من بروتوكول pickle لسلسلة القيم افتراضيًا، ويمكن تحديد بروتوكول السَلسَلة باستخدام المعامل protocol. راجع توثيق الوحدة pickle للاطلاع على المزيد من التفاصيل حول إصدارات السلسلة المتوفّرة. writeback إن أخذ المعامل writeback القيمة True، فإنّ الكائن سيخزن جميع العناصر التي تم الوصول إليها في الذاكرة المخبئية وسيعيد كتابة هذه ...

الدالة dbm.open()‎ في بايثون

‎ تفتح الدالة الملف المعطى وتعيد كائنًا موافقًا له. البنية العامة dbm.open(file, flag='r', mode=0o666) المعاملات file إن كان ملف قاعدة البيانات موجودًا أصلًا، فستستخدم الدالة whichdb()‎ لتحديد نوعه والوحدة المناسبة للاستخدام، أما إن لم يكن الملف موجودًا فستستخدم الدالة أول وحدة قابلة للاستيراد من الوحدات dbm.gnu أو dbm.ndbm أو dbm.dumb. flag يأخذ المعامل الاختياري flag إحدى القيم التالية: القيمة الوصف 'r' فتح قاعدة البيانات للقراءة فقط (القيمة الافتراضية). 'w' فتح قاعدة البيانات للكتابة والقراءة. 'c' فتح قاعدة البيانات للكتابة والقراءة، ...

استعمال أدوات البناء مع TypeScript

توضّح هذه الصفحة كيفيّة استخدام أدوات البناء (Build tools) المشهورة مع شيفرة TypeScript: Browserify التثبيت npm install tsify باستخدام واجهة سطر الأوامر (Command Line Interface) browserify main.ts -p [ tsify --noImplicitAny ] > bundle.js باستخدام الواجهة البرمجية (API) var browserify = require("browserify"); var tsify = require("tsify"); browserify() .add("main.ts") .plugin("tsify", { noImplicitAny: true }) .bundle() .pipe(process.stdout); للمزيد من التفاصيل، انظر: smrq/tsify Duo التثبيت npm install duo-typescript باستخدام واجهة سطر الأوامر (Command ...

الاستخدامات المتقدمة لعبارة if الشرطية في Bash

بُنى if/then/else يوضح المثال التالي البُنية التي يجب استخدامها لاتخاذ إجراء أو سلسلة إجراءات إن تحققت شروط عبارة if، وسلسلة إجراءات أخرى إن لم تتحقق: hsoub scripts> gender="male" hsoub scripts> if [[ "$gender" == "f*" ]] More input> then echo "Pleasure to meet you, Madame." More input> else echo "How come the lady hasn't got a drink yet?" More input> fi How come the lady hasn't got a drink yet? hsoub scripts> الفرق بين [] و [[]] على عكس ]، فإن ]] تمنع انقسام الكلمات في ...

مقدمة إلى if في Bash

قد تحتاج إلى تحديد سلاسل إجراءات مختلفة داخل برامج الصدفة (shell scripts) بناءً على نجاح تنفيذ أمر أو فشله، وتأتي أداة if الشرطية من أجل مثل تلك الحالات، وأصغر بنية لغوية لأمر if هي التالية: if TEST-COMMANDS; then CONSEQUENT-COMMANDS; fi تُنفَّذ قائمة أوامر الاختبار TEST-COMMANDS، ثم تُنفَّذ قائمة الأوامر التابعة CONSEQUENT-COMMANDS إن كانت حالة الإعادة لها هي صفر. وتكون حالة الإعادة هي حالة خروج آخر أمر تم تنفيذه، أو تكون صفرًا إن لم تتحقق أي حالة من أوامر الاختبار. يتضمن أمر ...

تثبيت روبي على مختلف المنصات

توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...

الدالة urllib.request.urlopen()‎‎ في بايثون

تفتح الدالة عنوان URL المعطى. البنية العامة urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) ‎المعاملات ‎url سلسلة نصية أو كائن Request، ويتضمّن عنوان URL الذي ستفتحه الدالة. data يجب أن تكون قيمة هذا المعامل كائنًا يحدّد البيانات الإضافية التي ستُرسل إلى المخدّم، أو يأخذ المعامل القيمة None إن لم تكن هناك حاجة لمثل هذه البيانات. (راجع كائنات Request للمزيد من التفاصيل). تستخدم وحدة urllib.request البروتوكول HTTP/1.1 وتُدرج الترويسة Connection:close في طلبات HTTP الخاصّة بها. timeout معامل اختياري يحدّد الفترة ...

الصنف cgi.FieldStorage‎‎ في بايثون

يمكن الوصول إلى البيانات المرسلة إلى المخدّم عن طريق الصنف FieldStorage، وإن كان النموذج يتضمّن حروفًا بترميز غير ترميز ASCII فيمكن استخدام المعامل المفتاحي encoding لتعيين قيمة الترميز المستخدم في الملف الحاوي على النموذج، ويمكن الوصول إلى الترميز المستخدم عادة في الوسم META في قسم HEAD من ملف HTML أو عن طريق الترويسة Content-Type). يقرأ الصنف محتويات النموذج من المدخلات القياسية أو من البيئة (بالاعتماد على قيمة عدد من متغيرات البيئة والمعيّنة حسب معايير CGI). قد يستهلك الصنف المدخلات القياسية؛ ...

الصنف TarFile في بايثون

وظيفة هذا الصنف هي قراءة ملفات الأرشيف من نوع tar والكتابة فيها. لا تستخدم هذا الصنف مباشرة، بل استخدم الدالة tarfile.open()‎ عوضًا عنه. يقدّم كائن TarFile واجهة لملفات الأرشيف من نوع tar. يتكوّن أرشيف tar من تسلسل من الكتل، ويتكوّن عضو الأرشيف (الملفّ المخزّن) من كتلة الترويسة header block متبوعة بكتل البيانات. يمكن تخزين ملف معيّن في أرشيف tar عدّة مرات، ويُمثّل كل عضو في الأرشيف بواسطة كائن TarInfo (راجع قسم كائنات TarInfo للمزيد من التفاصيل). يمكن استخدام كائن TarFile ...

تثبيت أردوينو IDE ورفع الشيفرات على لوحة أردوينو

ستجد في هذه الصفحة شرحًا وافيًا حول تثبيت بيئة أردوينو التطويرة (Arduino IDE) على مختلف أنظمة التشغيل، واستعمال النسخة المحمولة منها، واستعمال تطبيق الويب. سنعرِّج أيضًا على كيفية وصل إحدى أشهر لوحات أردوينو، وهي لوحة UNO، بالحاسوب وتهيئتها لبرمجتها وتشغيل مثالٍ عليها. تسمح لك بيئة أردوينو التطويرية (سنطلق عليها من الآن وصاعدًا «أردوينو IDE») بكتابة شيفرات أردوينو عليها ثمَّ تفسيرها (compiled) إلى شيفرة تنفيذية ورفعها على لوحة أردوينو (برمجة المتحكم المتوضع على اللوحة). تحتوي أردوينو IDE على الكثير من الأمثلة ...

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

SQLite هي مكتبة مكتوبة بلغة C تتيح إنشاء قواعد بيانات على القرص الصلب ولا تحتاج إلى خادوم خاص لمعالجتها، وتتيح الوصول إلى قاعدة البيانات باستخدام نسخة غير قياسية من لغة الاستعلام SQL. تستخدم بعض التطبيقات والبرامج قاعدة بيانات SQLite لتخزين بياناتها الداخلية، ويمكن إنشاء نماذج أولية من التطبيق باستخدام SQLite ثم نقل الشيفرة إلى قواعد بيانات أكبر مثل PostgreSQL أو Oracle. كُتبت وحدة sqlite3 من قبل Gerhard Häring، وتقدّم واجهة SQL متوافقة مع معايير DB-API 2.0 الموصوفة في PEP 249. ...

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي Kotlin

تعرِض هذه الصفحة أنماط كتابة الشيفرات المُتعارَف عليها (conventions) من قِبل مبرمجي لغة Kotlin. تطبيق دليل التنسيق (Applying the Style Guide) لضبط المُنسِّق IntelliJ formatter بما يتوافق مع هذا الدليل يُنصَح بتثبيت إضافة Kotlin بالإصدار 1.2.20 (أو أي إصدارٍ أحدث) وضبط المّحرِّر بالانتقال إلى الإعدادات (Settings) ثمّ المُحرِّر (Editor) ثم نمط الشيفرة (Code Style) ثم Kotlin واختر "ضبط من..." Set from…"‎" في الزاوية اليمنى العُلويَّة ومن القائمة اختر الخيار Predefined style/Kotlin style guide. وللتأكد من تنسيق الشيفرة وفقًا لدليل Kotlin ...

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي Kotlin

تعرِض هذه الصفحة أنماط كتابة الشيفرات المُتعارَف عليها (conventions) من قِبل مبرمجي لغة Kotlin. تطبيق دليل التنسيق (Applying the Style Guide) لضبط المُنسِّق IntelliJ formatter بما يتوافق مع هذا الدليل يُنصَح بتثبيت إضافة Kotlin بالإصدار 1.2.20 (أو أي إصدارٍ أحدث) وضبط المّحرِّر بالانتقال إلى الإعدادات (Settings) ثمّ المُحرِّر (Editor) ثم نمط الشيفرة (Code Style) ثم Kotlin واختر "ضبط من..." Set from…"‎" في الزاوية اليمنى العُلويَّة ومن القائمة اختر الخيار Predefined style/Kotlin style guide. وللتأكد من تنسيق الشيفرة وفقًا لدليل Kotlin ...

ارتباطات Active Record في ريلز

يغطي هذا الدليل مزايا الارتباطات Active Record. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج Active Record. الأنواع المختلفة للارتباطات في Active Record. كيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات. لمَ نستخدم الارتباطات؟ في ريلز، يعدّ الارتباط اتصالًا بين نموذجين من Active Record. لمَ نحتاج إلى الارتباطات بين النماذج؟ لأنها تجعل العمليات الشائعة سهلة وبسيطة في تطبيقك. مثلًا، لنفرض أن لدينا تطبيق ريلز بسيط يحوي نموذجًا للكتّاب ونموذجًا للكتب؛ كل كاتب يملك العديد من الكتب. ...

مساعدو الاستمارة في وحدة العرض في ريلز

تعتبر الاستمارات (forms) في تطبيقات الويب واجهة أساسية للتفاعل مع المستخدم وجلب بيانات منه. ومع ذلك، يمكن أن تصبح عملية إنشاء استمارةٍ وصيانتها عمليةً مملةً بسبب الحاجة إلى التحكم بالتسميات وبخاصياتها الكثيرة. تخلَّص ريلز من هذا التعقيد بتوفير مساعدين للعرض لإنشاء الاستمارات بسهولة. ومع ذلك، بما أن للمساعدين حالات استخدام مختلفة، يحتاج المطورون إلى معرفة الاختلافات بين توابع كل مساعد قبل استخدامها. بعد قراءة هذا الدليل، ستتعلم: كيفية إنشاء استمارات للبحث ونوع مماثل من الاستمارات العامة التي لا تمثل أي ...