آموزش زبان انگلیسی (دورهٔ ۹۰ درسی) · درس ۵۲ از ۹۰

واژگانِ برنامه‌نویسی؛ از variable تا deployment

⚡ پاسخ کوتاه

واژه‌های کد، فعل‌محورند: define a variable, call a function, throw an error, catch it, return a value. این درس فعلِ درست را به هر اسمِ فنی می‌چسباند — چون در گفتارِ تیم، «اسم را بلد بودن» کافی نیست؛ باید بدانی با آن «چه می‌کنند».

درس ۵۲ از ۹۰ — واژگانِ برنامه‌نویسی؛ از variable تا deployment

کدنویسی، زبانِ دومِ توست؛ اما انگلیسیِ آن، لایهٔ سومِ پنهانی دارد که در جلسات و ریلویوها بلند بلند حرف می‌زند: it returns null, the loop breaks, the branch fails. این درس آن لایه را ساختیافته می‌کند — اسم‌ها با فعل‌های قالبی‌شان، و چرخهٔ حیاتِ کد از نوشتن تا رفتن به production.

اگر برنامه‌نویس نیستی و «فقط» دانشجوی تکنولوژی هستی، باز همین درس معیار است: واژگانِ کد، زبانِ مشترکِ همهٔ شغل‌های فنی است — از تستر تا مدیرِ محصول.

داده و منطق؛ اسم و فعلِ پایه

اسم فعلِ درست جمله
variable define / declare / assign I declared the variable but never assigned it.
function / method call / define / return This function returns a boolean.
parameter / argument pass Pass the user ID as a parameter.
loop iterate / break / continue The loop breaks when it finds a match.
condition check / evaluate It checks if the user is logged in.
array / list filter / map / sort Filter the list before sorting it.
object create / instantiate We create a new instance per request.
class extend / inherit This class extends the base controller.
value return / store / override It overrides the default value.
The function takes an ID, fetches the user from the cache, and returns the profile — or null if it's missing.تابع یک ID می‌گیرد، کاربر را از کش می‌آورد و پروفایل را برمی‌گرداند — یا null اگر نباشد.

خطا و اصلاح؛ زبانِ باگ‌ها

فعل‌های خانوادهٔ خطا: throw (انداختنِ خطا: it throws an exception), raise (همان با لهجهٔ پایتون: raise ValueError), catch / handle (گرفتن و مدیریت), fix / patch (اصلاح), break (شکستن — کد یا تست), crash (افتادنِ برنامه). خطاها: error (عام), exception (مدیریت‌پذیر), warning (هشدار), TypeError / NullPointer (انواعِ معروف). جمله‌های روزِ غم: "It throws a null pointer when the list is empty." · "I can't reproduce it locally." (روی سیستمِ من بازسازی نمی‌شود — جملهٔ مقدسِ دیباگ!) · "It's a race condition." (شرطِ مسابقه — دو چیز هم‌زمان).

I found the bug — we were mutating the list while iterating over it.باگ رو پیدا کردم — لیست رو موقعِ پیمودنش تغییر می‌دادیم.

چرخهٔ حیاتِ کد؛ از commit تا production

خطِ تولیدِ کد: write → commit → push → review → merge → build → test → deploy. محیط‌ها: local (دستگاهِ تو) ← dev / staging (محیطِ آزمایشِ اشتراکی) ← production (prod) (محیطِ واقعیِ کاربر). جمله‌های چرخه: "I pushed the fix — it's up for review." (فیکس رو پوش کردم — تو صفِ ریلویوئه) · "It's on staging, ready to deploy to prod." · "We rolled back the last release." (انتشارِ قبل رو برگردوندیم — rollback، فعلِ آمرزیدهٔ شب‌های سختی!) و نسخه‌ها: release (انتشار), version (شماره), hotfix (فیکسِ فوریِ prod).

Small fix, big impact: one line on prod fixed the checkout for everyone.فیکسِ کوچک، اثرِ بزرگ: یک خط روی prod، تسویه‌حساب رو برای همه درست کرد.

گرامرِ عمیق‌تر: فعل‌های فنیِ حیاتی و حرفِ اضافه‌شان

