توسعهٔ سی‌ام‌اس اختصاصی یا استفاده از نمونه‌های اپن‌سورس؟

توسعهٔ سی‌ام‌اس اختصاصی یا استفاده از نمونه‌های اپن‌سورس؟

هر وب‌سایتی از یکسو می‌بایست به‌ سادگی قابل‌استفاده و آپدیت کردن باشد و از سوی دیگر به‌ بهترین شکل ممکن حداقل‌های بهینه‌سازی برای موتورهای جستجو (سئو) در آن رعایت شده باشد و بتواند با همان سرعتی رشد کرده و تطبین یابد که کسب‌وکار آنلاین، وبلاگ یا هر سرویس دیگری که آن سایت برایش توسعه داده شده، پیش می‌رود. هر صاحب کسب‌وکاری که بخواهد یک وب‌سایت داشته باشد، روزی باید به این سؤال پاسخ دهد که «آیا باید به توسعهٔ سی‌ام‌اس اختصاصی خود بپردازد یا به استفاده از نمونه‌های اپن‌سورس روی آورد؟» که در این زمینه دیدگاه‌های کاملاً متفاوتی وجود دارد که در این مقاله قصد داریم این قضیه را از جهات مختلفی مورد بررسی قرار دهیم.

اولین کسی باشید که به این سؤال پاسخ می‌دهید

درآمدی بر مزیت‌های استفاده از سی‌ام‌اس‌های اپن‌سورس
پیش از هرچیز، بهتر است برخی از مهم‌ترین فیچرهای سیستم‌های مدیریت محتوای اپن‌سورس و رایگانی همچون وردپرس، جوملا، دروپال را برشمریم:

- توسعهٔ سریع
- ساپورت از طرف جامعهٔ توسعه‌دهندگان آن سی‌ام‌اس
- حل بسیاری از مشکلات رایج از قبل
- نیاز به نگهداری کمتر
- مد نظر قرار داده شدن امنیت تا حد قابل‌توجهی
- رفع سریع باگ‌ها
- دسترسی به سورس‌کد
- آپدیت‌های هفتگی و …

گرچه استفاده از سی‌ام‌اس‌های رایگان و اپن‌سورس مزایای بسیاری دارا است، اما استفاده از آن‌ها همیشه به‌ عنوان بهترین گزینه در نظر گرفته نمی‌شود! در پاسخ به این سؤال که چه‌ زمانی از یک سولوشن اپن‌سورس، همچون وردپرس که در حال‌ حاضر پراستفاده‌ترین سی‌ام‌اس است، می‌بایست استفاده کرد می‌توان گفت که:

وقتی نیاز به یک راه‌کار رایگان و سریع داشته و اینکه قالب و عملکرد سایت همچون قالب سایت صدها سایت دیگر باشد خیلی برایمان فرقی نکند!

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

نکته‌ای که در اینجا می‌بایست حتماً به آن توجه کرد این است که اکثر کسانی که با سی‌ام‌اس‌هایی از این دست کار می‌کنند، به‌ معنای واقعی کلمه دولوپر نیستند بلکه بیشتر طراح سایت می‌باشند! به‌ عبارت دیگر، در بیشتر مواقع ایشان می‌توانند قالب سایت‌ را دستکاری کنند و بسته به نیازهای مشتری آن‌ را تغییر دهند و در صورتی‌ که نیاز به یک باگ‌فیکس باشد و یا مشتری نیاز داشته باشد که بخشی اختصاصی برایش روی آن پلتفرم به‌ خصوص توسعه‌ دهند، به احتمال قریب به یقین ایشان از عهدهٔ این‌ کار برنخواهند آمد مگر اینکه یک فول‌استک دولوپر به‌ معنای واقعی کلمه باشند (برای آشنایی بیشتر با این اصطلاح، به مقالهٔ معنی و مفهوم توسعه‌ دهنده Full-stack چیست؟ مراجعه نمایید.)

چه‌ زمانی می‌بایست دست به توسعهٔ سی‌ام‌اسی اختصاصی خود زد؟
خیلی از دولوپرها فکر می‌کنند که می‌توانند یک سی‌ام‌اس انقلابی توسعه داده که گوی سبقت را مثلاً از دروپال برباید اما با در نظر گرفتن این نکته که اختراع مجدد چرخ در فرایند توسعهٔ نرم‌افزار کاری بس بیهوده است، موارد نادری پیش می‌آید که ما می‌توانیم به‌ جای استفاده از سولوشن‌های اپن‌سورس عرضه شده به بازار، اقدام به توسعهٔ پلتفرم نرم‌افزاری اختصاصی خود بزنیم که برخی از مهم‌ترین آن‌ها عبارتند از:

