الزامات مستندسازی
فهرست مطالب
فلسفه مستندسازی
تیم ما معتقد است که مستندسازی جامع برای حفظ یک پایگاه کد پایدار و فرآیند توسعه کارآمد ضروری است. فلسفه مستندسازی ما با این اصول هدایت میشود:
- مستندسازی به عنوان شهروند درجه یک: مستندسازی به اندازه کد مهم است
- برای آینده بنویسید: مستندات را برای اعضای آینده تیم (از جمله خود آیندهتان) بنویسید
- متن مهم است: «چرایی» پشت تصمیمات را توضیح دهید، نه فقط «چه» و «چگونگی» را
- بهروز نگهداری کنید: مستندات قدیمی اغلب از نبود مستندات بدتر است
- سطح مناسب جزئیات: تعادل بین جامعیت و قابلیت نگهداری را رعایت کنید
انواع مستندات مورد نیاز
- مستندات کد
- مستندات API
- مستندات معماری
- مستندات فرآیند
الزامات مستندات کد
مطابق با استانداردهای کدنویسی جهانی:
- PHPDoc/JSDoc: تمام متدها و کلاسهای عمومی باید بلوکهای مستنداتی داشته باشند
- منطق پیچیده: توضیحات درون خطی برای کدهای غیربدیهی اضافه کنید
- ثابتها: هدف و مقادیر معتبر ثابتها را مستند کنید
- استثناها: زمان و دلیل پرتاب استثناها را مستند کنید
- وابستگیها: وابستگیهای خارجی و هدف آنها را مستند کنید
مثال مستندات متد PHP:
/**
* بازیابی کاربر با استفاده از آدرس ایمیل
*
* @param string $email آدرس ایمیل کاربر
* @return User|null شیء کاربر در صورت یافتن، در غیر این صورت نال
* @throws InvalidArgumentException اگر فرمت ایمیل نامعتبر باشد
*/
public function getUserByEmail(string $email): ?User
{
// پیادهسازی
}
الزامات مستندات API
- OpenAPI/Swagger: تمام نقاط پایانی API باید با OpenAPI مستند شوند
- پارامترهای درخواست: تمام پارامترها، انواع آنها و محدودیتها را مستند کنید
- فرمت پاسخ: ساختار پاسخ و کدهای وضعیت ممکن را مستند کنید
- احراز هویت: الزامات احراز هویت را مستند کنید
- محدودیت نرخ: محدودیتهای نرخ اعمال شده را مستند کنید
- مثالها: مثالهای درخواست و پاسخ ارائه دهید
برای جزئیات بیشتر به صفحه مستندات API ما مراجعه کنید.
الزامات مستندات معماری
- مرور سیستم: توضیح سطح بالای معماری سیستم
- نمودارهای کامپوننت: نمایش بصری کامپوننتهای سیستم
- نمودارهای جریان داده: نحوه حرکت دادهها در سیستم
- نمودارهای توالی: برای تعاملات پیچیده بین کامپوننتها
- سوابق تصمیمگیری: مستندسازی تصمیمات کلیدی معماری
برای جزئیات بیشتر به صفحه مستندات معماری ما مراجعه کنید.
الزامات مستندات فرآیند
- گردش کار توسعه: گردش کار گیت، استراتژی شاخهبندی و غیره
- فرآیند استقرار: مراحل استقرار در محیطهای مختلف
- استراتژی تست: رویکرد به تستهای واحد، یکپارچهسازی و پایان به پایان
- فرآیند انتشار: مراحل آمادهسازی و اجرای انتشارات
- پاسخ به رویدادها: رویههای رسیدگی به مسائل تولید
استانداردهای مستندسازی
قالببندی
- از Markdown برای تمام مستندات استفاده کنید
- از ساختار سربرگ یکپارچه پیروی کنید
- از بلوکهای کد با هایلایت سینتکس مناسب استفاده کنید
- جداول را برای دادههای ساختاریافته شامل شوید
- در صورت لزوم از نمودار استفاده کنید (ترجیحاً Mermaid.js)
سبک نگارش
- به زبان واضح و مختصر بنویسید
- از صیغه معلوم استفاده کنید
- مشخص و همراه با مثال بنویسید
- از اصطلاحات تخصصی و اختصارات بدون توضیح خودداری کنید
- از اصطلاحات یکسان استفاده کنید
سازماندهی مستندات
- مستندات مرتبط را گروهبندی کنید
- از نام فایلها و عناوین توصیفی استفاده کنید
- برای اسناد طولانی فهرست مطالب قرار دهید
- به مستندات مرتبط لینک دهید
- از تگها برای قابلیت جستجو استفاده کنید
ابزارهای مستندسازی
- Docusaurus: پایگاه دانش اصلی (همین سایت)
- PHPDoc/JSDoc: مستندات کد
- OpenAPI/Swagger: مستندات API
- Mermaid.js: نمودارهای تعبیه شده در Markdown
- Confluence: مستندات اضافی پروژه
فرآیند بازبینی مستندات
مستندات باید به عنوان بخشی از فرآیند بازبینی کد بررسی شوند:
- بررسی کاملبودن و صحت
- تأیید بهروز بودن مستندات
- اطمینان از رعایت استانداردهای مستندسازی
- تأیید کارکرد مثالهای ارائه شده
- بررسی وضوح و خوانایی
نگهداری مستندات
- با تغییر کد، مستندات را بهروز کنید
- مستندات را سهماه یکبار برای دقت بررسی کنید
- مستندات منسوخ را بایگانی کنید
- بدهی مستندات را همزمان با بدهی فنی ردیابی کنید
- برای بخشهای مختلف، مالک مستندات تعیین کنید
معیارهای مستندات
این معیارها را برای اطمینان از کیفیت مستندات ردیابی میکنیم:
- پوشش مستندات (درصد کد دارای مستندات)
- تازگی مستندات (تاریخ آخرین بهروزرسانی)
- کاملبودن مستندات (بر اساس چکلیست)
- بازخورد کاربران درباره مفید بودن مستندات
- زمان صرف شده توسط اعضای جدید تیم برای یافتن اطلاعات
یکپارچهسازی با فرآیند توسعه
مستندسازی در فرآیند توسعه ما یکپارچه شده است:
- بهروزرسانیهای مستندات در درخواستهای ادغام الزامی است
- خطلوله CI/CD پوشش مستندات را بررسی میکند
- مستندسازی بخشی از تعریف تکمیل کار است
- زمان مستندسازی در برآورد وظایف لحاظ میشود
- کیفیت مستندسازی بخشی از معیارهای بازبینی کد است