فعل‌های فنی، حرفِ اضافه‌ی درست می‌خواهند: depend on (وابسته به — نهِ depend from!), subscribe to (مشترکِ … شدن), listen for/to (گوش‌سپردن به), run against (اجراشدن در برابرِ: run the tests against staging), deploy to (دپلوی به …), merge into (ادغام درِ … — merge into main). و فعل‌های خطا: throws/raises (می‌اندازد), catches (می‌گیرد), swallows (می‌بلعد — خطا را بی‌لوگو قورت می‌دهد!): «The empty catch swallows the error» — یکی از پرتکرارترین نکاتِ ریلویو.

The checkout service depends on the pricing service, so when pricing times out, checkout fails too — the empty catch just swallows the real error.سرویسِ تسویه به سرویسِ قیمت وابسته‌ست، پس وقتی قیمت تایم‌اوت می‌شه، تسویه هم می‌خوابه — و اون کچِ خالی خطایِ واقعی رو قورت می‌ده.

گفتگو: توضیحِ سریعِ باگ به همکار

You: Got a sec? The search endpoint throws a 500 when the query has special characters. — Colleague: Special like what?تو: یه ثانیه داری؟ endpoint جستجو وقتی کوئری کاراکترِ خاص داره 500 می‌اندازه. — همکار: خاص مثلِ چی؟
You: Persian commas, mostly. The parser raises an exception and nothing catches it, so the whole request dies. — Colleague: Ah — classic. Let's catch and sanitize at the input boundary.تو: بیشتر ویرگولِ فارسی. پارسر exception می‌اندازه و هیچ‌کس نمی‌گیردش، پس کلِ درخواست می‌میره. — همکار: آ — کلاسیک. بیا سمتِ ورودی بگیریم و پاک‌سازی کنیم.
You: Exactly — sanitize first, then parse. I'll write the fix and a test with Persian commas. — Colleague: And the empty catch down there — the one that swallows errors? That's a separate ticket, please!تو: دقیقاً — اول پاک‌سازی، بعد پارس. فیکس و یه تست با ویرگولِ فارسی می‌نویسم. — همکار: و اون کچِ خالی پایین — همونی که خطاها رو قورت می‌ده؟ اون تیکتِ جدا باشه لطفاً!

اشتباه‌های رایجِ فارسی‌زبان‌ها در همین درس

این بخش را با یک قرارداد بخوان: هر ❌ یعنی «مغزِ فارسی‌زبانت این را می‌سازد و طبیعی است»، و هر ✅ یعنی «این همان چیزی است که گیرندهٔ انگلیسی‌زبان می‌شنود». خطاها اثرِ مستقیمِ ترجمهٔ ذهنیِ فارسی به انگلیسی‌اند؛ با هر جفت بلند تکرار کن تا شکلِ درست در گوشت نشست کند.

❌ The function returns back a boolean.❌ «بر»می‌گرداند را مغز ذره‌ذره ترجمه می‌کند و back اضافه می‌آورد؛ اما return خودش «بر» را دارد — returns back تکرارِ بی‌معناست. رایج‌ترین خطای گفتارِ کدیِ فارسی‌زبان‌ها، همین backِ سرگردان است.
✅ The function returns a boolean.✅ شکل درست را دو بار بلند بگو؛ حالا یک بار در یک جملهٔ خودت.
❌ I committed my codes.❌ «کدهای من» در فارسی جمع می‌شود؛ اما code در انگلیسیِ فنی جمع‌ناپذیر است: my code، the codebase. codes یعنی چند نظامِ کدنویسی — و آن هم به‌ندرت و در جای دیگر.
✅ I committed my code.✅ شکل درست را دو بار بلند بگو؛ حالا یک بار در یک جملهٔ خودت.
❌ The test is failed.❌ «تست رد شد» را مغز با is failed قاب می‌کند؛ اما fail اینجا فعلِ اصلی است: the test failed. در CI همه فعل می‌گویند — the build fails، the test fails — و جملهٔ تو باید هم‌صدا با ماشین باشد.
✅ The test failed.✅ شکل درست را دو بار بلند بگو؛ حالا یک بار در یک جملهٔ خودت.

تمرین‌های این درس — چهار قدم، بی‌عجله

فعلِ درست و اسمِ درست، زبانِ کد است؛ تمرین‌ها را با جملهٔ کاملِ گفتاری اجرا کن.

  1. جای خالی: «The loop ___ (breaks / returns) when it finds a match, and the function ___ (returns / gives) a boolean.»
  2. اصلاح کن: "I committed my codes, but the test is failed — it throws a null pointer when the list is empty."
  3. چرخهٔ حیاتِ کد را به ترتیب بگو: از نوشتن تا production — هشت فعلِ پشت‌سرهم.
  4. محیط‌ها را بگو و یک جملهٔ واقعی بساز: «فیکس رویِ staging است — آمادهٔ دپلوی به prod».

