بهزاد مرادی

استفاده از CMS یا کدنویسی اختصاصی؟

بهزاد مرادی مدرس، کپی‌رایتر و دولوپر

این محتوا بدون نظارت تیم سکان آکادمی تولید شده و صرفاً نظرات شخصی بهزاد مرادی می‌باشد.

همان‌طور که در مقالهٔ توسعهٔ سی‌ام‌اس اختصاصی یا استفاده از نمونه‌های اپن‌سورس؟ آمده، برخی از بارزترین ویژگی‌های یک CMS عبارتند از:

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

در پاسخ به این سؤال که کِی از یکسولوشن اپن‌سورس مثل Wordpress که یکی از پراستفاده‌ترین سیستم‌های مدیریت محتوا است می‌بایست استفاده کرد، می‌توان گفت که:

وقتی نیاز به یک راه‌کار رایگان و سریع داشته باشیم!

باز هم در مقالهٔ فوق‌الذکر آمده است که وقتی باید دست به توسعهٔ CMS اختصاصی خود بزنیم که:

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

در پاسخ به این سؤال که مزیت یکسولوشن اختصاصی چیست، می‌توان گفت که:

چنین سیستم مدیریت محتوایی دقیقاً همان کاری رو می‌کنه که دولوپرش می‌خواد؛ نَه بیشتر و نَه کمتر!

یادی از سایت محبوب نارنجی
خُب بک‌گراند ما به نوعی به سایت نارنجی برمی‌گردد و این سایت‌ هم با دروپال نوشته شده بود. دروپال CMS نیست بلکه یک CMF مخفف واژگان Content Management Framework است که در تعریف CMF گفته می‌شود که به مراتب قدرتمندتر از یک CMS هست چرا که پلتفرمی همچون همچون Django یا Laravel است که فریمورک محسوب می‌شوند.

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

نگاهی به کدنویسی سکان آکادمی
اصل سایت به صورت اختصاصی کدنویسی شد اما وبلاگ را با وردپرس بالا آوردیم و پس از مدتی می‌خواستیم مثلاً مقالات مرتبط با دوره‌های آموزشی را از داخل وبلاگ فچ کرده و بیاریم نشون بدیم که نشد (البته نه اینکه نشد، بلکه من بلد نبودم.) همچنین نیاز داشتیم تا در توسعهٔ نرم‌افزار بیشتر تجربه کسب کنیم؛ پس اختراع مجدد چرخ بهترین سولوشن بود اما یک بیماری روانی هم دارم بدین صورت که Tolerance of Ambiguity بسیار پایینی دارم؛ یعنی اگر نفهمم چیزی چرا نوشته شده و چگونه کار می‌کند، روانی می‌شوم! این شد که تصمیم به عدم استفاده از CMS گرفتیم و پس از مدتی وبلاگ رو هم جمع کردیم و آوردیم روی سی‌ام‌اس شخصی خود (اگر توجه کنید خیلی از URLهای وبلاگ شبیه به وردپرس هست چرا که مجبور شدیم به خاطر گوگل ساختار را نگاه داریم تا دیگه مجبور به نوشتن URL Redirect و این‌طور کارها نشویم.)

یاد دارم که با محمد نصیری، مدیر سایت itpro.ir سابق که الان شده tosinso.com، در رادیو فول‌استک صحبت می‌کردم و به ایشون گفتم که چرا چرخ رو دوباره اختراع کردید،‌ گفتن:

برای ساخت دوچرخه حرف شما درسته اما اگه بخواین هواپیما بسازید مجبور به اختراع مجدد چرخ هستین!

که برای گوش کردن به پادکست ایشون می‌تونید به لینک محمد نصیری: یکی از دو بنیان‌گذار مجموعهٔ آموزشی آی‌تی پرو مراجعه کنید.

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

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

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

