اشتباهات رایج در راه اندازی سایت با دروپال (بخش اول)

اشتباهات رایج در راه اندازی سایت با دروپال  (بخش اول)

این اشتباهات توسط کارمندان آکوئیا (Acquia) در طراحی سایت های دروپالی رصد شده است. اشتباهاتی است که ما نیز به صورت معمول با آنها ممکن است مواجه بشویم و بهتر است سعی کنیم از انجام آنها دوری کنیم.

این اشتباهات در 5 محور زیر مطرح شده اند:

  1. معماری (Architecture): شیوه هایی که برای درست کردن ساختار محتوایی سایت به کار می گیریم، روش هایی که برای نمایش محتوا پیروی می کنیم و نحوه سازماندهی عملیاتی سایت در این محور مطرح می شوند.
  2. امنیت (Security): چطور از انواع مشخصی از حملات هکری سایت را جلوگیری کرده و از یک سایت دروپالی محافظت کنیم.
  3. عملکرد و کارآیی (Performance): ابزارهای تحلیل عملکرد سایت را بشناسیم و روش های معمول برای بهینه سازی سایت و کش کردن اطلاعات را به کار ببندیم.
  4. زیر ساخت (Infrastructure): بهترین شیوه ها برای چینش لایه های مختلف نرم افزار و برای نمونه قرار دادن لایه های پیشرفته کش مثل Varnish و Memcached را بدانیم.
  5. نگهداری (Maintenance): از چه روش هایی درمدت زمان حیات سایت شامل فاز های توسعه، استقرار و نگهداری استفاده کنیم.

معماری: محتوای دروپال

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

بهترین شیوه

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

اشتباهات رایجی که در زمینه معماری محتوا می تواند در سایت های دروپالی رخ بدهد عبارتند از:

اشتباه 1: تعداد زیادی نوع محتوا (Content type)
نتیجه: می تواند باعث گیجی و سرگردانی مسئولین محتوایی سایت بشود.
نمونه: نوع محتوای اخبار و مقاله خیلی شبیه به یکدیگر هستند.
راه حل: تا حد امکان نوع محتوا های موجود برای مقاصد بیشتری استفاده شوند و استاندارد شوند.

اشتباه 2: فیلد های جدید برای هر نوع محتوا درست شود.
نتیجه: این کار منجر به تلف شدن منابع و ضربه زدن به کارآیی سایت می شود.
نمونه: یک فیلد شهر یا منطقه که می تواند در حداقل دو نوع محتوا استفاده شود ولی برای هر نوع محتوا به صورت جداگانه درست می شود.
راه حل: فیلد ها استاندارد شده و مجددا استفاده شوند.

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

معماری: نمایش دروپال

دروپال ابزاری قدرتمند برای نمایش محتوا در قسمت های مختلف سایت با فرمت ها و روش های نمایش گوناگون است. معماری نمایش شامل استفاده از ماژول Views و Panels و Context می باشد.

بهترین شیوه

آسانی تغییر در نحوه نمایش وب سایت گواه معماری نمایش خوب است.

  • معماری نمایش را طوری طرح ریزی کنید که فقط در موقع نیاز محتوا، بارگزاری و نمایش داده شود.
  • تا حد ممکن، استفاده مجدد و بهینه سازی را در دستور کار خود قرار بدهید.
  • همیشه منطق و عملیات سایت را از نمایش جدا نگه دارید.
  • با یک پوسته پایه (Base Theme) شروع کنید و آن را به خوبی یاد بگیرید.

اشتباه 1: درست کردن یک View جدید برای هر لیست.
نمونه: می خواهیم مشاغلی شهر های مختلف را نمایش بدهیم و برای هر شهر یک view جدید بسازیم.
راه حل: هر view که می سازید را بررسی کنید که آیا قابلیت استفاده مجدد از View هایی که قبلا ساخته اید وجود دارد یا خیر. حتما از فیلتر های متنی یا Contextual Filter برای تولید لیست ها محتوایی استفاده کنید.

اشتباه 2: نگهداری کد PHP و سایر منطق های عملیاتی سایت درون دیتابیس یا فایل های قالب (tpl.php)
نمونه: یک قطعه کد PHP که نمایش یا عدم نمایش یک بلوک را در یک قسمت از سایت بررسی می کند.
راه حل: در صورت لزوم منطق عملیاتی سایت شامل کدهای PHP و اتصال به وب سرویس ها و پرس و جو های دیتابیس را در ماژول ها و یا توابع قالب و پیش-پردازش پوسته بنویسید.

ابزاری که توصیه می کنیم

ماژول Theme Developer: با فعال کردن این ماژول، می توایند ماوس را روی هر بخشی از صفحه ببرید و ببینید که چه قالبی برای نمایش آن قسمت استفاده شده است.

معماری: سایت یا کارکرد

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