- زمانی‌ که حضور آنلاین شما به‌ عنوان کسب‌وکار اصلی‌تان باشد.
- ابایی از هزینه‌ کردن نداشته باشید.
- تکنولوژی استفاده شده در طراحی سایت برایتان مهم باشد (مثلاً اینکه از کدام سیستم مدیریت دیتابیس یا لایبرری جاوااسکریپت استفاده شود.)
- زمانی‌ که بخواهیم نرم‌افزاری کاملاً خلاقانه تولید کنیم (توجه داشته باشیم که یک فروشگاه آنلاین یا وبلاگ جزو کارهای خلاقانه محسوب نمی‌شوند!)
- و زمانی‌ که در مقایسه با رقبا، داشتن یک محصول انحصاری مزیتی رقابتی محسوب می‌گردد.

در یک کلام، نوشتن سی‌ام‌اس اختصاصی خود شاید مزیت زیادی نسبت به نمونه‌های اپن‌سورسی همچون وردپرس، جوملا و یا دروپال نداشته باشد اما اگر فقط یک مزیت برایش در نظر بگیریم، شاید همان یک مزیت توان برابری با لیستی از مزیت‌های منحصربه‌فرد سی‌ام‌اس‌های اپن‌سورس را داشته باشد. به‌ عبارت دیگر، نوشتن سی‌ام‌اس اختصاصی خود این مزیت را دارا است که پلتفرمی در اختیار ما قرار می‌دهد که دقیقاً همان کاری را می‌کند که دولوپرش می‌خواهد، نَه بیشتر و نَه کمتر که همچنین آپدیت کردن و افزودن فیچرهای جدید برای کسی که به زیر و بم چنین سی‌ام‌اسی آشنایی دارد به‌ مراتب راحت‌تر از کار با سی‌ام‌اسی است که شاید صدها دولوپر روی آن کد زده‌اند و ممکن هم هست که به‌ خوبی مستندسازی نشده باشد.

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

در عین‌ حال به یاد داشته باشیم که نوشتن سی‌ام‌اس اختصاصی خود نقاط ضعفی هم دارا است که شاید یکی از مهم‌ترین آن‌ها، تأمین کردن امنیت آن باشد. در ارتباط با سی‌ام‌اس‌های اپن‌سورس، گرچه گاهی‌ اوقات با مشکلات امنیتی مواجه می‌شوند، اما برخورداری از جامعهٔ بزرگی از دولوپرها، تِسترها و کاربران این امکان را به وجود می‌آورد که مشکلات، باگ‌ها و حفره‌های امنیتی خیلی زود تشخیص داده شده و مرتفع گردند اما در مورد سی‌ام‌اس‌های اختصاصی هرگز این‌طور نیست و صرفاً باید روی هوش و ذکاوت خودِ دولوپر و شاید سایر اعضای تیم‌ حساب باز کنید و این دیر متوجه شدن حفره‌های امنیتی شاید صدمات جبران‌ناپذیری به کسب‌وکار آنلاینی وارد آورد که از آن سیستم مدیریت محتوا استفاده می‌کند.

مسئلهٔ زمان
مشکل دیگری که نوشتن سی‌ام‌اس اختصاصی دارد، مسئلهٔ زمان است؛ مثلاً در وردپرس یک نیاز به‌ خصوص شاید ظرف چند دقیقه با نصب یک پلاگین مرتفع گردد اما وقتی‌ که سی‌ام‌اس اختصاصی خود را می‌نویسیم، شاید چند روز نیاز به صرف زمان برای توسعهٔ همان فیچر خاص داشته باشیم!

علاوه بر این، در مورد سی‌ام‌اس‌های اپن‌سورس برای رفع یک مشکل خاص ممکن است بیش از یک پلاگین توسط دولوپرها عرضه شده باشد و همین مسأله می‌تواند دست طراح سایت را برای انتخاب در میان آن‌ها باز بگذارد اما وقتی‌ که سی‌ام‌اس اختصاصی خود را می‌نویسیم، علاوه بر زمان توسعهٔ پلاگینی برای آن نیاز خاص، همچنین نیاز به صرف زمان برای گرفتن فیدبک از کاربران و تست آن پلاگین خواهیم داشت.

