مطالبی که اینجا مینویسم مواردی است که گهگاه برای خودم پیش آمده است و بیشتر حالت روزمره دارد.
آیا از CSS Framework ها مانند Tailwind یا Bootstrap استفاده کنیم یا نه؟
وقتی در شروع یک پروژه هستید، شاید این سوال برای شما پیش آمده باشد که آیا از CSS Framework ها مانند tailwind و bootsrap استفاده کنم یا اینکه همه استایلها را خودتان بنویسید.
صدالبته هرکدام معایب و مزایایی دارد. برخی از آنها را با هم بررسی می کنیم.
استفاده از Vanilla CSS یا همان عدم استفاده از CSS Framework ها
وقتی از هیج فریمورکی استفاده نمی کنید، طبیعتا کنترل همه چیز در اختیار شماست و چیزی شما را محدود نخواهد کرد. ولی طبیعتا برای تازهکاران ممکن است چالشهایی داشته باشد و پیچیدگیهایی ایجاد کند ولی بعد از مدتی همه چیز عادی خواهد شد.
استفاده از این روش تسلط شما را روی CSS بالا خواهد برد و به مرور زمان از کسانی که از اول از CSS Framework استفاده کرده اند مسلطتر و حرفهای تر خواهید بود. بعضا در استخدام ها میبینم که بعضی از دولوپرها بخاطر استفاده از همین فریمورکها اصلا دید درستی نسبت به علت و تنوع عملکرد مشخصات در CSS ندارند. نکته ی جالب اینکه گهگاه حتی به من میگویند که استفاده از CSS خام کاری عبث و بیهوده است.
نکته ی بعدی اینکه در صورت عدم استفاده در بخش CSS ها باید توان بیشتری بگذارید و کد بیشتری بنویسید ولی در بحث حجم کلی پروژه باید بگویم که حتما به نفع شما خواهد بود و سرعت Render هم به طرز قابل ملاحظهای بیشتر و بهتر است.
البته تجربه به من می گوید که شما اگر از این روش هم پیش بروید کم کم خودتان به یک CSS Framework شخصی دست پیدا خواهید کرد.
پیشنهاد من این است که برای پروژههای کوتاه مدت از این روش استفاده نکنید ولی اگر پروژه ی بزرگی دارید به نظر من سراغ فریمورکها نروید. اگر دیزاین سیستم خودتان را دارید این روش ناگزیر است و سایر روشها کمی شما را اذیت خواهند کرد.
اگر می خواهید یک پروژه را سرعتی انجام بدهید و خیلی درگیر CSS نشوید، این روش برای شما مناسب نیست.
استفاده از CSS Framework ها
قطعا سرعت Develop در این روش سریعتر خواهد بود ولی حجم فایل های نهایی بیشتر می شود و سرعت رندر هم کم می شود چون استایل ها و کدهای جاواسکریپتی ناخواسته در گوشه و کنار وجود دارند و همین باعث کندتر شده رندر شما خواهند شد.
یک نکته ی مثبت اینکه همه ی کسانی که روی یک framework خاص کار کردهاند زبان مشترکی دارند و اگر در تیمها جابجا شوند، خوشبختانه مشکلی پیش نمی آید چون استانداردی که مثلا Tailwind دارد برایشان آشنا است.
یک نکته ی دیگر اینکه به نظر من اغلب سایت هایی که از این فریمورکها استفاده می کنند بعد از مدتی به نوعی شبیه هم می شوند (نظر شخصی) و تقریبا قابل حدس هستند.
تجربه بد بعدی نیز این است که اگر نسخه ی جدید بیاید، شما مجبور به بروزرسانی هستید و این بروزرسانی دردناک است! من تجربه بروزرسانی در bootstrap را داشته ام که واقعا ناراحت کننده است (از نسخه های قدیمی مثل ۳ با آخرین ورژن)
در بحث خطایابی و بررسی علت عملکردها برخی کامپوننتها و استایلها، کار کمی سختتر است چون برخی قوانین در بدنه و Core قرار دارند و برخی نیز ممکن است توسط شما ویرایش شده باشند. استفاده از important هم واقعا trace کردن خطا را سخت می کند.
مشکل بعدی این است که گاه و بیگاه یک مشکل امنیتی در آنها ممکن است پیش بیاید و شما مجبور به بروز رسانی هستید و این هم خودش یک مساله است و ممکن است پکیج های دیگری داشته باشید که با این بروزرسانی ها سازگار نباشند و خلاصه به قول قدیمیها دردسر می شود!
البته اینکه با آپدیت ها فیچر جدید به کارتان اضافه می شود را نباید فراموش کنیم که خیلی احساس خوبی به Developer ها می دهد (بدون تلاش فیچر جدید دارید)
البته به نظر من Tailwind بسیار عالی و کاربردی است و قابل سفارشی سازی و منعطف است و در این شاخه فعلا از بهترین انتخابها است. البته کمی طول می کشد که روی آن مسلط شوید ولی ارزش وقت گذاشتن را به نظر من دارد.
جمع بندی
پیشنهاد من به شما این است که در هر شاخهای از وب که کار می کنید، سعی کنید که دید عمیق داشته باشید ولی توجه داشته باشید، همیشه زمان و هزینه در انتخاب مسیر بسیار تعیین کننده هستند.
با این توضیح به نظر من استفاده از CSS Framework ها فقط وقتی که روش اول در دسترس نیست، خوب است. یعنی یا وقت ندارید یا واقعا CSS و ظاهر خیلی نقض مهمی در پروژه ندارد، یا اینکه بودجه کافی برای این کار ندارید، سراغ فریمورکها بروید، وگرنه اگر می خواید Developer بهتری باشید و دستتان هم باز باشد و کمتر به مشکل بربخورید، پیشنهاد من استفاده از Vanilla CSS یا همان عدم استفاده از فریمورکها است.
مطلبی دیگر از این انتشارات
توسعه دهندگان انعطاف ناپذیر و نقش سمی آنها در تیم های نرم افزاری
مطلبی دیگر از این انتشارات
فرم های لاگین: رایج ترین مشکلات و راه حل های آن
مطلبی دیگر از این انتشارات
کالبدشکافی مشکلات و حوادث: یادگیری از شکست