نتائج البحث

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

أنماط المخرجات في Sass

بالرغم من أنّ النمط الافتراضي لمخرجات CSS في Sass لطيفٌ ويعكسُ بِنية المستند، إلا أنَّ الأذواق والاحتياجات تختلف من شخص لآخر، لذا تدعمُ Sass عدة أنماط أخرى. تسمح لك Sass بأن تختار بين أربعة أنماط مختلفة للإخراج عن طريق ضبط الخيار ‎:style أو استخدام الراية ‎--style في سطر الأوامر. ملاحظة: لا يدعم مصرّف Sass الذي يمكن تثبيت باستخدام مدير الحزم npm النمط :nested؛ إذا أردتَ استخدامه فثبت مصرّف Sass كما هو موضّح في صفحة تثبيت وضبط واستخدام Sass. النمط ‎المتشعّب ...

خطوات إعادة التصميم (Refactoring)

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

أنماط الشيفرات المُتعارَف عليها ما بين مبرمجي 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 ...

استبدال المُنشئ بتابع التصميم (Replace Constructor with Factory Method)

المشكلة لديك مُنشئ (constructor) معقد يقوم بما هو أكثر من مجرد وضع قيم المعامل في حقول الكائن. الحل إنشاء تابع تصميم واستخدامه لاستبدال استدعاءات المُنشئ. مثال قبل إعادة التصميم وجود منشئ معقد للصنف Employee: في لغة Java: class Employee { Employee(int type) { this.type = type; } //... } في لغة C#‎: public class Employee { public Employee(int type) { this.type = type; } //... } في لغة PHP: class ...

تقنيات إعادة التصميم (Refactoring Techniques)

إنشاء التوابع تستهدف إعادة التصميم بشكل رئيسيٍّ إنشاء التوابع الصحيحة المناسبة، إذ تكون التوابع الطويلة سببًا للمشاكل في كثيرٍ من الحالات، وتجعل شيفرات بعض التوابع منطق التنفيذ (execution logic) غامضًا ويصبح التابع بهذا عصيَّ الفهم من جهةٍ وصعب التغييرٍ من جهة ثانية. يشمل هذا القسم من الحلول كلَّ ما يتعلق بالتوابع وإزالة التكرار (duplicates) في الشيفرة ليسمح بإجراء التطويرات المستقبليّة، وهذه التقنيات هي: استخراج التوابع (Extract Methods): والتي تتمثل بوجود أجزاء من الشيفرة يُمكن عزلها وتجميعها سويةً. دمج التوابع (Inline ...

مطابقة الأنماط باستخدام ميزات Bash

مدى المحارف Character Ranges خلافًا لأمر grep والتعابير النمطية (regular expressions) فإن لدينا حالات كثيرة لمطابقة الأنماط التي يمكنك إجراؤها في الصدفة مباشرة دون الحاجة إلى استخدام برنامج خارجي، فلعلك تعلم أن محرفي * و ? يطابقان أي نص أو محرف وحيد -على الترتيب-، ومن أجل مطابقة هذين المحرفيْن تحديدًا، ضع حول كل منهما علامات اقتباس مزدوجة: hsoub ~> touch "*" hsoub ~> ls "*" * يمكنك استخدام الأقواس المربعة لمطابقة أي محرف أو مجموعة محارف بداخل تلك الأقواس إن فُصلت أزواج المحارف ...

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

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

الصنف ‎:link

الصنف الزائف ‎:link في CSS (أي pseudo-class) يُمثِّل عنصرًا لم تتم زيارته من قبل، ويُطابِق جميع عناصر و <area> و <link> التي لها الخاصية href ولم تتم زيارتها بعد. a:link { color: red; } الأنماط المُعرَّفة للصنف الزائف ‎:link سيتم تجاوزها بأيّة أصناف زائفة تليها خاصة بالروابط (مثل ‎:active أو ‎:hover أو ‎:visited) التي لها نفس درجة التحديد. ولتطبيق الأنماط تطبيقًا صحيحًا فضع قاعدة ‎:link قبل جميع القواعد الخاصة بالروابط وفق الترتيب ‎:link ثم ‎:visited ثم ‎:hover ثم ‎:active. ملاحظة: استخدم ...

Document.enableStyleSheetsForSet()‎

يفعّل التّابع Document.enableStyleSheetsForSet()‎ صفحات الأنماط التي توافق الاسم المُحدّد في مجموعة صفحات الأنماط الحاليّة، ويُعطّل جميع صفحات الأنماط الأخرى (عَدا تلك التي بدون عنوان، والتي تكون دائمًا مُفعّلة). البنية العامة document.enableStyleSheetsForSet(name) name اسم صفحات الأنماط المرغوب تفعيلها. ستُفعّل جميع صفحات الأنماط التي توافق هذا الاسم، لكن ستُعطَّل جميع صفحات الأنماط الأخرى التي تملك عنوانًا. مرّر سلسلةً نصيّةً فارغةً لهذا المُعامل لتعطيل جميع صفحات الأنماط البديلة والمُفضّلة (دون صفحات الأنماط الدّائمة التي لا تملك خاصّية title). ملاحظات تُوافَقُ العناوين يكون حسّاسًا ...

Document.preferredStyleSheetSet

تُعيد مجموعة صفحات الأنماط المُفضّلة حسب ما ضبطه كاتب الصّفحة. وهي للقراءة فقط. البنية العامّة preferredStyleSheetSet = document.preferredStyleSheetSet تُشير قيمة المتغيّر preferredStyleSheetSet إلى مجموعة صفحات الأنماط المُفضّلة من طرف كاتب الصّفحة. يُحدَّدُ هذا من خلال ترتيب تعريفات صفحات الأنماط وترويسة HTTP ذات العنوان Default-Style. إن لم تكن هناك مجموعة صفحات أنماط مُفضَّلة من طرف الكاتب، فستكون القيمة المُعادة سلسلةً نصية فارغة (""). مثال if (document.preferredStyleSheetSet) { console.log("مجموعة صفحات الأنماط المُفضّلة هي:" + document.preferredStyleSheetSet); } else { console.log("لا توجد صفحة ...

Sass/@ rules

تدعم Sass جميع قواعد CSS التي تبدأ بالرمز @، فضلًا عن أخرى خاصَّة بلغة Sass تسمى بالتعليمات (directives). لهذه القواعد تأثيرات مختلفة في Sass سنفصلها بعد قليل. انظر أيضًا تعليمات التحكم (control directives) وتعليمات المخاليط (mixin directives). القاعدة ‎@import توسّع Sass استخدامات القاعدة ‎@import الخاصَّة بلغة CSS للسماح لها باستيراد ملفات SCSS وملفات Sass. ستُدمج جميع ملفات SCSS وملفات Sass المُستورَدة معًا في ملف CSS واحدٍ. إضافةً إلى ذلك، يمكن استخدام المتغيرات أو المخاليط (mixins) المُعرّفة في الملفات المستوردة في ...

استبدال الأصناف الفرعية بالحقول (Replace Subclass with Fields)

المشكلة لديك أصناف فرعية تختلف فقط في توابع (إعادة الثوابت) الخاصة بها. الحل استبدال التوابع بالحقول في الصنف الأب وحذف الأصناف الفرعية. مثال قبل إعادة التصميم لدينا الصنف Person الذي يحتوي على الصنفيين الفرعيين Male و Female؛ يختلف هذان الصنفان في القيمة المعادة فقط. يحتوي الصنف Person يحتوي على الصنفيين الفرعيين Male و Female. بعد إعادة التصميم وضع حقول في الصنف Person الأب مكان مقابلة لحقول الصنف الفرعي Male و Female ثم حذف هذان الصنفان. حذف الصنفان الفرعيان Male و ...

Document.selectedStyleSheetSet

تُعيد اسم مجموعة صفحات الأنماط الجاري استعمالها حاليًّا. البنية العامة currentStyleSheetSet = document.selectedStyleSheetSet document.selectedStyleSheet = newStyleSheetSet عند الإعادة، سيحمل المتغيّر currentStyleSheetSet اسم مجموعة صفحات الأنماط الجاري استعمالها حاليًّا، يُمكنك كذلك ضبط مجموعة صفحات الأنماط باستعمال هذه الخاصيّة. ضبط قيمة لهذه الخاصيّة مُكافئٌ لاستدعاء التّابع document.enableStyleSheetsForSet()‎ باستخدام القيمة currentStyleSheetSet، ثمّ ضبط نفس القيمة للخاصية lastStyleSheetSet أيضًا. مُلاحظة: قيمة هذه الخاصيّة حيّة؛ تغيير الخاصيّة disabled على صفحات الأنماط سيُؤثّر على قيمة هذه الخاصيّة. مثال console.log("مجموعة صفحات الأنماط الجاري استعمالها حاليًّا:‏" + document.selectedStyleSheetSet); document.selectedStyleSheetSet = ...

Document.styleSheetSets

تُعيد قائمة بمجموعات صفحات الأنماط المُتاحة على المُستند حاليًّا. البنية العامة sets = document.styleSheetSets عند الإعادة، سيحمل المتغيّر sets قائمة بمجموعات صفحات الأنماط المُتاحة على المُستند حاليًّا. مثال لنَفرِض أنّ لدينا عنصر قائمة <ul> بالمُعرِّف ‎"sheetList" (ID)‎، يُمكنك ملء هذه القائمة بأسماء مجموعات صفحات الأنماط المُتاحة بشيفرة مُشابهة لما يلي: var list = document.getElementById("sheetList"); var sheets = document.styleSheetSets; list.innerHTML = ""; for (var i = 0; i < sheets.length; i++) { var item = document.createElement("li"); item.innerHTML = sheets[i]; list.appendChild(item); } ملاحظات ...

Document.lastStyleSheetSet

تُعيد آخر مجموعة صفحات أنماط مُفعَّلة؛ تتغيّر قيمة هذه الخاصية كلّما تغيّرت قيمة الخاصية document.selectedStyleSheetSet. البنية العامة lastStyleSheetSet = document.lastStyleSheetSet قيمة المتغير lastStyleSheetSet ستُشير إلى آخر مجموعة صفحات أنماط ضُبِطت. إن لم تتغيّر مجموعة صفحات الأنماط الحاليّة عبر تعيين قيمة للخاصيّة document.selectedStyleSheetSet، فإنّ القيمة المُعادة ستكون null. لاحظ بأن هذه القيمة لا تتغير عند استدعاء التّابع document.enableStyleSheetsForSet()‎. مثال var lastSheetSet = document.lastStyleSheetSet; if (!lastSheetSet) { lastSheetSet = "لم تتغير صفحة الأنماط بعد"; } console.log("آخر مجموعة صفحة أنماط كانت: " + lastSheetSet); انظر ...

تبديل القيمة إلى مرجع (Change Value to Reference)

المشكلة وجود العديد من النُسَخ المتماثلة من صنفٍ واحدٍ تحتاج إلى استبدال كائنٍ واحدٍ بها. الحل تحويل الكائنات المتماثلة إلى كائن مرجعي واحد. مثال قبل إعادة التصميم مخطط يوضح وجود العديد من النُسَخ المتماثلة من الصنف Order: مخطط يوضح وجود العديد من النُسَخ المتماثلة من صنفٍ Order. بعد إعادة التصميم تحويل الكائنات المتماثلة إلى كائن مرجعي واحد: تحويل الكائنات المتماثلة إلى كائن مرجعي واحد. لم إعادة التصميم؟ في العديد من الأنظمة، يمكن تصنيف الكائنات على أنها إمَّا قيم أو مراجع. ...

تبديل رموز الأنواع بالحالة/الاستراتيجية (Replace Type Code with State/Strategy)

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

التابع Regexp.union‎ في روبي

يُعيد التابع union كائنًا من النوع Regexp، والذي يمثل اتحاد الأنماط المعطاة؛ أي أنه سيتطابق مع أي من تلك الأجزاء. يمكن أن تكون الأنماط المعطاة كائنات من النوع Regexp، وفي هذه الحالة سيتم الاحتفاظ بخياراتها، أو يمكن أن تكون سلاسل نصية. إذا لم يتم إعطاء أية أنماط، فسيعيد التابع union القيمة /(‎?!‎)/. السلوك سيكون غير محدد إذا احتوى أيُّ من الأنماط المعطاة على التقاط (capture). ملاحظة: ستحاول روبي تحويل المعاملات المُمررة للتابع union إلى تعبيرات نمطية حرفية ( regular expression literal) عبر التابع ...

العنصر

يُحدِّد العنصر <link> العلاقات بين المستند الحالي وبين مورد خارجي (external resource)؛ من استخدامات هذا الوسم تتضمن تعريف علاقة بين الصفحات للتنقل بينها، بيد أنَّ أكثر استخدامات هذا العنصر شيوعًا هو تضمين صفحات الأنماط. استخدام الشكل الآتي للعنصر <link> لتضمين صفحة أنماط في المستند: <link href="style.css" rel="stylesheet"> بطاقة العنصر تصنيفات المحتوى البيانات الوصفية المحتوى المسموح لا يوجد، فهذا العنصر فارغ. الوسم المختصر لمّا كان هذا العنصر فارغًا، فيجب توفير وسم البداية وحذف وسم النهاية. العناصر الأب أي عنصر يقبل وجود ...

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