نتائج البحث

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

استخراج الصنف (Extract Class)

المشكلة وجود صنفٍ (class) واحدٍ يقوم بمهامٍ عديدةٍ يمكن توزيعها على صنفين. الحل إنشاء صنفٍ جديدٍ ونقل بعض الحقول (fields) والتوابع (methods) إليه، والتي تتعلَّق بالمهام الوظيفيّة (functionality) لهذا الصنف الجديد. مثال قبل إعادة التصميم يحتوي الصنف Person على عددٍ من الحقول كاسم الشخص (name) ورمز منطقة المكتب (officeAreaCode) ورقمه (officeNumber)، وتابعًا للحصول على هذا الرقم باسم getTelephoneNumber، كما في مخطط الأصناف الآتي: الصنف Person يحتوي على عددٍ من الحقول كاسم الشخص (name) ورمز منطقة المكتب (officeAreaCode) ورقمه (officeNumber)، وتابعًا ...

الدالة ()os.get_exec_path في بايثون

تُعيد الدالة قائمة بالمُجلَّدات التي سيتُم البحث فيها عن الملفات التنفيذيّة عند تشغيل عملية ما. البنية العامة get_exec_path(env=None) المعاملات env قاموس متغيّرات البيئة الذي سيُبحَث فيه عن المتغيّر PATH. تُسنَد القيمة None للوسيط env، ويُستخدَم القاموس os.environ للحصول على متغيّر البيئة PATH افتراضيًا. القيمة المعادة تُعيد الدالة قائمة بالمُجلَّدات التي سيتم البحث فيها عن الملفات التنفيذيّة، كما يحدث في الصدفة (shell)، عند تشغيل عملية ما. أمثلة يعرض المقتطف أدناه مثال عن استخدام الدالة للحصول على مسارات التي سيُبحَث فيها عن ...

الدالة ()os.get_exec_path في بايثون

تُعيد الدالة قائمة بالمُجلَّدات التي سيتُم البحث فيها عن الملفات التنفيذيّة عند تشغيل عملية ما. البنية العامة get_exec_path(env=None) المعاملات env قاموس متغيّرات البيئة الذي سيُبحَث فيه عن المتغيّر PATH. تُسنَد القيمة None للوسيط env، ويُستخدَم القاموس os.environ للحصول على متغيّر البيئة PATH افتراضيًا. القيمة المعادة تُعيد الدالة قائمة بالمُجلَّدات التي سيتم البحث فيها عن الملفات التنفيذيّة، كما يحدث في الصدفة (shell)، عند تشغيل عملية ما. أمثلة يعرض المقتطف أدناه مثال عن استخدام الدالة للحصول على مسارات التي سيُبحَث فيها عن ...

توحيد التعبير الشرطي (Consolidate Conditional Expression)