بهترین شیوه

  • سایت را کوچک و سبک نگه دارید. ترجیحا با حجم کد کم و تعداد ماژول های مورد نیاز کمتر.
  • تا جایی که میسر است از ماژول های آماده در سایت دروپال استفاده کنید تا اینکه قطعه کد های شخصی بنویسید.
  • در ماژول های کلیدی دروپال استاد و مهار شوید مثلا در ماژول های Views و Panels.
  • استاندارد های دروپال را در کد هایی شخصی که می نویسید رعایت کنید.
  • به صورت دوره ای معماری سایت را ارزیابی مجدد کنید.

اشتباه 1: تعداد بسیار زیادی ماژول! بیشتر از 200 ماژول فعال، نشان می دهد که همه آنها باید تحلیل شوند که آیا برای سایت ضروری هستند یا خیر.
نمونه: در طرح ریزی اولیه سایت مشخص شده است که سایت باید چند زبانه باشد ولی در نهایت سایت فقط برای انگلیسی ساخته شده و مورد استفاده قرار می گیرد. همه ماژول های چند زبانی در هسته دروپال و آنهایی که از سایت دروپال دانلود شده اند، در سایت نصب شده و فعال مانده اند.
راه حل: به صورت دوره ای سایت را بررسی کنید و ماژول هایی که مورد استفاده ندارند را غیر فعال کرده و از حالت نصب خارج نموده و حتی فایل های کد آنها را پاک کنید.

اشتباه 2: تعداد بسیار زیادی نقش کاربری (Role)، که نگهداری و بررسی امنیتی را سخت می کند.
نمونه: پلن اولیه پروژه تعداد زیادی نقش برای کاربران سایت را تعریف می کند ولی بسیاری از آنها استفاده نمی شود. اغلب نقش ها، تلاش می کنند به عناوین شغلی خیلی نزدیک باشند.
راه حل: نقش ها و مجوز های دسترسی را در سایت خود بررسی کنید. آنها را در نقش های کارکردی مختلف گروه بندی کرده و از خاصیت ارث بری در مجوز ها استفاده کنید.

اشتباه 3: نوشتن کد سفارشی وقتی که ماژول آماده از قبل در سای دروپال برای این منظور موجود بوده است.
نمونه: یک ماژول سفارشی برای ایجاد فرمی که اطلاعاتی را برای مدیر سایت ارسال کند.
راه حل: در این نمونه ماژول وب فرم به صورت کامل تست شده و قابل استفاده است و بنابراین نیازی به نوشتن چنین ماژولی نبود. بنابراین ابتدا مطمئن شوید که هیچ ماژول آماده ای کار مورد نظر شما را انجام نمی دهد.

اشتباه 4: تغییر کد های هسته دروپال یا ماژول های آماده. رفتار سایت را غیر قابل پیش بینی می کند و آپدیت سایت را نیز مشکل می سازد.
راه حل: اگر هسته دروپال یا ماژول های دیگر کار مورد نظر شما را انجام نمی دهند، بهتر است دست به کار شوید و یک ماژول جدیدی ایجاد کرده و رفتار مورد نظر را با بهره گیری از API دروپال تغییر بدهید.

اشتباه 5: نوشتن یک کد سفارشی که از توابع هوک نادرستی استفاده می کند و یا از Drupal API را به درستی به کار نمی گیرد.
نمونه 1: استفاده از hook_init که در زمان بارگزاری تمام صفحات صدا زده می شود برای کاری که فقط در صفحه اصلی سایت قرار است انجام شود.
نمونه 2: ماژول های سفارشی با اطلاعات که هارکد شده اند مثل شناسه یک محتوا، شناسه یک دسته، شناسه یک واژگان. در آینده وقتی تغییراتی صورت بگیرد، عیب یابی مشکلات سخت می شود.
راه حل: وقتی از کد های سفارشی استفاده می کنید، به دقت طرح ریزی کنید. هوک های درست را بیابید و از API صحیح استفاده کنید.

ابزاری که توصیه می کنیم

ماژول Hacked: این ماژول سایت دروپالی شما را اسکن کرده و مشخص می کند که آیا کد های آن تغییر کرده است یا خیر. البته این کار را برای ماژول ها و پوسته های موجود در سایت دروپال نیز انجام می دهد. اگر ماژول Diff را نیز در کنار آن استفاده کنید، محل دقیق تغییرات را نیز به شما نشان می دهد. البته این ماژول ها در نسخه نهایی سایت بهتر است استفاده نشوند.
سایت Simplytest.me: در این سایت کافی است نام یک ماژول دروپال را وارد کنید و این سایت برای مدت زمان سی دقیقه یک وب سایت دروپالی تستی به شما می دهد که ماژول مورد نظر در آن فعال شده و می توانید آن را به سادگی تست کنید.

نظرات

من به عنوان یه دروپالی از شما سپاسگزارم خسته نباشید خداقوت

مرسی، بسیار آموزنده بود.

بسیار بسیار عالی
ممنون هستم بخاطر مطلب پرمحتوا که میدونم حاصل تجربه علمی و عملیتون هست .
موفق باشید

ارسال نظر