Devobin
عکس
برای نمایش کلیک کنید
برای نمایش کلیک کنید
یکی از پروژههایی که حدود یک ساله دارم روش کار میکنم، به خاطر شرایط جنگ و بیشتر از ۱۰۰ روز قطعی اینترنت و از دسترس خارج شدن روترهای خارجی، برای مدتی متوقف شد.
وقتی بعد از چند ماه دوباره برگشتم سراغش، با اینکه خودم تمام معماری و کدها رو نوشته بودم، چند ساعت زمان برد تا دوباره ارتباط بین سرویسها، منطق بعضی کلاسها و دلیل بعضی تصمیمها رو به خاطر بیارم.
همونجا فهمیدم که اسم خوب برای متدها و کلاسها به تنهایی کافی نیست. چیزی که بعد از چند ماه از ذهنت میره، منطق پشت تصمیمهاست.
از اون به بعد برای کلاسها، سرویسها و متدهایی که منطق مهمی دارن، Docstring و توضیحات اضافه میکنم. نه برای اینکه کد رو خط به خط توضیح بدم، بلکه برای اینکه مشخص باشه:
این بخش دقیقاً چه مسئولیتی داره؟
چرا این راهحل انتخاب شده؟
ورودی و خروجی مورد انتظار چیه؟
اگر کسی خواست این قسمت رو تغییر بده، باید حواسش به چه چیزهایی باشه؟
شاید نوشتن این توضیحات هر بار چند دقیقه زمان ببره، اما در عوض وقتی چند ماه بعد دوباره به پروژه برمیگردم، لازم نیست ساعتها وقت صرف کنم تا منطق سیستم رو از روی کدها مهندسی معکوس کنم.
10 · 1.4K ·