ساختارمند کردن CSS

هر کاری وقتی بزرگ می‌شه تعاریفش و نحوه پیشبردش در خیلی جاها متفاوت می‌شه. اگر به این موضوع روی کدهای زبان‌های مختلف نیز نگاه کنیم، همین مسئله صدق می‌کنه و خب در اینجا می‌خواهم در مورد CSS بنویسم (قسمت مهمترش در ادامه نوشته در مورد چرایی استفاده از این گایدلاین‌ها و استانداردها هست، و خب این‌ها همه ابزار و روش هستند که به مرور زمان گزینه‌های بهتری هم معرفی می‌شه).

هفت سال پیش وقتی پروژه‌ای داشتیم که اندازه اون خیلی بزرگتر از بقیه پروژه‌هایی بود که پیش از اون داشتیم، فهمیدیم که نوشتن CSS با سبک سابق چندان کارآمد نخواهد بود. ما تو اون روز تمیز و استاندارد کارها رو انجام می‌دادیم اما چیزی نیاز بود تا بتونه مدیریت بهتری به ما بده برای توسعه پذیر بودن، مفهوم بودن و قابل انتقال بودن به فردی دیگر و البته کار همزمان بیش از یک نفر روی کدها.

نتیجه جستجوی ما خیلی سریع جواب داد و مباحثی مانند SMACSS و BEM دقیقا برای حل چنین مشکلاتی آماده شده بودند.

یکسری اصول و مبانی و استاندارد توافقی برای نوشتن کدهای CSS تا بتوان به اهداف مشخص شده یعنی توسعه پذیری بالا، ساختارمند بودن، قابل فهم بودن و… رسید.

در طول این سال‌ها سعی کردیم گزینه بهتری رو انتخاب کنیم و در آخر رسیدیم به CSS Guidelines که سادگی مد نظر ما رو هم شامل می‌شد. البته از ابتدای امسال به این مقاله رسیدیم که به نظرمان در حال حاضر بهترین نوع نگاه و ساختار رو معرفی کرده.

اما چرا این گایدلاین‌ها مهم هستند؟

شما می‌توانید یک گایدلاین برای خودتان ایجاد کنید و آن‌را مستند کنید و یا اینکه یکی از این گایدلاین‌ها رو انتخاب کنید و از اون پیروی کنید و خب دیگه نیازی به مستند کردن هم وجود ندارد و کافیست که به آن ارجاع دهید.

این گایدلاین‌ها اگر مناسب باشند و درست استفاده شوند، علاوه بر مزایایی که در بالا اشاره شد، تا جای خوبی جلوی کثیف شدن پروژه رو می‌گیره و باعث می‌شه در طول زمان نفرات جدیدی که وارد پروژه می‌شوند کمتر این حرف رو بزنند که پروژه از اول باید بازنویسی بشه.

مثل اکثر موارد دیگه در شروع کار این استانداردها ممکنه زمان‌بر و با مقاومت بقیه روبرو بشه اما در ادامه تاثیرات بسیار زیاد آن مشخص می‌شه پس حتی اگر پروژه به شدت کوچکی دارید هم از این روش‌ها استفاده کنید تا تبدیل به عادت و یک استاندارد در کارتان شود.

پی‌نوشت: در اینجا هم می‌تونید لیستی از Guidelineها رو برای دیگر زبان‌های برنامه نویسی ببینید.