چرا یک توسعه‌دهنده باید از CMS استفاده کند؟

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

با همه این‌ها چرا یک توسعه‌دهنده ترجیح می‌‌دهد از CMS استفاده کند؟
من به سراغ جیمز ویلدر، مدیر اجرایی محصول و عملیات در  Agility CMS رفتم. سابقه طولانی جیمز در توسعه نرم‌افزار، مکالمه ما را به سمت اهمیت سامانه مدیریت محتوا برای توسعه‌دهندگان، مزایای آن، دانش مورد نیاز برای اجرا، رایج‌ترین زبان‌ها و چارچوب‌های آن برد.

در زیر می‌توانید این مصاحبه را بخوانید:

چرا CMS مهم است؟

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

«یک سامانه مدیریت محتوا که به‌درستی پیاده‌سازی شده، به ویراستاران اجازه می‌دهد تا بدون نیاز به کمک توسعه‌دهنده، مشکلات غیر فنی را اصلاح یا تولید محتوا کنند.

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

با این حال مشتری در همان مراحل نخست درخواست ایجاد صفحات جدید و انجام تغییرات روی صفحات موجود را می‌دهد. چگونه قرار است این درخواست‌ها را مدیریت کنید؟ بدون یک سامانه مدیریت محتوا این مسئولیت بر عهده شماست.

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

بهتر نیست به‌جای اینکه در تمام طول روز با به روز رسانی‌های HTML درگیر باشید، به سراغ ساخت وب‌سایت‌های جدید بروید و یادگیری و مهارت‌های خود را افزایش دهید؟»

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

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

«بسیاری بر این باورند که فقط ویراستاران از سامانه مدیریت محتوا سود می‌برند، اما من کاملاً مخالفم.

من فکر می‌کنم CMS ابزار ارزشمندی برای یک توسعه‌دهنده است. به‌وسیله این ابزار،  شما تولیدی بیشتری دارید، کد بهتری می‌نویسید و مشتری راضی‌تر است.

زمانی که سایتی را با سامانه مدیریت محتوا راه‌اندازی می‌کنید، مشتری می‌تواند بدون درگیر کردن شما آن را مدیریت کند. این کار باعث می‌شود وقت شما برای کار کردن روی پروژه‌های بزرگ بعدی آزاد شود.

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

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

به این ترتیب دفعه بعد که از شما خواستند محتوا را به روز کنید، می‌توانید به آن‌ها یاد دهید که چگونه این کار را به تنهایی انجام دهند. همچنین این سیستم به ویراستاران اختیار عمل بیشتری می‌دهد. ویراستاران دوست دارند امکان عملکرد بیشتری داشته باشند و به خاطر این سامانه شما را دوست خواهند داشت.»

اجازه دهید توسعه‌دهندگانتان هر چیزی را که می‌خواهند و هر زمانی که دوست دارند، بسازند.

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

در پاسخ به سؤال بعدی من، جیمز به این مسئله اشاره می‌کند که چرا سامانه‌های مدیریت محتوا موضوعی قطبی در جامعه توسعه‌دهندگان بودند.

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

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

«دوران سامانه مدیریت محتوای بدون قالب»

سامانه مدیریت محتوای بدون قالب درست مانند یک CMS معمولی است. با این تفاوت که هیچ فرضی درباره چگونگی استفاده از محتوا در لایه نمایش ندارد.

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

علاوه بر این، بسیاری از سامانه‌های مدیریت محتوای بدون قالب پیشنهاد میزبانی از سامانه‌های مدیریت محتوایی را می‌دهند که دارای API  با سطح دسترسی بالا هستند و  برای مقابله با تقاضای بالای ترافیک طراحی شده‌اند. این یک آینده روشن برای CMS است. زیرا علاوه بر اینکه ویراستاران می‌توانند همه ویژگی‌های مورد نیازشان را در دسترس داشته باشند، به نقاط ضعف قبلی نیز توجه شده است.

کد نویسی سخت است، درک کد دیگران سخت‌تر است.

