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، جدا از
           مسیر تشخیصی"
  خطاها: "نوع خطای اختصاصی کانکتور، تا شکست انتقال و
          دسترسی هیچ‌وقت به‌شکل یافته خوانده نشود"
  مدل: "قابل انتخاب از پیکربندی، نه هاردکد"
}

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

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

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