Amirali Yaghoutiمهندس ارشد نرم‌افزار

مطالعه موردی مهندسی

دکتر هوشمند WooCommerce

بیشتر ابزارهای ممیزی وردپرس برای هر سایتی یک گزارش تحویل می‌دهند. این یکی از خودِ نصب شروع می‌کند: با REST API وصل می‌شود، می‌خواند که واقعاً چه چیزی پیکربندی شده، و درباره‌ی همان حرف می‌زند، نه درباره‌ی یک سایت ووکامرس فرضی.

مسئله تجاری

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

آنچه تحویل دادم

  • یک سرویس FastAPI که هم API تشخیصی دارد و هم رابط مرورگری؛ هم دستی استفاده می‌شود و هم از ابزار دیگری فراخوانی.
  • یک کانکتور وردپرس که با رمز اپلیکیشن روی REST API احراز هویت می‌کند. یعنی لازم نیست چیزی روی سایت هدف نصب شود، و دسترسی از صفحه‌ی کاربران وردپرس قابل ابطال است.
  • یک لایه‌ی پیکربندی که اندپوینت وردپرس، اعتبارنامه‌ها و انتخاب مدل را جدا از منطق تشخیص نگه می‌دارد.
  • یک نوع خطای اختصاصی برای کانکتور، تا سایتی که در دسترس نیست یا بد پیکربندی شده، پیام روشن بدهد نه stack trace.
  • انتخاب مدل از روی پیکربندی و نه هاردکد، تا موتور بدون دست‌زدن به کد تشخیص عوض شود.

رویکرد فنی

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

نتیجه و شواهد

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

اهمیت برای کارفرما

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

خلاصه-اجرایی-پروژه

خلاصه اجرایی خوانا

خلاصه_اجرایی {
  پروژه: "WooCommerce Diagnostic Assistant"
  پشته: "Python، FastAPI، قالب‌های Jinja2، پیکربندی Pydantic"
  دسترسی: "WP REST API + رمز اپلیکیشن، قابل ابطال توسط مالک"
  نصب_روی_هدف: "هیچ"
  ساختار: "core/wp_connector + core/config، جدا از
           مسیر تشخیصی"
  خطاها: "نوع خطای اختصاصی کانکتور، تا شکست انتقال و
          دسترسی هیچ‌وقت به‌شکل یافته خوانده نشود"
  مدل: "قابل انتخاب از پیکربندی، نه هاردکد"
}

ارزش حرفه‌ای این پروژه

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

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