درآمدی بر هزینه‌های مرتبط با سیستم‌های مدیریت محتوا
در ارتباط با سی‌ام‌اس‌ها می‌بایست یک مسألهٔ دیگر را نیز مد نظر قرار داد و آن‌ هم تفاوت مابین TCO و CO است. CO مخفف واژگان Cost of Ownership به‌ معنی «هزینهٔ مالکیت» است و TCO مخفف واژگان Total Cost of Ownership به‌ معنی «هزینهٔ مالکیت کامل» است. در ارتباط با سی‌ام‌اسی همچون وردپرس، CO تقریباً صفر است چرا که این سی‌‌ام‌اس اپن‌سورس و رایگان است و ظرف مدت پنج دقیقه می‌توان یک وب‌سایت، وبلاگ و یا هر وب اپلیکیشنی روی آن بالا آورد.

مسئله‌ای که در مورد کسب‌وکارهای آنلاین وجود دارد، مسألهٔ Customization (شخصی‌سازی) است که اگر شما بخواهید از تِم‌های پیش‌فرض سی‌ام‌اس‌های اپن‌سورس و رایگان استفاده کرده، تغییر خاصی در عملکرد آن نداده و در یک کلام سی‌ام‌اس را همان‌طور که هست مورد استفاده قرار دهید که هیچ اما اگر بخواهید بسته به نیازهای اختصاصی خود تِم خاصی برایش در نظر بگیرید، ماژول‌های خاصی به‌ منظور برآورده کردن نیازهای خود توسعه دهید و آن‌ را کاملاً شخصی‌سازی کنید،‌ وقتی که پای TCO به‌ میان می‌آید، همین وردپرس یا جوملای به‌ ظاهر رایگان می‌تواند هزینه‌های چندین میلیونی رو دست شما بگذارد!

در ارتباط با سیستم مدیریت محتوا (سی‌ام‌اس) اختصاصی خود هم این سیستم تا زمانی‌ که شرکت توسعه‌دهندهٔ آن فعال باشد یا دولوپر توسعه‌دهندهٔ فریلنسر آن در دسترس باشد اوضاع خوب است و در صورتی‌ که بخواهید به هر دلیلی، خواه جمع شدن شرکت قبلی و عدم تمایل به همکاری از جانب طرفین ادامهٔ توسعهٔ سی‌ام‌اس را به شرکت یا دولوپر دیگری واگذار کنید، تازه مشکل جدیدی سر باز خواهد کرد که این مشکل هم از آنجا ناشی می‌شود که معمولاً مستندات قوی و یا استانداردهای کدنویسی آن‌طور که باید و شاید رعایت نمی‌شوند و وقتی که دولوپر دیگری قصد دارد از سورس‌کد سر دربیاورد، دچار مشکلات عدیده‌ای خواه شد!

مسألهٔ توسعه‌پذیری
نکته‌ٔ دیگری که در ارتباط با سی‌ام‌اس‌ها وجود دارد،‌ قابلیت Extensibility (توسعه‌پذیری) آن‌ها است به طوری که تمپلیت‌ها، ماژول‌ها، پلاگین‌ها و … یک سی‌ام‌اس خوب باید به‌ ساگی قابل‌توسعه باشند و در اکثر سی‌ام‌اس‌های اپن‌سورس این نکات رعایت شده‌اند اما وقتی که قصد داریم سی‌ام‌اس اختصاصی خود را توسعه‌ دهیم، حتماً بایستی این نکته را هم مد نظر داشته باشیم. به‌ عبارت دیگر، دولوپر یا تیم دولوپرهای سی‌ام‌اس اختصاصی ما صرفاً نباید اهداف کوتاه‌مدت را مد نظر قرار دهند بلکه آیندهٔ سی‌ام‌اس هم در حین فرایند طراحی دیتابیس، روتینگ، ساختار ام‌وی‌سی و … باید مد نظر قرار داده شده تا چنانچه در آینده نیاز به‌خصوصی ایجاد شد، مجبور به ریفکتورینگ نشوند.

روی هم رفته، هرگز نمی‌توان یک جواب «آری» یا «خیر» به این سؤال داد که آیا بهتر است CMS اختصاصی خود را توسعه دهیم یا از نمونه‌های رایگان و اپن‌سورس استفاده کنیم چرا که بسته به شرایط هر کسب‌وکاری، می‌توان تصمیمات مختلفی اتخاذ نمود. حال نوبت به نظرات شما می‌رسد. آیا تاکنون تجربهٔ نوشتن یک CMS اختصاصی را داشته‌اید؟ همچنین در حین پیاده‌سازی یک سیستم مدیریت محتوا، دولوپرها با چه چالش‌هایی روبه‌رو می‌شوند؟ در ضمن، آیا نوشتن یک CMS اختراع مجدد چرخ نیست؟ نظرات، دیدگاه‌ها و تجربیات خود را با سایر کاربران سکان آکادمی به اشتراک بگذارید.