Case Study: شکست یک محصولی که مخاطبش خانم‌های خانه‌دار بودند!
شرکتی آمریکایی آمد پودر کیک آماده به بازار عرضه کرد (مثل پودرهای کیک رُشد در ایران) و این پودر کیک این‌طور بود که پودر را درآورده، دو لیوان شیر داخلش ریخته و بهم می‌زدی، داخل فر می‌گذاشتید و والسلام! این محصول با اِقبال عمومی مواجه نشد و مدیران محصول شرکت مذکور شروع کردند به بررسی دلایل که در نهایت به این نتیجه رسیدن که:

وقتی خانم‌های خانه‌دار با این محصول حاضر و آماده کیک درست می‌کنن، اصلاً Sense of Achievement به ایشان دست نمی‌دهد و احساس Passive (منفعل) بودن پیدا می‌کردن!

مدیران محصول باهوش آمدند و تغییراتی ساختاری در آن پودر کیک بوجود آوردند. به عبارت دیگر، یکسری از محتویات داخل پودر کیک را حذف کردند که دو مزیت عمده داشت:

- یکی قیمت تمام‌شده پایین می‌آمد
- و یکی مشتریان راضی‌تر می‌شدند

حال ممکن است بپرسید که چه‌طور راضی‌تر شدند در حالی که باید زحمت بیشتری برای تهیهٔ کیک می‌کشیدن؟ وقتی که خانم خانه‌داری این پودر کیک را می‌خرید، دستورالعمل قبلی که منجر به شکست محصول شد می‌گفت که محتویات جعبه را با یک لیوان شیر مخلوط کرده و داخل فر بگذارید؛ اما برخلاف محصول قبلی، دستورالعمل جدید می‌گفت که پودر را داخل ظرف ریخته + یک تخم‌مرغ + شیر، بسته به سلیقهٔ خود می‌توانید پودر کاکائو، نسکافه یا قهوه بزنید، زنجبیل هم عطر خوبی به کیک می‌دهد و … و در نهایت داخل فر بگذارید.

این بار خانم خانه‌دار احساس مفید بودن بهش دست می‌داد و دوپامین (عنصر شادی) در خونش قلیان می‌کرد و وقتی شب شوهرش برمی‌گشت منزل، احتمالاً با غرور و اعتماد به نفس کاذب زیاد می‌گفت که من «خودم» کیک را درست کردم. به همین سادگی یک محصول موفق به بازار عرضه شد.

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

تجربهٔ تبدیل یک سایت جوملایی زیر 500 ایران به یک سی‌ام‌اس اختصاصی
در شرکتی نرم‌افزاری مشغول به کار بودم که این شرکت در زمینهٔ تولید محتوا هم فعالیت می‌کرد و سایتی داشتند که چند سال بود با سیستم مدیریت محتوای جوملا کار می‌کرد. نسخهٔ جدید جوملا 3 که آمد، CTO شرکت که بیش از 15 سال سابقهٔ کدنویسی، مدیریت، وب‌مستری و ... داشت دستور داد که سایت آپگرید شود به جوملا سه و این در حالی بود که خیلی از پلاگین‌های مورد استفاده به اصطلاح Backward Compatible نبودند و خود این مسئله داستانی بود.

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

جمع‌بندی
به نظرم (که می‌تواند کاملاً هم اشتباه باشد) هیچ پاسخ دقیقی به این پرسش نمی‌توان داد که «آیا باید از سولوشن‌های اپن‌سورس استفاده کنیم یا به صورت اختصاصی کد بزنیم؟» چرا که بسته به اِلِمان‌های بسیاری، یکی از این دو تصمیم می‌تواند در لحظه بهترین باشد که برخی از آن‌ها عبارتند از:

- میزان بودجه
- تعداد دولوپرهای تیم
- نیازهای خاصی که سی‌ام‌اس‌ها از برآوردن آن‌ها برنیامده و یا به سختی برمی‌آیند
- تمایل داریم که پروژه 100٪ کلوزد سورس‌ باشد
- زمان کافی برای توسعه داریم
- سایت بخشی از پرتالی بزرگ‌تر است که نیاز داریم همه چیز Integrated باشد و ...

حال برسیم به بررسی لیستی از سایت‌های وردپرسی:
لینک زیر همان‌طور که در URL مشخص است، ادعا می‌کند که برندهای بزرگی از وردپرس استفاده می‌کنند:

http://www.wpbeginner.com/showcase/40-most-notable-big-name-brands-that-are-using-wordpress/

اما بررسی بنده در مورد برخی از این سایت‌ها می‌گوید که سایت

http://www.bbcamerica.com/

با وردپرس هست نه سایت بی‌بی‌سی اصلی و با نگاهی به دیگر کاندیداهای لینک فوق و معیار قرار دادن الکسا به عنوان میزان بازدید این سایت‌ها، داریم:

https://www.thewaltdisneycompany.com رتبه 100,161
https://de.newsroom.fb.com با رتبهٔ 6,678
https://blog.cpanel.com با رتبهٔ 35,052

و در این لیست فقط چند مورد قابل‌توجه هست که مؤلف مقاله هم سعی کرده آن‌ها را در ابتدای لیست قرار دهد که عبارتند از:

https://news.microsoft.com با رتبه 37
https://blog.us.playstation.com با رتبهٔ 436

در مورد سایت بلومبرگ هم ساب‌فولدر professional احیاناً با وردپرس طراحی شده وگرنه خود سایت خیر اما به هر حال میزبانی سایت‌های بزرگی همچون https://techcrunch.com مهر تأییدی بر خوبی وردپرس هست. با مراجعه به لینک‌های زیر:

https://wordpress.org/showcase

https://www.drupal.com/showcases

باز هم سایت‌های عجیب‌وغریبی در لیست نمی‌بینیم! مثلا سایت دانشگاه کلورادو https://giving.cu.edu چه کار عجیب و غریبی کرده که فقط دروپال از عهده‌اش برمی‌آید یا مثلاً سایت Angry Birds به آدرس https://www.angrybirds.com/games مگر غیر از این است که یک کاتالوگ آنلاین است؟ یا سایت https://nytco.com که مال کمپانی New York Times است که ادعا می‌کند ناشر ۲ روزنامهٔ ملی و ۱۶ روزنامه محلی + مالک ۸ ایستگاه تلوزیونی و همچنین 2 ایستگاه رادیو در شهر نیویورک و بیش از 40 سایت مختلف است؟ خب اگر وردپرس این‌قدر خوب است، پس چرا برای یکی از آن 40 سایت استفاده نکرده بلکه فقط برای سایت اصلی که در حال حاضر (2018) رتبهٔ 161,559 الکسا را داراست استفاده کرده‌اند!

ممنون که وقت گذاشتید. جای نظر، انتقاد و پیشنهاد شما در بخش کامنتینگ است.

ایدهٔ خود را در سکان‌پلاس بنویسید!

لیست نظرات
کاربر میهمان
دیدگاه شما چیست؟
کاربر میهمان
nokhost
nokhost
۱۳۹۷/۰۸/۱۵
با تشکر اقای مرادی بابتبه اشتراک گذاری تجربه هاتون
با شما کاملا موافقم
استفاده از یک سیستم مدیریت محتوا زمانی سودمند خواهد بود کار مورد نظر یک فرایند معمول و عادی باشع.ولی وقتی کار توسعه پیدا میکنه و هدف مند میشه مثل سایت زومیت.سیاست ها و خط مش ها تغییر پیدا میکنه که نیاز یک سیستم مدیریت محتوای اختصاصی با عملکرد مدنظر احساس میشه. که از یک سیستم مدیریت محتوای متن باز خارجه.که معمولا بازم هم برنامه نویس باید برای سیستم مدیریت محتوا متن باز با توجه به نیاز افزونه نویسی کنه تا نیازها مرتفع بشه.پس چه بهتره برای یک هدف خاص یه راه نو و خاص پیاده سازی بشه.
arshazm
arshazm برنامه نویس وب - علاقمند تدریس و استارتآپ
۱۳۹۷/۰۶/۱۲
سلام
از نظر من اگه ایده ای که توی ذهن داریم که با cms قابل اجرا هست پس باید با cms تولید بشه (که این مطلب رو در پادکست "علی حاج محمدی" هم مطرح شد.)