المشكلة وجود عدة شروط تؤدي إلى نفس النتيجة أو الإجراء. الحل توحيد جميع هذه الشروط في تعبير وحيد. مثال قبل إعادة التصميم وجود عدة شروط يتم التحقق منها في الشيفرة: في لغة Java: double disabilityAmount() { if (seniority < 2) { return 0; } if (monthsDisabled > 12) { return 0; } if (isPartTime) { return 0; } // حساب مقدار العجز //... } في ...

الحفاظ على الكائن كاملًا (Preserve Whole Object)

المشكلة جلب عدة قيم من أحد الكائنات، ثم تمريرها كمعاملات إلى أحد التوابع. الحل حاول تمرير الكائن بالكامل بدلًا من ذلك. مثال قبل إعادة التصميم جلب قيمة درجة الحرارة المنخفضة low والمرتفعة high من الكائن daysTempRange ثم تمريرهما إلى التابع ()withinTange: في لغة Java: int low = daysTempRange.getLow(); int high = daysTempRange.getHigh(); boolean withinPlan = plan.withinRange(low, high); في لغة C#‎: int low = daysTempRange.GetLow(); int high = daysTempRange.GetHigh(); bool withinPlan = plan.WithinRange(low, high); في لغة PHP: $low = $daysTempRange->getLow(); $high = $daysTempRange->getHigh(); $withinPlan = $plan->withinRange($low, $high); في لغة Python: ...

الوسيط (Middle Man)

توصيف المشكلة عندما يكون للصنف (class) مهمةٌ واحدةٌ فقط وهي تفويض المهام (delegation) لصنفٍ آخر، فما أهمية وجوده بالأصل؟ أسبابها قد تنتج المشكلة عن التخلُّص المفرط من الاستدعاءات المتسلسلة كعلاجٍ لمشكلة سلاسل الرسائل (message chains). أو قد تنتُج عن النقل التدريجيّ للصنف (class) إلى أصناف أخرى ليبقى الصنف الأصليّ فارغًا إلا من أوامر التفويض (delegation). وما الحل؟ حذف الوسيط (remove middle man) إن كانت معظم أصناف التابع (method's classes) تفوِّض المهام (delegate) إلى صنفٍ آخر. إليك المزيد ستحصل بحلِّ المشكلة ...

Laravel Socialite

مقدمة بالإضافة إلى الاستيثاق النمطي القائم على النموذج، يوفر Laravel أيضًا طريقة بسيطة ومريحة للاستيثاق مع موفري OAuth باستخدام Laravel Socialite، وهو يدعم حاليا الاستيثاق مع Facebook و Twitter و LinkedIn وGoogle و GitHub و Bitbucket. ملاحظة: المحولات للمنصات الأخرى موجودة في موقع مجتمع Socialite Providers. التثبيت استخدم Composer لإضافة الحزمة إلى اعتماديّات مشروعك لبدء استخدام Socialite: composer require laravel/socialite الضبط ستحتاج قبل استخدام Socialite إلى إضافة بيانات اعتماد لخدمات OAuth التي يستخدمها تطبيقك في ملف الضبط config/services.php ويجب استخدام ...

بذر قواعد البيانات بالبيانات الاختبارية Seeding في Laravel

مقدمة يتضمّن Laravel تابع بسيط لملء قاعدة البيانات الخاصة بك مع بيانات للتجربة باستخدام أصناف البذر. ستجد جميع أصناف البذر في مجلّد database/seeds، وقد تحتوي أصناف البذر على أي اسم تريده، لكن ربما يجب عليك اتباع بعض المعايير المعقولة مثل UsersTableSeeder ...إلخ. وبشكل افتراضي، سيكون صنف DatabaseSeeder معرّف لك، ومن خلال هذا الصنف يمكنك استخدام أسلوب call لتشغيل بقيّة أصناف البذر، مما يسمح لك بالتحكم بترتيب البذر. كتابة منشئات البذور لتوليد منشئ البذرة (seeder)، نفّذ أمر make:seeder Artisan وستجد جميع ...

الشيفرة الميتة (Dead Code)

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

Laravel Horizon

مقدمة يوفّر Horizon لوحة تحكم جميلة و إعدادات برمجيّة لطوابير ‏‎(Queues) Laravel المبنيّة على Redis، فهو يوفّر لك مراقبة سهلة للمقاييس الأساسية لنظام الطوابير مثل إنتاجيّة العمل ووقت التشغيل، وفشل المهام. ستبقى جميع عمليّات الضبط في ملف ضبط واحد وبسيط ممّا يضمن التعاون الكامل بين أعضاء فريقك. التثبيت تنبيه: يتطلّب ‎،Horizon نظرًا لاستخدامه لإشارات العمليّة غير متزامنة، إلى نسخة PHP‏ 7.1‏ فما فوق. ويجب عليك التأكّد من تعيين محرك الطابور إلى Redis في ملف ضبط الطابور. يمكنك استخدام Composer لتثبيت ...

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