codistill – استخلاص SSOT من الكود الموجود Image: AI generated

إذا كنت تريد تبني SSOT في مشروع قائم لكن لا تستطيع إعادة الكتابة من الصفر، إذا كنت تريد استخلاص OpenAPI وDDL تلقائياً من كود Go/NestJS/FastAPI القديم — codistill يعصر المواصفات من الكود الموجود.

“لدينا بالفعل 200 نقطة نهاية”

شخص يقرأ مقال yongol ويسأل: “جيد، لكن مشروعنا لديه بالفعل عشرات الآلاف من الأسطر. هل نحتاج لكتابة SSOT من الصفر؟”

البدء من الصفر سيكون مثالياً، لكنه مستحيل عملياً. لا يستطيع أي فريق إيقاف خدمة تعمل وكتابة المواصفات من الصفر.

لذلك صُنع codistill. يستخلص SSOT من الكود الموجود.


ضع الفاكهة كاملة، يخرج العصير

codistill يحلل كود إطار العمل الويب بشكل ساكن لاستخلاص المواصفات التصريحية تلقائياً.

codist scan --openapi ./my-project

سطر واحد ينتج مواصفات OpenAPI 3.0 من الكود الموجود. ما كان يستغرق أياماً من العمل اليدوي ينتهي في ثوانٍ.

صفر حمل على وقت التشغيل. لا حاجة للقياس. تحليل ساكن بحت.


ثلاثة أطر عمل

إطار العملاللغةالاستخلاص
GinGoالمسارات، الربط، الاستجابات، الوسيط
NestJSTypeScriptالمزخرفات، DTOs، الحراس، المعترضات
FastAPIPythonالمسارات، نماذج Pydantic، التبعيات

تجميع DDL

codist ddl ./migrations -o ./schema

يقرأ تاريخ الترحيل بالكامل ويخرج لقطة CREATE TABLE نظيفة لكل جدول.


هيكلة استعلامات sqlc

codist sql next --repo ./repository --queries ./db/query

next – سير عمل السقاطة. يعرض طريقة Repository التالية بدون استعلام.


الدخول إلى خط أنابيب yongol

خرج codistill هو دخل yongol. codistill يستخلص SSOT من الكود الموجود؛ yongol يتحقق من الاتساق ويولّد الكود. التحول من brownfield إلى greenfield يحدث تدريجياً.

ليس أساسات بل تعزيز مقاوم للزلازل. نمط Strangler Fig لـ Fowler (2004).


ابدأ

npx skills add park-jun-woo/codistill
codist scan --openapi ./my-project

الكود الموجود يصبح عصيراً.

الكود: github.com/park-jun-woo/codistill


المراجع

  • Huang, R. et al. (2024). Generating REST API Specifications through Static Analysis. ICSE 2024. ACM
  • Perry, D. E. & Wolf, A. L. (1992). Foundations for the Study of Software Architecture. ACM
  • Fowler, M. (2004). StranglerFigApplication. Link
  • Lercher, A. et al. (2024). Generating Accurate OpenAPI Descriptions. arXiv
  • Chauhan, S. et al. (2026). OpenAI for OpenAPI. arXiv
  • De Silva, L. & Balasubramaniam, D. (2012). Controlling software architecture erosion. ScienceDirect
  • Fritzsch, J. et al. (2019). Microservices Migration in Industry. arXiv
  • Curino, C. A. et al. (2008). Graceful database schema evolution. VLDB
  • Nghiem, D. et al. (2023). REST API Design Practices. IEEE

مقالات ذات صلة