16

اختيار أسماء المتغيرات ( Variables in Sass ) - مترجم

السلام عليكم ورحمه الله

أنا من عشاق Sass & Compass وأحب قرأة ومعرفة الجديد وكل ما يخص هذة التكنولوجيا لتحسين المستوى الشخصى فى البرمجة, وبفضل الله ترجمت هذا الموضع ليستفيد غيرى مثل ما إستفدت.


المتغيرات في Sass هي وسيلة قوية لتحديد القيم في مكان واحد والتي يمكن استخدامها في أماكن متعددة خلال العمل فى مشروعك.

المتغيرات تسمح لك لإجراء تغييرات من نقطة مركزية دون الحاجة إلى استخدام البحث والاستبدال عبر الملفات المتعددة.

ولكن من الصعب اختيار أسماء جيدة لهذة المتغيرات !

إذا لم تتوخى الحذر فى أسماء المتغيرات، فإنه من السهل جدا ان تنسى، وتفقد السيطرة على المتغيرات.

ومع ذلك، من خلال اتباع بعض الإرشادات البسيطة يمكنك الحفاظ على السيطرة ... والتحكم فى إطار العمل الخاص بك!

إستخدم أسماء دلالية للمتغيرات (semantic variable names)

تخيل للحظة أن لون العلامة التجارية الأساسية للعميل هو اللون الأحمر، فسميت أنت المتغير red$. وبعد ستة أشهر قرر قسم التسويق بإعادة تصميم لون العلامة التجارية للشركة الأساسي للون الأزرق بدلاً من الأحمر.

تغيير قيمة red$ من السهل بما فيه الكفاية، ولكن المتغير لا يحتوي على وصف من الغرض المقصود منه.

بدلاً من وصف ما المتغير يشبه في الاسم، إصف وظيفته أو الغرض منة. وبعبارة أخرى، في محاولة لاختيار الأسماء الدلالية للمتغيرات الخاصة بك.

// مثل سىء
$red: red;
$yellow: yellow;

// مثل أفضل
$brand-color: red;
$accent-color: yellow;

الإعتماد على إتفاقية تبادل مفيدة (useful conventions)

من المهم أن تأتي مع بعض الإتفاقيات جيدة التسمية للمتغيرات الخاصة بك بحيث تكون سهلة التذكر. على سبيل المثال، يمكنك تسمية الألوان كالأتى -color:

// الألوان الأساية
$base-color: #333;
$brand-color: red;
$brand-80-color: rgba($color-brand, 0.8);
$accent-color: yellow;

أو، إضافة أقسام مثل -header أو -footer لأقسام محددة:

// Header
$header-height: 100px;
$header-background-color: $color-brand;

// Footer
$footer-height: 200px;
$footer-background-color: #aaa;

الحفاظ على مركزية التكوين (config)

افضل بوضع كل متغيراتى فى ملف واحد تحت إسم _config.scss , واستخدام import@ لتوجيهه وبهذه الطريقة، فإن كل الملفات الأخرى يمكنها الوصول إلى هذه المتغيرات.


مرجع

الناشر - iFrankZA@

تمت الترجمه - ElmahdiMahmoud@


التعليق السابق

شكراَ على المشاركة m.dayoub@

لدى نقطتين, أول نقطة هو سؤال للتأكيد, والثانى هو إقتراح, إذا سمحت لى :)

  1. عندما قلت (ربما يؤدي للبطء). هل قصدك بطء الأداء (performance) ام تقصد بطء الإطار العملى؟

  2. (أفضل وضع كل مجموعة من المتغيرات المتشابهة في الوظيفة بملف منفصل و استيراده عند الحاجة) فى رأى الشخصى هو رأى جيد جداً, ولكن!! هذا الحل قد يناسب المشاريع الصغيرة, ولكنه غير موفق للمشاريع كبيرة/ضخمة الحجم, والهدف هنا المشاريع الكبيرة تطلب تجهيزات كبيرة لبناء واجهة الموقع وبذلك سيتواجد لدى عدد كبير من الملفات ولكن هذه ليست المشكله! المشكلة بلنسبة لى هى انى اعمل مع فريق عمل كبير وكل مبرج له طريقة الخاصة لإطار العمل ومع إستخدام هذا الأقتراح قد لايكون مناسبـاُ للأخرين.


هذا مثال لتكوين هيكل جيد لمشروعك طبقاً ل thesassway.com

stylesheets/
|
|-- modules/              //وحدات مشتركة
|   |-- _all.scss           //الحصول على جميع وحدات
|   |-- _utility.scss      //اسم الوحدة 
|   |-- _colors.scss     //اى وحدات اخرى...
|   ...
|
|-- partials/                      //جزئيات
|   |-- _base.sass             //mixins + متغيرات 
|   |-- _buttons.scss        //الأزرار
|   |-- _typography.scss  //أسلوب الطباعة
|   |-- _reset.scss             //إعادة التشكيل
|   ...
|
|-- vendor/                     //sass,css من مشاريع اخرى
|   |-- _colorpicker.scss
|   |-- _jquery.ui.core.scss
|   ...
|
`-- main.scss                 //الملف الرئيسى

الأنماط الأولية

// Modules and Variables
@import "partials/base";

// Partials
@import "partials/reset";
@import "partials/typography";
@import "partials/buttons";
@import "partials/figures";
@import "partials/grids";
// ...

// Third-party
@import "vendor/colorpicker";
@import "vendor/jquery.ui.core";

لتفاصيل أكثر على هذا الرابط


مرة أخرى شكراً على مساهمتك :)