مهارت‌های زیادی برای توسعه و ایجاد یک وب‌سایت موفق وجود دارد. این امر در درجه اول به نوع معماری سامانه مدیریت محتوایی که استفاده می‌کنید، بستگی دارد. ما معماری سامانه مدیریت محتوای بدون قالب را توصیه می‌کنیم زیرا فقط شامل ۲ مؤلفه اصلی است:
-        یک بک‌اند برای مدیریت و ذخیره مطالب
-        یک API برای ارائه آن محتوا در هر نقطه

در ادامه، جیمز مهارت‌های لازم برای یادگیری توسعه وب به کمک CMS را شرح می‌دهد.

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

کد نویسی سخت است، درک کد شخص دیگر سخت‌تر است. از طرف دیگر ، سامانه‌های مدیریت محتوای بدون قالب فقط API هستند. این یعنی تمام آنچه شما باید بدانید HTML / CSS / JavaScript و نحوه برقراری تماس API برای آوردن محتوا است.

با فناوری‌هایی مانند JAMstack و ابزارهای ساخت سایت‌های استاتیک ، دیگر نیازی به یادگیری زبان برنامه‌نویسی سمت سرور (بک‌اند) ندارید. اگر می‌توانید با HTML / CSS / JavaScript یک وب‌سایت بسازید، یعنی می‌توانید با CMS نیز یک وب‌سایت ایجاد کنید. »

زبان‌ها و چارچوب‌های رایج که توسط توسعه‌دهندگان CMS استفاده می‌شود.

اگر نمی‌دانید از چه زبان برنامه‌نویسی برای ایجاد CMS استفاده کنید، شاید جواب چندان ساده نیست! این موضوع بستگی به آن دارد که شما از سامانه مدیریت محتوای سنتی استفاده می‌کنید یا بدون قالب.

ما هر دو موافق بودیم که سامانه مدیریت محتوای بدون قالب بهترین انتخاب است. من می‌دانستم که جیمز علاقه زیادی به این موضوع دارد، بنابراین از او خواستم درباره محبوب‌ترین زبان‌ها و چارچوب‌هایی که توسط توسعه‌دهندگان CMS استفاده می‌شود، توضیح دهد.

سامانه‌های مدیریت محتوای سنتی معمولاً با زبان‌های خاص برنامه‌نویسی سمت سرور مانند PHP ، .NET  یا جاوا (برای نام‌گذاری چند مورد کوچک) همراه هستند. هرچند این زبان‌های برنامه‌نویسی هنوز محبوب و مفید هستند، اما برای ایجاد وب‌سایت باCMS ، دیگر نیازی به این کارها نیست.

در چند سال گذشته، جاوا اسکریپت نقش بسیار زیادی در توسعه کلی وب (با یا بدونCMS ) ایفا کرده است. کارهایی که قبلاً توسط زبان‌های سنتی سمت سرور انجام می‌شد، اکنون در جاوا اسکریپت انجام می‌شوند.

به‌عنوان مثال، شما می‌توانید جاوا اسکریپت را با استفاده از Node.js. در سرور اجرا کنید. همچنین می‌توانید برای گرفتن محتوا از API، جاوا اسکریپت را در فرآیند ساخت مولد سایت استاتیک اجرا کنید سپس صفحات HTML اجرا کرده و در نهایت صفحات HTML استاتیک را مستقر کنید. به این معماری JAMstack (JavaScript-API-Markup) گفته می‌شود.

در فرانت‌اند‌، چارچوب‌های مدرن مانند ReactJS ، VueJS و Angular همچنان در حال پیشرفت هستند. یکی از چارچوب‌هایی که من به‌شدت به آن علاقه دارم، GatsbyJS  است که یک چارچوب برنامه وب پیشرفته است و در بالای ReactJS قرار دارد. این چارچوب شامل سایت استاتیک است و از GraphQL  برای ذخیره و دسترسی به محتوا از انواع منبع اطلاعات استفاده می‌کند. در همین راستا نیز، ما به‌تازگی افزونه منبع برای GatsbyJS + Agility CMS را منتشر کرده‌ایم.»

ترجمه آزاد: https://dev.to/agilitycms/why-you-as-a-developer-should-be-using-a-cms-3g3c