پاسخ تمرین‌ها — اول خودت جواب بده، بعد باز کن

پاسخ تمرین ۱
breaks و returns — حلقه break می‌خورد و تابع return می‌دهد؛ give در زبانِ کد جایی ندارد. فعلِ هر اسمِ فنی را با خودش قفل کن: the loop breaks، the function returns.
پاسخ تمرین ۲
"I committed my code, but the test failed — it throws a null pointer when the list is empty." — code بی‌جمع و failed بیِ is؛ دو قالبِ کوچکی که گفتارِ کدت را حرفه‌ای می‌کنند.
پاسخ تمرین ۳
write → commit → push → review → merge → build → test → deploy — هشت‌ضربِ خطِ تولیدِ کد؛ در استندآپ هر روز بخشی از همین خط را روایت می‌کنی.
پاسخ تمرین ۴
local → dev/staging → production. جمله: "The fix is on staging, ready to deploy to prod." — سه محیط و یک جملهٔ آماده؛ rollback هم هم‌خانوادهٔ همین خط است: "We rolled back the last release."

چالشِ امروز

🎯 امروز سه جملهٔ کدیِ واقعی دربارهٔ کارِ خودت بلند بگو — "This function takes an ID…", "The loop breaks when…", "I committed the fix — it's up for review." — اسمِ فنی را با فعلِ درستش بگو، نه با ترجمهٔ ذهن‌ات.

نکات مکالمهٔ واقعی که کتاب‌ها کم می‌گویند

  • وابستگی را با on بگو — depend on — نهِ depend from/of. سه فعلِ دیگر: rely on, build on, run on — هر چهار on می‌گیرند؛ قاعدهٔ یک‌خطی.
  • throw/catch/swallow — سه‌گانهٔ خطا را در دو جمله‌ی واقعی تمرین کن — «swallows the error» جمله‌ی که ریلویوهایت را حرفه‌ای می‌کند.
  • یک اصطلاح، یک فلش‌کارت — هر اصطلاحِ فنیِ تازه (edge case, race condition, hot fix) را با جملهٔ واقعی به آپورد بیفزا — اصطلاحِ بی‌جمله، در گفتگو نمی‌آید.
🔑 جمع‌بندی این درس

اسمِ فنی را با فعلش یاد بگیر: declare a variable, call a function, throw/catch an error, break a loop, pass a parameter. چرخه: write→commit→push→review→merge→test→deploy؛ محیط‌ها: local→staging→prod. جمله‌های طلایی: it throws…, can't reproduce it locally, rolled back. این طبقه، زیربنای هر جلسهٔ فنیِ فاز ۴ است.

پرسش‌های رایج

«Refactor» دقیقاً یعنی چه و چه‌زمان بگویم؟
تغییرِ ساختارِ کد بدونِ تغییرِ رفتارش — به‌جهتِ خوانایی/کیفیت: "I refactored the service — same behavior, half the code." اگر رفتار عوض شود دیگر refactor نیست: آن یا fix است یا feature یا breaking change. در ریلویو، پیشنهادِ محترمانهٔ کدِ تمیزتر: **"Should we refactor this into a helper?"** (Should we = نرم‌ترین قالبِ پیشنهادِ فنی).
Feature و fix و change و ticket؟
feature = قابلیتِ جدید; fix/bugfix = اصلاح; change = هر تفاوتِ کد (خنثی و همه‌کاره); ticket = واحدِ کار در سیستمِ مدیریت (Jira و امثالش). جمله: **"I picked up the ticket about the login bug — it's a small fix, maybe an hour."** کارِ روزمرهٔ تیم حول همین چهار واژه می‌چرخد و درس ۵۴ (اسکرام) بقیه‌اش را می‌آورد.

انگلیسی را همین امروز در گوشی‌ات تمرین کن

واژه‌های این درس را هر جا که دیدی با منوی «ذخیره در آپ‌ورد» به فلش‌کارت‌هایت اضافه کن؛ الگوریتم مرور فاصله‌دار سرِ موعد یادآوری‌شان می‌کند، تلفظ‌شان را می‌شنوی و در مکالمهٔ هوش مصنوعی همان‌جا که لازم است استفاده‌شان می‌کنی.