وردپرس به عنوان یک سیستم مدیریت محتوا همیشه مورد نقد و برسی بوده. امروز توی این نوشتار میخوام تجربیات ۱۰ ساله خودم رو با شما به اشتراک بگذارم و وردپرس رو به لحاظ فنی برسی کنم.
آیا کدهای وردپرس و پلاگین و پوستههاش کثیف هستند؟
کد کثیف رو نباید فقط گردن وردپرس بیاندازیم، بنظر من عواملی که باعث کثیف شدن یه سیستم میشه ایناست:
زبان برنامهنویسی
php به عنوان یک زبان پرکاربرد که در طول حیاتش دستخوش تغییرات بسیار شده زبان بکار رفته در وردپرس هست. وردپرس در سال ۲۰۰۳ عرضه شده و نسخه اولیه این سیستم با php 4 نوشته شده. با وجود اینکه php از نسخه ۳ از شیگرایی به عنوان یک پارادایم برنامهنویسی بهره میبرد اما در نسخه ۵ به صورت انقلابی تغییر کرد و یکسال بعد از وردپرس به دنیا اومد. شاید اگر wordpress رو با php 5 طراحی میکردند خیلی به متحول شدن وردپرس و کدهاش کمک میکرد اما کی از آینده خبر داره؟!
جامعه
وردپرس به عنوان یک پروژه متن باز منتشر شد، در نتیجه هر شخصی با هر دانشی میتونست اونو توسعه بده، اصول توسعه وردپرس خیلی سخت نبود و باید به یک سری قوانین پایبند میبودی تا تغییراتت رو با هسته مرج کنند.
هدف
هدف وردپرس توسعه یک سیستم High quality برای استفاده حساس صنعتی نبود! یک سیستم مدیریت محتوا متن باز برای راهاندازی بلاگ بود.
backward compatibility
یا سازگاری با ورژنهای قبلی، شاید اگر شما در سال ۲۰۰۳ کدهای وردپرس رو برسی میکردید حتی بهش افتخار هم میکردید از یک دیزاین پترن خیلی کارآمد مثل Observer pattern همون (action, filter) برای pluginable شدن بهره میبرد و خیلی راحت میشد براش پوسته و پلاگین طراحی کرد. چیزی که کار رو برای وردپرس با انتشار هر نسخه سختتر میکرد سازگاری نسخه جدید با پوستهها و پلاگینهای موجود بود. مهندسین نرمافزار میدوند این کار بشدت سخته و باید بسیار حساب شده پیش رفت. حتی ما این مشکل رو در android هم میبینیم. که با وجود این همه پیشرفت کدهای android چقدر زیاد و کثیف شدند! چرا؟ چون نیاز به سازگاری با نسخ قبلی هست. (البته توی کیس اندروید همین مواردی که ذکر کردم هم تا حدود زیادی صدق میکنه).
نتیجه
code base وردپرس شاید به تمیزی چند خط کدی که من میزنم و تنها مورد استفادهاش یه کار کوچولو هست تمیز نباشه(که اونم خودم فکر میکنم تمیزه:) ) ولی برای یک سیستم با این عظمت و پلاگین و پوسته و کاربر خوبه.
در مورد کثیف بودن پوسته یا پلاگینی که کد کثیفی داره به کاملا به وردپرس ربط نداره! و توسعه دهنده اون میتونه کد رو تمیز بزنه که خیلی از پلاگینها جدید و معروف امروزی از این قاعده پیروی میکنند.(موارد بالا رو به خاطر داشته باشید من نمیتونم با php 7.4 پلاگینی بزنم که عموم استفاده کنند. چرا؟ چون اگر بخوام روی اکثر سایتهای و هاستها جواب بده باید از یک حداقل استفاده کنم که این خودش کدم رو تا حدی کثیف میکنه)
آیا امنیت ودرپرس پایین است؟
این ایرادی که به کل متنباز گرفته میشه و دلیلیش اینه که چون همه منبع کد رو میبینند راحتتر آسیب پذیری پیدا میکنند. این نظریه درسته ولی در مقابل هم برای عیبیابی و توسعه بسیار کارآمد هست. فراموش نکنید یه مشکل امنیتی در ویندوز xp که close source هست به اسم قابلیت autorun سال ها باعث شد ما ویروس بگیریم و ویندوز عوض کنیم در صورتی که توی یک سیستم متن باز به سرعت رفع میشد.
من ماه گذشته درخواستهای زیادی داشتم که سایت وردپرسی ما maleware گرفته با برسی دقیق سایتها متوجه شدم. از پوسته و پلاگینهای نال شده استفاده شده.
هیچکدوم از سایتهای وردپرسی من طی این ۱۰ سال دچار حملات مخرب نشده دلیل اینه:
- از پلاگینهای و پوسته نال شده استفاده نمیکنم.
- از سیستمهای version control استفاده میکنم.
- بکاپ اتوماتیک منظم از دیتابیس و فایلها دارم.
- موارد امنیتی سرور و هاست رو رعایت میکنم.
در کنار این موارد اینو به یاد داشته باشید که امنیت هم نسبی است و ۱۰۰ مطلق نیست. توی اخبار میشنوید که اینستاگرام و توئیتر و سایتهای بزرگ هک میشن و مشکل امنیتی دارند، پس موارد بالا رو رعایت کنید و خیالتون راحت باشه.
جامعه وردپرس چقدر کارآمد است؟
به عنوان یک توسعهدهنده و کاربر وردپرس تا بحال هر سوالی داشتم تونستم توی اینترنت پیدا کنم. وردپرس جامعه خیلی متمرکزی نداره مثل linux ولی سوالت توی stack overflow بدون پاسخ نمیمونه. داکیومنت وردپرس هم خیلی بهتر شده.
توسعه پلاگین و پوسته برای وردپرس سخته؟
خب این بستگی به سطح سواد ما داره، برای کسی که وب و زبانبرنامهنویسی PHP و دیتابیس رو میشناسه اصلا سخت نیست و با ساختار action, filter وردپرس خیلی این کار راحت شده.
آیا CMS بهتری از وردپرس هست؟
شما میتونید برای خودتون با هر زبان برنامه نویسی هرچیزی که میخاید توسعه بدید یا از هر سیستم مدیریت محتوایی که میشناسید استفاده کنید. اما باید پاسخ این سوالات رو بدید؟
- رایگان بودن
- به روزبودن
- در دسترس بودن هزاران و پلاگین و پوسته
- ارزان بودن نیروی کار
- در درسترس بودن نیروی کار
- توسعهپذیری
من با Joomla, Drupal, October CMS(Laravel base) کار کردم. علیرغم اینکه هر کدوم توی یه چیزی قوی بودند مثلا دروپال توی content types فوقالعاده است و سریع میتونی باهاش یه ساختار خوب برای فرمهای پیچیده در بیاری ولی طراحی پوسته براش سخته. یا October cms که با لاراول نوشته شده، کد تمیزی داره و پلاگین و پوستههای محدود داره و پیدا کردن نیروی کار براش سخته.
آیا CMS های سازمانی و انحصاری بهتر از وردپرس است؟
امنیت بالا و مناسب کسب و کار شما بودن شعار این سیستم هاست، در سوال ۲ پاسخ امنیت رو دادم و از توضیح بیشتر در این زمینه صرف نظر میکنم. در مورد مناسب با کسب و کار شما پلاگین و پوستههای زیادی وجود داره برای وردپرس که میتونه مناسب کسب و کار شما باشه و در سناریوای خاص میتونید با پرداخت هزینهای کمتر از هزینه CMS اختصاصی اون ویژگی رو روی وردپرس داشته باشید.
دوباره میگم شما با وردپرس اینها رو دارید:
- کاهش هزینه
- ظاهر زیبا
- مدیریت آسان
- سئو عالی
- بروزرسانی رایگان
- امنیت
- انعطافپذیری وردپرس
کلام آخر
من به عنوان یک برنامهنویس که علاقه به کد تمز دارم و ساختار خیلی برام مهمه، از کار با وردپرس زیاد راضی نیستم و این بخاطر ایدهالیستی بودن منه، اما وقتی که واقعیت رو میبینم میبینم وردپرس شاید خیلی انقلابی نباشه و میتونم کد تمیز رو از پلاگین و پوستههای خودم شروع کنم و اینو به بقیه هم بگم شاید یروزی وردپرس جای قشنگتری برای زندگی شد 🙂
من برنامه نویس نیستم اما به عنوان یه کارشناس سئو واقعا وردپرس خیلی خیلی مفید بوده برای دنیای وب.
یه پروژه سئو که با PHP زده شده بود بهم پیشنهاد شده بود که هر صفحه با ۳ URl مختلف لود میشد از نظر من سئو کار این افتضاح بود یه چیزی که به طور بدیهی در وردپرس رعایت میشه! این یه نمونه بود از سوتی هایی که برنامه نویس ممکنه بده در طول کد نوشتن که از نظر خودش اوکیه و چیز خاصی نیست!
وردپرس که سئو رو خورده لعنتی
در حدی که شرکت های بزرگ مثل اپل و مایکروسافت هم با وردپرس بلاگشون رو بالا میارن.