Skip to content

استایل گاید — راهنمای یکپارچه استانداردها

Global Style Guide

نسخه 2.0 | الزامی برای همه سرویس‌ها، پکیج‌ها و مشارکت‌کنندگان

این سند نمای کلی تمام استانداردهای پروژه نونز است. هر بخش به یک فایل مجزا لینک می‌دهد که جزئیات کامل در آن آمده.


اصول پایه

  • فارغ از تکنولوژی: این استانداردها برای همه سرویس‌ها صرف نظر از زبان یا فریم‌ورک الزامی است
  • زبان رسمی: کد منبع به انگلیسی — مستندات محصول به فارسی
  • اجرا: رعایت این استانداردها برای همه اعضای تیم الزامی است

۱. استانداردهای عمومی

#عنوانتوضیح کوتاهفایل
۱خط مشی زبانزبان رسمی کد (انگلیسی)، موارد مجاز فارسی، ممنوعیت‌هاlanguage-policy.md
۲قراردادهای نام‌گذاریفایل‌ها، دیتابیس، env vars، Docker images، NATS، API، Error Codesnaming-conventions.md
۳ساختار مخزنساختار استاندارد هر سرویس، monorepo، مرجع سریعrepository-structure.md
۴نسخه‌بندیSemantic Versioning، پیش‌انتشار، تگ‌گذاری، وابستگی نسخه‌هاversioning-policy.md
۵امنیترازها، parameterized queries، JWT expiry، HTTP-only cookiessecurity-policy.md

۲. مستندات و ارتباطات

#عنوانتوضیح کوتاهفایل
۶مستندات سرویسفایل‌های اجباری docs/، توضیح هر فایل، قوانین به‌روزرسانیdocs-policy.md
۷الگوی READMEساختار اجباری docs/README.md با مثال کاملreadme-template.md
۸تغییرات (CHANGELOG)ساختار Keep a Changelog، بخش‌ها، چرخه به‌روزرسانیchangelog-policy.md

۳. طراحی API

#عنوانتوضیح کوتاهفایل
۹راهنمای طراحی APIمرجع رسمی طراحی API — نسخه‌گذاری، پوسته پاسخ، خطا، صفحه‌بندی، فیلتر، مرتب‌سازی، جستجو، تاریخ، شناسه، احراز هویت، نام‌گذاری، کدهای وضعیت، Nullable، Deprecationapi-design-guidelines.md
۱۰راهنمای تولید OpenAPIاستاندارد تولید، اعتبارسنجی و انتشار OpenAPI — نسخه، ابزار، پایپلاین CI، فراداده، امنیتopenapi-guidelines.md
۱۱قرارداد رویدادپوسته استاندارد NATS، فیلدها، versioning payloadevent-contract.md

۴. توسعه و کیفیت

#عنوانتوضیح کوتاهفایل
۱۲تستواحد و یکپارچه، CI، پوشش، قوانینtesting-policy.md
۱۳استاندارد لاگ‌نویسیJSON ساختاریافته، سطوح، قوانین PIIlogging-standard.md
۱۴تعریف انجام شده (DoD)چک‌لیست کامل پذیرش Feature/PRdefinition-of-done.md

۵. چرخه عمر سرویس

#عنوانتوضیح کوتاهفایل
۱۵بلوپرینتالزامات پیش از توسعه، فایل‌ها، تأیید تیمیblueprint-policy.md
۱۶دمو (پیش‌نمایش)HTML/CSS ساده، قوانین فنی، همگام‌سازی با سرویسdemo-policy.md
۱۷گیت (کامیت و برنچ)فرمت کامیت، فرمت برنچ، workflow، PRgit-policy.md
۱۸مصنوعات ساخت.dockerignore، multi-stage build، امنیت buildbuild-artifact-policy.md

۶. یکپارچگی و حاکمیت

#عنوانتوضیح کوتاهفایل
۱۹قرارداد مجوز (Permission Contract)تعریف، ثبت و مصرف Permissions توسط سرویس‌ها در IAMpermission-contract-standard.md
۲۰همگام‌سازی مجوزها و SDKراهکار هماهنگی مجوزهای IAM، هدرهای Auth و زنجیره codegen SDKpermission-and-sdk-sync-standard.md

مرجع سریع

محتوامکان
استاندارد طراحی APIdocs/team/platform/api/api-design-guidelines.md
استاندارد تولید OpenAPIdocs/team/platform/api/openapi-guidelines.md
قراردادهای پلتفرم (Proto)nons-api/contracts/
انواع داده Platformnons-api/contracts/*.proto (تولیدشده در nons-api/packages/contracts)
قراردادهای API و کدهای خطاnons-api/contracts/*.proto (تولیدشده در nons-api/packages/contracts)
کاتالوگ رویدادهاnons-api/catalog/events/ (YAML) + ساختار Envelope در Proto
قرارداد لاگینگnons-api/packages/logging/
مصنوعات فرانت‌اند (Types, API Client, Hooks).nons/generated/ (تولیدشده توسط nons generate)
انتزاعات دامنهnons-api/core/
کد منبع سرویسnons-api/services/{name}/src/
تست‌های سرویسnons-api/services/{name}/tests/
مستندات سرویسnons-api/services/{name}/docs/
دموی سرویسnons-api/services/{name}/demo/
طرح اولیه سرویسnons-api/services/{name}/blueprint/
تغییرات سرویسnons-api/services/{name}/CHANGELOG.md
مانیفست‌های K8snons-api/infra/k8s/
اسرارهیچ‌کجا در git — از secret manager استفاده کنید

مسیر یادگیری پیشنهادی

  1. language-policy.md — قوانین زبانی
  2. naming-conventions.md — نام‌گذاری
  3. repository-structure.md — ساختار پروژه
  4. api-design-guidelines.md — استاندارد طراحی API
  5. openapi-guidelines.md — استاندارد تولید OpenAPI
  6. git-policy.md — گردش کار گیت
  7. definition-of-done.md — تعریف انجام شده
  8. ADR-Platform-001_Contract-Layer — معماری لایه قراردادها
  9. ADR-Platform-004 — استراتژی مدیریت قراردادها و تولید مصنوعات کلاینت
  10. سایر استانداردها بر اساس نیاز

Released under the MIT License.