توسعهٔ سی‌ام‌اس اختصاصی یا استفاده از نمونه‌های اپن‌سورس: مسأله این است!

توسعهٔ سی‌ام‌اس اختصاصی یا استفاده از نمونه‌های اپن‌سورس: مسأله این است!

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

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

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

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

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

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

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

درضمن، آپدیت کردن و افزودن فیچرهای جدید برای کسی که به زیروبم سی‌ام‌اس آشنایی دارد به‌مراتب راحت‌تر از کار با سی‌ام‌اسی است که شاید صدها دولوپر روی آن کد زده‌اند و ممکن هم هست که به‌خوبی داکیومنت نشده باشد!

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

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

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

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

مسألهٔ هزینه‌های توسعهٔ سی‌ام‌اس
در ارتباط با سی‌ام‌اس‌ها می‌بایست یک مسألهٔ دیگر را نیز مدنظر قرار داد و آن‌هم تفاوت مابین TCO و CO است؛ CO مخفف واژگان Cost of Ownership به‌معنی «هزینهٔ مالیکت» است و TCO مخفف واژگان Total Cost of Ownership به‌معنی «هزینهٔ مالیکت کل» است.

در ارتباط با سی‌ام‌اسی همچون وردپرس، CO تقریباً ۰ است چراکه این سی‌‌ام‌اس اپن‌سورس و رایگان است و ظرف مدت ۵ دقیقه می‌توان یک وب‌سایت، وبلاگ و یا هر وب اپلیکیشنی روی آن بالا آورد؛

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

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

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

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

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

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

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



هادی فاخریان