آیا طراحی سایت با CMS های آماده خوب است یا نه؟ شاید اگر شما هم قصد راه اندازی سایت خود را دارید این سوالی باشد که ذهن شما را مشغول کرده و با پاسخ های متعددی روبرو شدید. زیاد نگران نباشید چراکه حتی برخی از برنامه نویس های کم تجربه هم در این خصوص دانش کافی ندارند.
قبل از هر چیز باید با مفهوم CMS یا همان سیستم مدیریت محتوا بهتر آشنا شویم. همانطور که از اسم آن مشخص است، در واقع سیستم نرم افزاری، برای مدیریت و ویرایش محتوای سایت شما است. بنابراین باید توجه داشته باشید که هر وب سایتی که محتوای آن از طریق یک پنل و بصورت داینامیک، بدون وابستگی به برنامه نویس مدیریت میشود، در واقع یک CMS است. اما آنچه با این نام بیشتر در ذهن مخاطبین نقش میبندد، نرم افزار های آماده و سایت سازی مثل wordpress و joomla هست. بله اینها هم نوعی از سیستم مدیریت محتوا هستند اما در واقع باید به درستی دسته بندی شوند.
سیستم های مدیریت محتوا را میتوانیم به سه دسته تقسیم کنیم:
1. CMS های ساده برای پروژه های کوچک: در واقع نرم افزارهایی نظیر wordpress و joomla در این دسته قرار میگیرند. نرم افزار هایی که از قبل نوشته شده اند و طیف وسیعی از نیاز ها را تامین میکنند. این دسته برای راه اندازی وب سایت های معمولی یا پروژه های کوچک گزینه های خوبی به شمار می آیند. به دلیل اینکه علاوه بر ساختار پایه، دارای ماژول های آماده متعدد و قالب های گرافیکی متنوع و زیبایی هستند که به هزینه بسیار کم و گاها کاملا رایگان قابل استفاده اند.
2. CMS های کاملا سفارشی: این دسته بصورت بالقوه وجود خارجی ندارند و بر اساس یک نیاز جدید نوشته میشوند. مثلا وقتی پروژه ای داشته باشید که نرم افزار های دسته اول پاسخگوی نیاز شما نباشند، باید یک سیستم مدیریت محتوای اختصاصی برای شما و مطابق با نیاز های شما تولید شود. طبعا این روش نیاز به زمان و هزینه به مراتب بیشتری نسبت به روش اول دارد اما شما چاره ای ندارید چون در پروژه های بزرگ و توسعه پذیر به هیچ عنوان پیشنهاد نمیشود که از دسته اول استفاده کنید. اما چیزی که در تولید CMS های سفارشی بسیار چالش برانگیز است این است که برنامه نویس شما تا چه حد توانایی کد نویسی استاندارد و مطابق با تکنولوژی های روز دنیا را دارد. حتی اگر برنامه نویس حرفه ای و خوبی پیدا کنید، نمیتواند به تنهایی در تمامی حوزه های طراحی دیتابیس، طراحی و پیاده سازی قالب، امنیت، سئو و موارد متعدد دیگر خوب عمل کند. پس یا یک تیم لازم دارید یا برخی از این بخش ها با افت و خیز کیفی و کمی مواجه خواهند شد.
3. CMS های قدرتمند با ساختاری قابل اعتماد تر: راهکاری که میتواند ترکیبی از مزایای دو دسته قبلی را، یکجا داشته باشد. این CMS ها مثل دسته اول، از قبل نوشته شده اند اما دارای ماژول ها و پلاگین های متعدد نیستند و قالب آماده ای هم برای انها پیدا نمیکنید. در واقع این CMS ها برای انجام پروژه هایی استفاده میشوند که اولا بزرگ بوده و نیاز به سفارشی سازی و توسعه دائمی دارند، دوما یک ساختار استاندارد و قابل اعتماد را در پروژه لحاظ میکنند. برنامه نویسانی که از این CMS ها برای انجام پروژه های بزرگ استفاده میکنند، در واقع از هسته، ساختار و معماری پیشرفته این CMS ها استفاده میکنند ولی تمامی ماژول ها و بخش های مورد نیاز پروژه را خودشان از پایه مینویسند. عملا فقط از هسته و ساختار استاندارد و قابل اعتماد این دسته از سیستم های مدیریت محتوا برای افزایش مزایای خروجی نهایی پروژه استفاده میکنند. یکی از این CMS ها که طی چند سال گذشته بسیار مورد توجه قرار گرفته است، PyroCMS است. این نرم افزار بر روی فریمورک codeigniter و اخیرا Laravel توسعه داده شده و یک هسته فوق العاده عالی برای راه اندازی هر نوع پروژه به شمار می اید.
در جلسه ای بودم که یک برنامه نویس اینطور اظهار کرد که فلان سایت چون با CMS نوشته شده پس معماری نداشته و قابل توسعه نیست. چیزی که خیلی توجه مرا جلب کرد، همین عبارت معماری ندارد بود. متوجه شدم هنوز خیلی از برنامه نویسان با CMS های مخصوص توسعه پروژه های بزرگ آشنایی ندارند و از CMS همان ذهنیت وردپرس و جوملا را دارند. اتفاقا آن سایت با PyroCMS نوشته شده بود. دیتابیس پروژه توسط یکی از تحلیلگران بانک اطلاعاتی به نام و شناخته شده انجام شده بود و اساسا Pyro به دلیل استفاده از فریمورک codeigniter و ساختار MVC اگر در کنار یک دیاگرام دیتابیس قوی قرار بگیرد و توسط یک برنامه نویس خوب و مسلط توسعه پیدا کند میشود گفت یکی از بهترین معماری های موجود در سطح اول برنامه نویسی کشور را خواهد داشت.