توضیحدادنِ کد؛ «این تابع چهکاره است؟» به انگلیسی
توضیحِ کد سه سطح دارد: دیدِ کلی (at a high level, this service handles…), مسیرِ داده (the flow goes from A to B), و جزئیاتِ تصمیم (we chose X because Y). قالبهای طلایی: "Let me walk you through it" و "In a nutshell…" — و هنرِ شنیدنِ «چرا اینطور نوشتی؟» بدون حالتِ دفاعی.
تواناییِ نوشتنِ کد با کیفیت ثابت میشود؛ اما «توضیحِ کد» است که در ریلویو، جلسه و مصاحبه ارزیابی میشود. برای زبانِ دوم، این سختترین بخش فنی است چون همزمان باید فکر و جمله و ساختار بدهی. راهحل همان قالبهای ثابت است: وقتی اسکلتِ توضیح از حفظ باشد، مغز فقط روی محتوا میماند.
این درس را با کدِ واقعیِ خودت تمرین کن: یک فایلِ را انتخاب کن و توضیحش را بلند بده — یا در پیامِ صوتی به خودت یا با اپِ مکالمهٔ آپورد. جلسهٔ بعدی که کسی پرسید «what does this do?», جوابِ تو آماده است.
سه سطحِ توضیح؛ کلی ← مسیر ← تصمیم
۱) دیدِ کلی (کلان): "At a high level, this service handles user authentication. It sits between the app and the user database." (در یک نگاه: این سرویس احرازِ هویت را هندل میکند — بینِ اپ و دیتابیسِ کاربر نشسته.) ۲) مسیرِ داده: "The flow goes like this: the client sends a token, we validate it against the auth service, then attach the user to the request." (جریان اینطوره: کلاینت توکن میفرسته، ما با سرویسِ احراز چکش میکنیم، بعد کاربر رو به درخواست میچسبونیم.) ۳) تصمیم: "We cached the result because the auth call is the slowest part of the request." (کَش کردیم چون صدا زدنِ احراز کندترین قسمتِ درخواسته.) — این سه سطح، کلِ توضیحِ فنی را پوشش میدهند؛ سطح را با مخاطب انتخاب کن: مدیر؟ سطحِ ۱. همکار؟ ۲ و ۳.
قالبهای طلایی؛ جعبهٔ ابزارِ توضیح
| قالب | کی | نمونه |
|---|---|---|
| Let me walk you through it. | شروعِ توضیحِ خطبهخط | Let me walk you through the main function. |
| In a nutshell, … | خلاصهٔ یکنفسی | In a nutshell, it's a message queue for events. |
| The idea is (that)… | ایدهٔ اصلی | The idea is to keep the hot path fast. |
| Basically, … | سادهسازی | Basically, we retry three times, then give up. |
| Think of it as… | تشبیه | Think of it as a translator between two APIs. |
| The catch is… | نکتهٔ پنهان | The catch is: it only works on weekdays. |
| Long story short, … | جمعبندی | Long story short, we cut page load in half. |
پرسیدهشدن از کدت؛ بدونِ حالتِ دفاعی
سوالِ کلاسیکِ ریلویو: "Why did you do it this way?" — سه قالبِ جوابِ حرفهای: ۱) دلیل + بدیل: "I chose the in-memory cache for speed. Redis would be more durable, but for this use case it wasn't worth the extra hop." (سرعت بود؛ ردیس بادوامتره ولی برای این کِیس نمیارزید.) ۲) اعترافِ محترمانه: "Honestly, that's a fair point — I can switch it to the async version." (نکتهٔ منصفانهایه — میتونم به نسخهٔ async عوضش کنم.) ۳) مرزِ دانش: "I'm not sure about the trade-off there — let me check with the platform team." — هیچکدام دفاعی نیستند؛ هر سه، جملههای مهندسِ خبرهاند. و توضیحِ جریانِ طولانی را قطعهبندی کن: "First… then… and finally…" — شنونده همراهت میماند.
گرامرِ عمیقتر: قالبهای walk-through و زبانِ جریان
توضیحِ کد، سه فعلِ جریان دارد: goes (میرود): the request goes through the gateway · hits (برخورد میکند): it hits the cache first · returns (برمیگرداند): the service returns a signed URL. برای ترتیب: first, then, after that, finally — و برای مشروطها: if the token is invalid, we reject early (اگر توکن نامعتبر بود، زود رد میکنیم — «reject early» اصطلاحِ محبوبِ کدِ تمیز). و برای طبقه: At a high level… (از بالا) · Drilling down… (پایین میرویم) · The gist is… (جِهتِ کلام اینه…).
گفتگو: لید میپرسد «چرا اینطور نوشتی؟»
اشتباههای رایجِ فارسیزبانها در همین درس
این بخش را با یک قرارداد بخوان: هر ❌ یعنی «مغزِ فارسیزبانت این را میسازد و طبیعی است»، و هر ✅ یعنی «این همان چیزی است که گیرندهٔ انگلیسیزبان میشنود». خطاها اثرِ مستقیمِ ترجمهٔ ذهنیِ فارسی به انگلیسیاند؛ با هر جفت بلند تکرار کن تا شکلِ درست در گوشت نشست کند.
تمرینهای این درس — چهار قدم، بیعجله
توضیحِ کد مهارتِ زبانیِ جداست؛ تمرینها را با کدِ واقعیِ ذهنِ خودت اجرا کن و بلند بگو.
- سه سطحِ توضیح را برای یک سرویسِ احرازِ هویت بگو: دیدِ کلی ← مسیرِ داده ← تصمیم.
- اصلاح کن: "I explain you: this function is for to check the token, and if it is empty it gives error."
- قالبِ تشبیه را اجرا کن: «مثلِ مترجمِ بینِ دو API به آن فکر کن» + نتیجه برای مخاطبِ غیرِفنی.
- جوابِ «چرا اینطور نوشتی؟» را بگو: دلیل + بدیل — کشِ در حافظه در برابرِ ردیس.
پاسخ تمرینها — اول خودت جواب بده، بعد باز کن
پاسخ تمرین ۱
پاسخ تمرین ۲
پاسخ تمرین ۳
پاسخ تمرین ۴
چالشِ امروز
🎯 یک تابعِ واقعی از کدت را امروز برای «هیچکس» بلند توضیح بده — با Let me walk you through it شروع کن و با The gist is… تمام کن؛ دهدقیقهای که جلسهٔ بعدیات را جلو میاندازد.
نکات مکالمهٔ واقعی که کتابها کم میگویند
- سهسطح را با مخاطب چین — مدیر: At a high level. همکار: مسیر + تصمیم. جونیور: خطبهخط. سطحِ اشتباه، توضیحِ خوب را هدر میدهد.
- چرا را با because not بگو — «We cache because the auth call is slow» — و بدیل را با otherwise: «Otherwise every request pays the penalty.» — جفتِ because/otherwise، منطقِ مهندسی را تمامقد میآورد.
- تمرینِ بلندِ روزانه — روزی یک تابعِ خودت را برای «هیچکس» بلند توضیح کن — ده دقیقه؛ جلسهٔ بعدی که پرسیدند، تو جلوتری.
توضیحِ کد سهسطحی: کلی (at a high level), مسیر (the flow goes…), تصمیم (we chose X because Y). جعبهقالب: walk you through it / in a nutshell / think of it as / the catch is. جوابِ «چرا اینطور؟» سهقالبی: دلیل+بدیل، اعترافِ منصفانه، مرزِ دانش. تمرینِ این درس: کدِ واقعیِ خودت را بلند توضیح کن — جلسهی بعد، این تمرین حرف اول را میزند.