برای تمرین ، قطعا اگر خودمون بنویسیم ، هم درک بهتری نسبت به قضیه پیدا میکنیم و هم اعتماد به نفس بیشتری پیداخواهیم کرد.
اگر قصد ما از نوشتن برنامه ای یادگیری باشه پس چه بهتر که خودمون اونو بنویسیم اما اختراع دوباره چرخ لازم نیست (مگر اینکه ایده چرخی با قابلیت های جدید در ذهن داشته باشیم)
موفق و پر انرژی (+) باشید.
مجتبی دانشی
مجتبی دانشی
۱۳۹۷/۰۵/۰۴
سلام عزیز
من چیزیرو که خودم نوشته باشم رو ترجیح میدم، ولو کم و کاستی داشته باشه. آدم انگیزه پیدا میکنه.
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۷/۰۴/۲۸
به نظرم ووردپرس اصلا اصلا خوب نیست چون که قطعا در آینده شمارو دچار مشکل خواهد کرد.
کاربر میهمان
کاربر میهمانمن یک کاربر مهمان هستم
۱۳۹۷/۰۴/۲۷
VPS mage cheghade ke natoonestid begirid!!!!
حسین قربانی
حسین قربانی
۱۳۹۷/۰۴/۱۴
آقای مرادی عزیز
سلام
از مقاله حضرت عالی استفاده کردیم و چقدر خوب که تجربیاتتون رو در اختیار ما قرار دادید.
واقعاً در هنگام استفاده از ابزار (اختصاصی یا غیراختصاصی) باید ببینیم، قرار هست چه مشکلی رو رفع کنیم، گاهی واقعاً قراره چیزی یونیک و خاص داشته باشیم که تا حالا مسئله کسی در سطحی که قراره کار بکنیم نبوده، باید نوشته بشه ولی گاهی مسئله در حد لانچ وبلاگ هست که خوب، می‌شه از CMS بهره برد. بیشتر دولوپرهایی که مطالبشون رو دنبال می‌کنم، از وردپرس استفاده می‌کنند و برای یه وبلاگ ضرورتی در CMS اختصاصی نمی‌بینن.
جواب تیتر این یادداشت به نظرم شاید این باشه که برای هر فرد و هر نیازی یکی از دو روش خوب و کاربردی هست.
موفق باشید
morteza.ghorba
morteza.ghorba
۱۳۹۷/۰۴/۰۹
از سایت نارنجی برامون بگین ... 😤😤😤😤
masih it
masih it توسعه‌دهنده وب و علاقه‌مند به یادگیری ماشینی
۱۳۹۷/۰۴/۰۸
سلام. تشکر از شما بابت توضیحات جالبتون و همچنین قلم فوق‌العاده‌ای که دارید.
صحبت های شما بنظرم کاملا صحیح بود و البته قسمتی هم که میخوام مکمل صحبت های شما بگم (و البته نظر شخصیم هست و میتونه ۱۰۰٪ اشتباه باشه 😅) این هست که بنظرم استفاده از یک CMS آماده مثل وردپرس برای یک دولوپر تازه کار٬ احتمالا اشتباه هست٬ اگر یک توسعه‌دهنده بخواد به علمش اضافه کنه و به عنوان یک دولوپر حرفه‌ای شناخته بشه٬ احتمالا استفاده از وردپرس٬ باعث ایجاد اعتماد بنفس کاذب در اون فرد میشه و دولوپر فکر میکنه که خب دیگه طراحی سایت هم کارش تموم شد و الان میتونم هرچیزی رو بسازم٬ با اینکه هنوز بلد نیست چرخش رو بسازه چه برسه به موتورش (الان احتمالا دولوپر قصد ساخت ماشین رو داره 😃). البته این حرفم به این معنی هست که بنظرم بهتره اول ساخت چرخ رو فرد یادبگیره و بعد برای تسریع کار و همچنین تمام دلایلی که شما در بالا عنوان کردید٬ «میتونه» از وردپرس استفاده کنه.
نمیدونم این چه حالتیه که من دارم و حاضرم یک کامنت هزار صفحه‌ای بنویسم ولی هیچوقت یک پست رو خودم ننویسم 😁.