در حال دریافت اطلاعات ...
بیشتر فعلها در زبان انگلیسی باقاعده هستند. برای تبدیل آنها به گذشته، فقط کافی است به آخرشان ed- اضافه کنید.
work → worked (کار کرد)
invite → invited (دعوت کرد)
study → studied (مطالعه کرد)
stop → stopped (توقف کرد)
مثال:
I worked in a department store.
(من در یک فروشگاه بزرگ کار میکردم.)
The police stopped me on my way home last night.
(پلیس دیشب در راه خانه مرا متوقف کرد.)
برخی از فعلها از قانون ed- پیروی نمیکنند و شکل کلی آنها در زمان گذشته تغییر میکند (یا گاهی ثابت میماند). این فعلها را باید حفظ کنید.
write → wrote (نوشت)
see → saw (دید)
go → went (رفت)
shut → shut (بست)
مثال:
Mozart wrote more than 600 pieces of music.
(موتزارت بیش از ۶۰۰ قطعه موسیقی نوشت.)
I went to the cinema three times last week.
(هفته گذشته سه بار به سینما رفتم.)
برای سوالی یا منفی کردن زمان گذشته ساده (به جز فعل to be)، از فعل کمکی did یا didn’t (did not) استفاده میکنیم.
نکته بسیار مهم: وقتی از did یا didn’t استفاده میکنیم، فعل اصلی به حالت ساده (بدون ed یا تغییر شکل) برمیگردد.
فرمول منفی: Subject + didn’t + base verb
فرمول سوالی: Did + subject + base verb?
مثال منفی:
I didn’t buy anything. (نگویید didn’t bought)
(من هیچ چیز نخریدم.)
مثال سوالی:
Did you enjoy the party? (نگویید Did you enjoyed)
(آیا از مهمانی لذت بردی؟)
نکته: اگر خود فعل do (انجام دادن) فعل اصلی جمله باشد، باز هم به did نیاز داریم:
What did you do at the weekend?
(آخر هفته چه کار کردی؟)
I didn’t do anything.
(هیچ کاری نکردم.)
افعال am / is / are در گذشته به was و were تبدیل میشوند. این افعال برای سوالی و منفی شدن نیازی به did ندارند و خودشان تغییر میکنند.
برای (I / he / she / it) از was (منفی: wasn’t) استفاده میکنیم.
برای (we / you / they) از were (منفی: weren’t) استفاده میکنیم.
مثال:
I was annoyed because they were late.
(من عصبانی بودم چون آنها دیر کرده بودند.)
Was the weather good when you were on holiday?
(وقتی در تعطیلات بودی هوا خوب بود؟)
They weren’t able to come.
(آنها نتوانستند بیایند.)
برای ساخت گذشته استمراری از فعلهای کمکی was/were به همراه فعل + ing استفاده میکنیم.
برای (I / he / she / it) : was + doing
برای (we / you / they) : were + doing
مثال:
They started at 10:00 and finished at 11:30. So, at 10:30 they were playing tennis.
(آنها ساعت ۱۰ شروع کردند و ۱۱:۳۰ تمام کردند. پس در ساعت ۱۰:۳۰ آنها در حال تنیس بازی کردن بودند.)
وقتی میگوییم “I was doing something”، یعنی در آن زمان خاص در گذشته، من وسط انجام آن کار بودم. کار قبل از آن زمان شروع شده بود اما هنوز تمام نشده بود.
مثال:
This time last year I was living in Hong Kong.
(پارسال این موقع، من در حال زندگی کردن در هنگکنگ بودم.)
I waved to Helen, but she wasn’t looking.
(برای هلن دست تکان دادم، اما او نگاه نمیکرد / حواسش نبود.)
گذشته استمراری: وسط انجام یک کار بودیم (کامل نشده).
گذشته ساده: کار از اول تا آخر انجام شد (کامل شده).
مثال مقایسهای:
We were walking home when I met Dan. (وسط راه رفتن به سمت خانه بودم که دن را دیدم.)
We walked home after the party last night. (دیشب بعد از مهمانی، کل مسیر تا خانه را پیاده رفتیم.)
یکی از مهمترین کاربردهای این زمان، وقتی است که شما در حال انجام کاری بودید (گذشته استمراری)، که ناگهان یک اتفاق دیگر افتاد (گذشته ساده).
معمولاً در این جملات از کلمات when (وقتی که) و while (در حالی که) استفاده میشود.
مثالهای مهم:
Matt phoned (ساده) while we were having (استمراری) dinner.
(در حالی که ما داشتیم شام میخوردیم، مت تماس گرفت.)
It was raining (استمراری) when I got up (ساده).
(وقتی بیدار شدم، باران در حال باریدن بود.)
نکته ظریف: اگر چند کار پشت سر هم انجام شوند، همه را گذشته ساده میآوریم:
I was walking when I saw Dan. So I stopped, and we talked.
(داشتم راه میرفتم که دن را دیدم. پس توقف کردم و حرف زدیم.)
برخی از فعلها (مثل دانستن، خواستن، دوست داشتن) حالت را نشان میدهند نه عمل را. این فعلها معمولاً به شکل استمراری (ing-دار) استفاده نمیشوند، حتی اگر در همان لحظه در حال رخ دادن باشند. در عوض باید از همان گذشته ساده برای آنها استفاده کنید.
فعلهای مهم: know (شناختن/دانستن) ، want (خواستن)
مثال:
We were good friends. We knew each other well. (نگویید we were knowing)
(ما دوستان خوبی بودیم. همدیگر را خوب میشناختیم.)
I was enjoying the party, but Chris wanted to go home. (نگویید was wanting)
(من از مهمانی لذت میبردم، اما کریس میخواست به خانه برود.)
فرض کنید سرورهای یک سایت قطع شدند (Server crashed)، اما تیم برنامهنویسی توانست پایگاه داده را نجات دهد (Saved the database). برای بیان این تضاد میتوانید بگویید:
Although the server crashed, we saved the database.
(با وجود اینکه سرور قطع شد، ما دیتابیس را نجات دادیم.)
In spite of the crash, we saved the database.
(علیرغمِ قطعی، ما دیتابیس را نجات دادیم.)
Despite the crash, we saved the database.
(علیرغمِ قطعی، ما دیتابیس را نجات دادیم.)
نکته: بعد از although همیشه باید از یک جمله کامل (فاعل + فعل) استفاده کنیم.
Although it was a legacy code, it ran without errors.
(با وجود اینکه آن یک کد قدیمی/منسوخ بود، بدون خطا اجرا شد.)
I didn’t push the code to production although I had passed all the tests.
(کد را روی پروداکشن پوش نکردم، با وجود اینکه تمام تستها را پاس کرده بودم.)
مقایسه Although (تضاد) و Because (علت):
We deployed the app although there were some warnings.
(اپلیکیشن را دیپلوی کردیم، با وجود اینکه چند اخطار وجود داشت.)
We didn’t deploy the app because there were some critical bugs.
(اپلیکیشن را دیپلوی نکردیم، زیرا چند باگ اساسی وجود داشت.)
نکته اصلی: بعد از in spite of یا despite، هرگز فاعل و فعل نمیآوریم. بلکه فقط از یک اسم (Noun)، یک ضمیر (Pronoun مثل this/that/what) یا فعل ing دار (-ing) استفاده میکنیم.
In spite of the server timeout, the API returned the cached data. (استفاده از اسم)
(علیرغمِ تایماوت شدن سرور، API دیتای کششده را برگرداند.)
The system failed, but in spite of this, no data was lost. (استفاده از ضمیر)
(سیستم از کار افتاد، اما علیرغم این [موضوع]، هیچ دیتایی از دست نرفت.)
In spite of what the senior developer said, I used a NoSQL database. (استفاده از ضمیر what)
(علیرغمِ چیزی که توسعهدهنده ارشد گفت، من از دیتابیس NoSQL استفاده کردم.)
I didn’t use that library in spite of knowing its benefits. (استفاده از فعل ing دار)
(من از آن کتابخانه استفاده نکردم، علیرغم دانستنِ مزایایش.)
نکته بسیار مهم: کلمه despite دقیقاً همان معنی in spite of را میدهد، اما هرگز بعد از آن of نمیآوریم (despite of غلط است).
She fixed the bug, but despite this she wasn’t happy. (نگویید despite of this)
نکته تکمیلی (The fact that): اگر اصرار دارید بعد از in spite of و despite حتماً فاعل و فعل بیاورید، باید از عبارت the fact that استفاده کنید:
I didn’t use React in spite of the fact that I knew it well.
(من از ریاکت استفاده نکردم، علیرغمِ این واقعیت که آن را خوب بلد بودم.)
مقایسه in spite of (تضاد) و because of (علت):
We launched the site in spite of / despite the low budget. (علیرغمِ بودجه کم)
We couldn’t launch the site because of the low budget. (به خاطرِ بودجه کم)
به تفاوت ساختاری این دو در یک سناریوی یکسان دقت کنید:
Although the network was slow, the file downloaded on time. (فاعل + فعل)
In spite of the slow network, the file downloaded on time. (فقط یک گروه اسمی)
(هشدار: نگویید in spite of the network was slow)
مثال دیگر با فعل ing دار:
I couldn’t fix the bug although I was focusing hard.
I couldn’t fix the bug despite focusing hard.
۱. کلمه though (همان although): کلمه though دقیقاً همان معنی although را دارد (کمی غیررسمیتر است).
I didn’t use Docker though I knew how it works.
(از داکر استفاده نکردم با وجود اینکه میدانستم چطور کار میکند.)
۲. استفاده از though در آخر جمله (مکالمه و محاوره): در انگلیسی گفتاری، معمولاً though را در آخر جمله میآورند که در زبان فارسی معنی «اما / ولی» میدهد.
The UI isn’t so nice. I like the backend architecture though.
(رابط کاربری خیلی جالب نیست. اما معماری بکاند را دوست دارم.)
I see those legacy codes every day. I’ve never refactored them though.
(من هر روز آن کدهای قدیمی را میبینم. ولی هیچوقت ریفکتورشان نکردهام.)
۳. کلمه even though (تاکید بیشتر): عبارت even though دقیقاً همان although است اما فرم قویتر و تاکیدیتری دارد. (دقت کنید که کلمه even به تنهایی این معنی را نمیدهد).
Even though I cleared the cache, the CORS error still persisted.
(با وجود اینکه کش را پاک کردم [تاکید فراوان]، ارور CORS همچنان پابرجا بود.) (نگویید even I cleared…)
ما از in case زمانی استفاده میکنیم که بخواهیم بگوییم «یک کار را انجام میدهیم، به این خاطر که احتمال دارد اتفاقی بیفتد». در واقع برای پیشگیری و احتیاط است.
You should have a database backup in case the server crashes.
(شما باید از دیتابیس بکآپ داشته باشید، برای این حالت که/مبادا سرور کرش کند.)
I’d better add some comments to this code in case I forget how it works.
(بهتر است چند کامنت به این کد اضافه کنم، مبادا/برای احتیاط که فراموش کنم چطور کار میکند.)
Shall I write a README file in case you have a problem setting up the project?
(آیا یک فایل README بنویسم، برای این حالت که در راهاندازی پروژه به مشکل بخوری؟)
استفاده از just in case (محض احتیاط): برای احتمالات ضعیفتر استفاده میشود.
I don’t think the API will fail, but I’ll add a try-catch block just in case.
(فکر نمیکنم API خطا بدهد، اما یک بلاک try-catch اضافه میکنم، محض احتیاط.)
نکته گرامری بسیار مهم: بعد از in case هرگز از will استفاده نمیکنیم (حتی اگر مفهوم آینده داشته باشد).
I’ll save the code in case the IDE crashes. (نگویید in case the IDE will crash)
این دو کلمه معنی متفاوتی دارند.
in case: شما کاری را همین الان انجام میدهید تا برای آینده آماده باشید (چه آن اتفاق بیفتد چه نیفتد).
if: شما کاری را فقط در صورتی انجام میدهید که آن اتفاق بیفتد (مشروط است).
مقایسه در برنامهنویسی:
با in case:
We’ll allocate more memory in case the traffic increases.
(ما حافظه بیشتری اختصاص میدهیم مبادا/به این خاطر که شاید ترافیک بالا برود. -> یعنی همین الان حافظه را بالا میبریم، فرقی نمیکند ترافیک بالا برود یا نه، ما از قبل آمادهایم.)
با if:
We’ll allocate more memory if the traffic increases.
(ما حافظه بیشتری اختصاص میدهیم اگر ترافیک بالا برود. -> یعنی الان کاری نمیکنیم، منتظر میمانیم و فقط اگر ترافیک بالا رفت، حافظه را اضافه میکنیم.)
شما میتوانید از in case به همراه زمان گذشته استفاده کنید تا بگویید چرا یک نفر در گذشته برای احتیاط کاری را انجام داده است:
I created a snapshot of the VM in case the deployment failed.
(من از ماشین مجازی یک اسنپشات گرفتم مبادا دیپلوی کردن با خطا مواجه شود.)
I pushed the code to a separate branch in case it caused merge conflicts.
(من کد را در یک برنچ جداگانه پوش کردم، به این خاطر که شاید باعث تداخل (conflict) شود.)
We restarted the server again in case it hadn’t synced properly the first time.
(ما سرور را دوباره ریاستارت کردیم، برای این حالت که شاید دفعه اول به درستی سینک نشده بود.)
ساختار in case of با in case فرق دارد. بعد از in case of فقط یک اسم (Noun) میآید. این عبارت بیشتر در دستورالعملها و هشدارها استفاده میشود و دقیقاً هممعنی if there is (اگر … رخ داد) است.
In case of a database failure, switch to the replica immediately.
(در صورت بروز خطای دیتابیس، فوراً به نسخه رپلیکا سوئیچ کنید.)
In case of a memory leak, restart the Docker container.
(در صورت بروز نشتی حافظه، داکر کانتینر را ریاستارت کنید.)
کلمه unless به معنای except if (مگر اینکه) است و یک شرط منفی ایجاد میکند. در واقع میتوان آن را معادل if … not (اگر … نه) دانست.
مثال پایه:
“You can’t push to the main branch unless you are an admin.”
(شما نمیتوانید روی برنچ اصلی کدی پوش کنید، مگر اینکه ادمین باشید.)
مفهوم: فقط در صورتی میتوانی پوش کنی که ادمین باشی (except if you are an admin).
مثالهای بیشتر:
I will finish the feature today unless I encounter a blocking bug.
(من امروز توسعه این فیچر را تمام میکنم، مگر اینکه به یک باگ مسدودکننده بربخورم.)
The deployment will fail. Unless you fix the dependencies, it won’t compile.
(دیپلوی با خطا مواجه خواهد شد. مگر اینکه وابستگیها (dependencies) را رفع کنی، کامپایل نخواهد شد.)
We can use a NoSQL database – unless you’d prefer a relational one.
(ما میتوانیم از دیتابیس NoSQL استفاده کنیم – مگر اینکه شما دیتابیس رابطهای را ترجیح بدهی.)
جایگزینی با if…not:
اغلب میتوانید به جای unless از ساختار منفی if استفاده کنید:
Unless we optimize the queries, the server will crash.
(= If we don’t optimize the queries, the server will crash.)
(مگر اینکه / اگر کوئریها را بهینه نکنیم، سرور کرش خواهد کرد.)
همه این عبارات به معنای if, on condition that (فقط در این صورت که / به این شرط که) هستند. as long as و so long as رایجتر هستند و provided (that) و providing (that) کمی رسمیترند. استفاده از that در دو مورد آخر اختیاری است.
کاربرد as long as / so long as:
You can use this free API as long as you don’t exceed the rate limit.
(میتوانی از این API رایگان استفاده کنی، به شرط اینکه / تا زمانی که از محدودیت تعداد درخواست عبور نکنی.)
We can deploy on Friday so long as all unit tests pass.
(میتوانیم جمعه دیپلوی کنیم، به شرطی که تمام تستهای یونیت پاس شوند.)
کاربرد provided (that) / providing (that):
Microservices architecture is great provided (that) you have a solid DevOps team.
(معماری مایکروسرویس عالی است، به این شرط که یک تیم دواپس قوی داشته باشید.)
Providing (that) the client approves the UI design, we will start coding tomorrow.
(به شرط اینکه کارفرما طراحی رابط کاربری را تایید کند، ما از فردا کدنویسی را شروع خواهیم کرد.)
نکته گرامری بسیار مهم: دقیقاً مانند if و in case، وقتی در مورد آینده صحبت میکنیم، هرگز بعد از unless، as long as، so long as، provided و providing از کلمه will استفاده نمیکنیم. به جای آن باید از زمان حال (مثل Present Simple) استفاده کنید، حتی اگر معنی جمله مربوط به آینده باشد.
مثالها:
The CI/CD pipeline won’t run unless the server is online.
(نگویید unless the server will be online)
(پایپلاین اجرا نخواهد شد، مگر اینکه سرور آنلاین باشد.)
Providing the build succeeds, we’re going to release version 2.0 tomorrow.
(نگویید providing the build will succeed)
(به شرطی که بیلد موفقیتآمیز باشد، فردا نسخه ۲.۰ را منتشر خواهیم کرد.)
نکته اصلی برای تمایز این عبارات، این است که آیا شرط، مانع از انجام یک کار میشود یا آن را ممکن میسازد:
Unless: بیانگر مانعی است که اگر برطرف نشود، عمل اصلی نمیتواند اتفاق بیفتد. چیزی ناراحتکننده یا نامطلوب را از وقوع بازمیدارد، مگر اینکه شرطش رخ دهد.
سوال خودآزمایی: “اگر این اتفاق نیفتد، چه میشود؟”
پاسخ با unless: “اگر این اتفاق نیفتد، آن کار اصلی هم نمیتواند انجام شود.”
As long as / Provided that: بیانگر شرطی است که باید برآورده شود تا عمل اصلی بتواند اتفاق بیفتد. چیزی مطلوب یا خنثی را ممکن میسازد، به شرط اینکه شرطش رخ دهد.
سوال خودآزمایی: “اگر این اتفاق بیفتد، چه میشود؟”
پاسخ با as long as: “اگر این اتفاق بیفتد، آن کار اصلی میتواند انجام شود.”
مثال نهایی برای بخش D:
فرض کنید در مورد pull request (PR) صحبت میکنیم:
“This pull request will not be merged unless it has at least two approvals.”
(این پول ریکوئست مرج نخواهد شد، مگر اینکه حداقل دو تاییدیه داشته باشد.)
تجزیه و تحلیل: مانع مرج شدن PR، نداشتن دو تاییدیه است. اگر تاییدیه نباشد، مرج نمیشود.
“This pull request can be merged as long as it has at least two approvals.”
(این پول ریکوئست میتواند مرج شود، به شرطی که حداقل دو تاییدیه داشته باشد.)
تجزیه و تحلیل: شرط مرج شدن PR، داشتن دو تاییدیه است. اگر تاییدیه باشد، مرج میشود.
امیدوارم این توضیح به درک بهتر شما کمک کرده باشد.
در این حالت، “as” یعنی at the same time as (دقیقاً در همان زمان).
نکته ۱: دو اتفاق که دقیقاً همزمان با هم رخ میدهند.
مثال برنامهنویسی:
The system writes errors to the log file as the script runs.
(سیستم ارورها را در فایل لاگ مینویسد، همزمان با اینکه اسکریپت در حال اجراست.)
Can you monitor the CPU usage as you execute the query?
(آیا میتوانی میزان مصرف CPU را مانیتور کنی، در حین اینکه کوئری را اجرا میکنی؟)
نکته ۲: یک اتفاق کوتاه در وسط یک اتفاق طولانیتر رخ میدهد (استفاده با گذشته استمراری).
مثال برنامهنویسی:
The server crashed as it was processing the large JSON file.
(سرور کرش کرد در حین اینکه داشت آن فایل JSON بزرگ را پردازش میکرد.)
We found a memory leak as we were debugging the authentication module.
(ما یک نشت حافظه پیدا کردیم در حین اینکه داشتیم ماژول احراز هویت را دیباگ میکردیم.)
نکته ۳: استفاده از “just as” به معنای «دقیقاً در همان لحظه».
مثال برنامهنویسی:
Just as I clicked "Deploy", the AWS console went down.
(دقیقاً در همان لحظهای که روی “دیپلوی” کلیک کردم، کنسول AWS از دسترس خارج شد.)
The bug appeared just as I was showing the demo to the client.
(باگ دقیقاً در همان لحظهای خودش را نشان داد که داشتم دمو را به کلاینت نشان میدادم.)
نکته ۴: دو اتفاق که در یک بازه زمانی طولانیتر با هم پیش میروند (تغییرات تدریجی).
مثال برنامهنویسی:
As the database grew larger, the SQL queries became slower.
(هر چه / با گذشت زمان که دیتابیس بزرگتر شد، کوئریهای SQL کندتر شدند.)
I began to understand React hooks better as I worked on more projects.
(همزمان با اینکه روی پروژههای بیشتری کار کردم، هوکهای ریاکت را بهتر فهمیدم.)
نکته ۵: مقایسه as و when در زمان:
از as فقط زمانی استفاده میکنیم که دو اتفاق همزمان رخ دهند.
As I ran the compiler, I checked my emails. (همزمان)
از when زمانی استفاده میکنیم که یک اتفاق بعد از اتفاق دیگر رخ دهد.
When the build finished, I pushed the code to the repository. (بعد از اینکه بیلد تمام شد، کد را پوش کردم. - اینجا نمیتوانیم از as استفاده کنیم).
در این حالت، “as” هممعنی کلماتی مثل because است.
نکته ۱: استفاده از “as” برای بیان علت و دلیل.
مثال برنامهنویسی:
As the API returned a 500 status code, I implemented a retry mechanism.
(چون که API کد وضعیت ۵۰۰ برگرداند، من یک مکانیزم تلاش مجدد پیادهسازی کردم.)
As it's a constant variable, let's use "const" instead of "let".
(به دلیل اینکه این یک متغیر ثابت است، بیایید به جای let از const استفاده کنیم.)
I didn't use that npm package as it hasn't been updated in 3 years.
(من از آن پکیج npm استفاده نکردم چون که ۳ سال است آپدیت نشده.)
نکته ۲: کلمه “since” هم دقیقاً همین کاربرد و معنی را دارد.
مثال برنامهنویسی:
Since the server is down, we cannot test the frontend.
(از آنجا که / چون که سرور قطع است، نمیتوانیم فرانتاند را تست کنیم.)
نکته ۳: مقایسه as (به معنای دلیل) و when (به معنای زمان):
به تفاوت معنایی این دو جمله دقت کنید:
با As:
The deployment failed as the credentials were invalid.
(دیپلویمنت با خطا مواجه شد به دلیل اینکه اطلاعات ورود نامعتبر بود. -> علت)
با When:
The deployment failed when the server lost connection.
(دیپلویمنت خطا داد در زمانی که / وقتی که ارتباط سرور قطع شد. -> زمان)
وقتی یک کار طولانی در حال انجام است (معمولاً با زمان استمراری ing دار) و در وسط آن یک اتفاق دیگر میافتد یا همزمان انجام میشود. در اینجا انتخاب بین as و while سلیقهای است.
مثال:
The error occurred as I was testing the API.
The error occurred while I was testing the API.
(هر دو درست است: ارور رخ داد در حین/زمانی که داشتم API را تست میکردم).
در دو حالت نمیتوانید از while استفاده کنید:
حالت الف) تغییرات همگام و تدریجی (نسبت مستقیم): وقتی دو چیز به مرور زمان با هم تغییر میکنند.
مثال: As the app's traffic increases, the server response time goes up.
(درست: هرچه ترافیک اپلیکیشن بالا میرود، زمان پاسخگویی سرور هم بالا میرود.)
غلط: While the app's traffic increases...
حالت ب) دو اتفاق بسیار کوتاه و دقیقاً در یک صدم ثانیه (اغلب با Just):
مثال: Just as I clicked "Deploy", the database crashed.
(درست: درست همان لحظهای که روی دیپلوی کلیک کردم، دیتابیس کرش کرد.)
استفاده از while برای اتفاقات لحظهای و کوتاه (مثل کلیک کردن) اشتباه است.
وقتی میخواهید دو چیز را با هم مقایسه کنید یا تضادشان را نشان دهید (به معنی “در حالی که”). در این حالت as کاربردی ندارد.
مثال: While Python is easy to learn, C++ offers better performance.
(درست: در حالی که پایتون برای یادگیری آسان است، سیپلاسپلاس پرفورمنس بهتری ارائه میدهد.)
غلط: As Python is easy to learn, C++ offers... (اینجا معنی دلیل میگیرد و جمله بیمعنی میشود).
کلمه Like در اینجا یک حرف اضافه (Preposition) است و برای نشان دادن شباهت استفاده میشود.
ساختار: بعد از Like حتماً یک اسم (Noun)، ضمیر (Pronoun) یا فعل ing-دار میآید. (هرگز بعد از آن فاعل و فعل کامل نمیآید).
مثالهای برنامهنویسی:
با اسم: This new framework is like magic. (این فریمورک جدید مثل جادو است - دقیقاً مشابه مثال کتاب: like a palace).
با فعل ing-دار: Debugging without logs is like coding in the dark. (دیباگ کردن بدون لاگ، مثل کدنویسی در تاریکی است).
با ضمیر: I hate dealing with spaghetti code like this. (من از سر و کله زدن با کدهای اسپاگتی مثل این متنفرم).
کاربرد دوم Like (به معنای “برای مثال”):
گاهی اوقات از Like برای مثال زدن استفاده میشود که دقیقاً هممعنی such as است.
مثال: You should learn modern web technologies like React, Vue, or Angular. (یا …such as React).
کلمه As در این حالت یک حرف ربط (Conjunction) است.
ساختار: بعد از As باید یک بند کامل (Subject + Verb) بیاید.
مثالهای برنامهنویسی:
Leave the database schema exactly as it was. (اسکیمای دیتابیس را دقیقاً همانطور که بود رها کن).
Configure the server as the documentation shows. (سرور را همانطور که داکیومنت نشان میدهد کانفیگ کن).
نکته محاورهای: در زبان انگلیسی غیررسمی، مردم گاهی از Like به جای As در این ساختار استفاده میکنند (like the documentation shows)، اما در نوشتار رسمی و آکادمیک باید از As استفاده کنید. با این حال، اگر فقط یک اسم/ضمیر داشتید (like this)، هرگز نمیتوانید از As استفاده کنید (as this کاملاً غلط است).
اصطلاحات ثابت با As:
As usual / As always (مثل همیشه): The build pipeline failed again, as usual. (پایپلاین بیلد دوباره شکست خورد، مثل همیشه).
The same as (دقیقاً مثل): Your authentication logic is the same as mine. (منطق احراز هویت تو دقیقاً مثل مال من است - هرگز نگویید the same like).
گاهی As در ترکیب با فاعل و فعل، معانی دیگری مثل “طبقِ” یا “مطابقِ” میدهد.
با افعال انجام دادن (Do):
مثال: The script executed exactly as we expected. (اسکریپت دقیقاً مطابق چیزی که انتظار داشتیم اجرا شد).
اصطلاحات پرکاربرد (همانطور که…): as you know (همانطور که میدانی)، as I said (همانطور که گفتم)، as expected (همانطور که انتظار میرفت).
مثال: As you know, Python is an interpreted language. (همانطور که میدانید، پایتون یک زبان مفسری است).
نکته: استفاده از Like در این عبارات معمول نیست، به جز با فعل Say:
Like I said yesterday, we need to refactor this module. (مثل چیزی که دیروز گفتم…).
این مهمترین بخش این یونیت است که تفاوت معنایی این دو کلمه را وقتی قبل از یک “اسم” میآیند، نشان میدهد:
۱. As + Noun (نقش، شغل، کارکرد واقعی): یعنی آن شخص یا چیز، واقعاً همان نقش را دارد یا آن کار را انجام میدهد.
مثال کتاب: As a taxi driver... (به عنوان یک راننده تاکسی - شغل من واقعاً این است).
مثال برنامهنویسی: I work as a Full-Stack Developer. (من به عنوان توسعهدهنده فولاستک کار میکنم - شغل من واقعاً این است).
مثال کارکردی: We use Redis as a caching layer. (ما از ردیس به عنوان لایه کش استفاده میکنیم - وظیفه و نقش واقعی ردیس در سیستم ما همین است).
۲. Like + Noun (شباهت ظاهری یا رفتاری): یعنی آن شخص یا چیز، در واقعیت آن نقش را ندارد، اما رفتارش شبیه به آن است.
مثال کتاب: I'm like a taxi driver. (من مثل راننده تاکسیها شدهام - یعنی در واقع شغلم این نیست، اما مدام دارم بقیه را اینطرف و آنطرف میبرم).
مثال برنامهنویسی: I'm a backend engineer, but writing CSS today made me feel like a frontend developer. (من مهندس بکاند هستم، اما نوشتن CSS امروز باعث شد حس کنم مثل یک توسعهدهنده فرانتاند هستم - شغل من فرانتاند نیست، فقط شبیه آنها کار کردم).
مثال کارکردی: This NoSQL database behaves like a relational database in some queries. (این دیتابیس NoSQL در برخی کوئریها شبیه یک دیتابیس رابطهای رفتار میکند - واقعاً رابطهای نیست، فقط شبیهسازی میکند).
ما از like یا as if (یا as though که دقیقاً هممعنی as if است) استفاده میکنیم تا بگوییم یک شخص یا چیزی چگونه به نظر میرسد، چه صدایی میدهد یا چه حسی دارد.
ساختار: بعد از این کلمات، یک بند کامل (Subject + Verb) میآید.
مثالهای برنامهنویسی:
That legacy server sounds like it's going to explode. (آن سرور قدیمی صدایی میدهد انگار که میخواهد منفجر شود).
The UI looks as if the CSS hasn't loaded properly. (رابط کاربری طوری به نظر میرسد که انگار فایلهای CSS به درستی لود نشدهاند).
I've only been coding for an hour, but I feel as though I've been debugging all day. (فقط یک ساعت است که کد میزنم، اما احساس میکنم انگار کل روز را در حال دیباگ کردن بودهام).
مقایسه مهم:
Look + Adjective (صفت): The database looks slow. (دیتابیس کند به نظر میرسد).
Look like / as if + Clause (بند): The database looks like it hasn't been indexed. (دیتابیس طوری به نظر میرسد انگار ایندکس نشده است).
وقتی بر اساس شواهد موجود به یک نتیجهگیری میرسیم یا حدس قوی میزنیم، از این ساختارها استفاده میکنیم: It looks like... / It looks as if... / It sounds like...
مثالهای برنامهنویسی:
The pipeline failed again. It looks like you have a syntax error. (پایپلاین دوباره fail شد. به نظر میرسد که یک خطای سینتکسی داری).
There are too many 500 errors in the logs. It looks as if the backend server is down. (خطاهای 500 زیادی در لاگها هست. به نظر میرسد که سرور بکاند از کار افتاده است).
It sounds as though they are planning to rewrite the entire project in Rust. (اینطور به گوش میرسد که انگار قصد دارند کل پروژه را با زبان Rust بازنویسی کنند).
شما میتوانید like / as if / as though را با افعال دیگر هم استفاده کنید تا توضیح دهید کسی یا چیزی چگونه کاری را انجام میدهد.
مثالهای برنامهنویسی:
The script ignored the try-catch block and crashed like it was designed to fail. (اسکریپت بلوک try-catch را نادیده گرفت و کرش کرد، انگار که برای شکست خوردن طراحی شده بود).
After the network interruption, the service went on running as if nothing had happened. (پس از قطعی شبکه، سرویس به کار خود ادامه داد انگار که هیچ اتفاقی نیفتاده است).
این بخش یک نکته گرامری بسیار مهم و پیشرفته دارد. گاهی اوقات بعد از as if یا as though، ما از زمان گذشته (Past) استفاده میکنیم در حالی که داریم درباره زمان حال (Present) صحبت میکنیم.
دلیل این کار: ما زمانی از گذشته استفاده میکنیم که آن موقعیت غیرواقعی (Not real) یا فرضی باشد (درست شبیه به ساختار If شرطی نوع دوم).
نکته: در این ساختار معمولاً از like استفاده نمیشود و as if / as though ترجیح داده میشوند.
مثالهای برنامهنویسی:
The junior developer talks about the architecture as if he knew everything. (توسعهدهنده جونیور طوری درباره معماری صحبت میکند انگار که همهچیز را میداند.)
واقعیت: او همهچیز را نمیداند (he does not know)، اما چون این یک فرض غیرواقعی است، فعل know به گذشته یعنی knew تبدیل شده است.
The system is throttling requests as if it didn't have enough RAM. (سیستم دارد ریکوئستها را محدود میکند انگار که رم کافی ندارد.)
واقعیت: سیستم رم کافی دارد، اما رفتارش شبیه سیستمی است که رم ندارد.
استفاده از Were به جای Was:
وقتی در این حالت غیرواقعی از فعل to be استفاده میکنید، میتوانید (و در انگلیسی رسمی توصیه میشود) برای تمام فاعلها (حتی I, He, She, It) از were به جای was استفاده کنید:
The application behaves as if it were under a DDoS attack. (اپلیکیشن طوری رفتار میکند انگار تحت حمله DDoS است - در واقع نیست).
They treat me as if I were a devops engineer, but I only know frontend! (آنها با من طوری رفتار میکنند انگار مهندس دواپس هستم، اما من فقط فرانتاند بلدم!).
کلمه during به معنای زمانی بین شروع و پایان یک اتفاق است.
ساختار: بعد از during همیشه یک اسم (Noun) میآید.
مثالهای برنامهنویسی:
The server crashed during the load test. (سرور در حین تست بارگذاری، کرش کرد.)
We found a major security flaw during the code review. (ما در طول بررسی کد، یک نقص امنیتی بزرگ پیدا کردیم.)
نکته: برای کلمات زماندار مشخص مثل the morning، the night یا the summer، میتوانید هم از in و هم از during استفاده کنید.
The background backup runs in the night. یا ... during the night. (بکاپ پسزمینه در طول شب اجرا میشود.)
این یکی از رایجترین اشتباهات گرامری است. تفاوت آنها در سوالی است که به آن پاسخ میدهند:
استفاده از for (برای بیان مدت زمان - How long):
بعد از for یک بازه زمانی (مثل two hours, a week) میآید تا بگوید یک کار چقدر طول کشیده است. هرگز برای بیان مدت زمان از during استفاده نکنید.
درست: The database was locked for two hours. (دیتابیس برای دو ساعت قفل بود.)
غلط: ... during two hours.
استفاده از during (برای بیان زمان وقوع - When):
برای اینکه بگوییم یک اتفاق چه زمانی (در حین چه رویدادی) رخ داده است.
مقایسه:
کی سرور قطع شد؟ During the update. (در حین آپدیت - زمان وقوع)
چقدر قطع بود؟ For 30 minutes. (برای ۳۰ دقیقه - مدت زمان)
هر دو به معنای “در حین” هستند، اما ساختار گرامری آنها کاملاً متفاوت است:
ساختار during: بعد از آن اسم (Noun) میآید.
I drank three cups of coffee during the meeting. (در طول جلسه…)
ساختار while: بعد از آن یک جمله کامل (فاعل + فعل / Subject + Verb) میآید.
I drank three cups of coffee while I was debugging the code. (در حینی که داشتم کد را دیباگ میکردم…)
مثالهای بیشتر با while در برنامهنویسی:
We lost some packets while we were migrating the database. (در حینی که داشتیم دیتابیس را مایگریت میکردیم، چند پکت را از دست دادیم.)
The background worker processes data while the user interacts with the UI. (ورکر پسزمینه در حالی که کاربر با رابط کاربری تعامل دارد، دادهها را پردازش میکند.)
قاعده مهم برای زمان آینده (Future Rule):
مانند قواعدی که در درسهای قبل دیدیم، وقتی میخواهید درباره آینده صحبت کنید، بعد از while هرگز از will استفاده نکنید. به جای آن باید از زمان حال (Present) استفاده کنید.
درست: I will monitor the server logs while the script runs. (من لاگهای سرور را در حینی که اسکریپت اجرا میشود مانیتور میکنم.)
غلط: ... while the script will run.
What are you going to do while the project is compiling? (در حینی که پروژه دارد کامپایل میشود میخواهی چهکار کنی؟)
کلمه by به معنای «نه دیرتر از» (not later than) است و برای تعیین یک ضربالاجل یا ددلاین (Deadline) استفاده میشود. یعنی کار باید در آن زمان یا قبل از آن تمام شده باشد.
مثالهای برنامهنویسی:
The hotfix needs to be deployed to production by Friday. (هاتفیکس باید حداکثر تا جمعه روی پروداکشن دیپلوی شود - یعنی جمعه یا قبل از آن.)
We have to finish this sprint by 5 PM. (ما باید این اسپرینت را حداکثر تا ساعت ۵ عصر تمام کنیم.)
Where is the API response? It should have loaded by now. (پاسخ API کجاست؟ باید تا الان لود میشد.)
این دو کلمه اغلب با هم اشتباه گرفته میشوند، اما کاربرد کاملاً متفاوتی دارند:
کاربرد until (یا till): برای بیان تداوم یک وضعیت استفاده میشود (تا چه زمانی یک کار ادامه دارد).
Let's wait until the script finishes running. (بیا صبر کنیم تا اجرای اسکریپت تمام شود.)
The server was under maintenance until 3 AM. (سرور تا ساعت ۳ صبح در حال تعمیر و نگهداری بود - یعنی این وضعیت تا ساعت ۳ ادامه داشت.)
مقایسه until و by:
تداوم وضعیت (until): The database will be locked until 11:30. (دیتابیس تا ساعت ۱۱:۳۰ قفل خواهد ماند - وضعیت قفل بودن ادامه دارد.)
زمان وقوع یک اتفاق / ددلاین (by): The database migration will be finished by 11:30. (مایگریشن دیتابیس حداکثر تا ساعت ۱۱:۳۰ تمام خواهد شد - تا قبل از آن ساعت کار تمام میشود.)
وقتی بخواهیم بگوییم «تا زمانی که فلان اتفاق بیفتد، اتفاق دیگری رخ داده است»، از by the time استفاده میکنیم. بعد از آن یک جمله کامل (فاعل + فعل) میآید.
۱. برای زمان آینده:
By the time the CI/CD pipeline finishes, the QA team will have left. (تا زمانی که پایپلاین CI/CD تمام شود، تیم تسترها رفتهاند.)
By the time we deploy this feature, it will be outdated. (تا زمانی که ما این فیچر را دیپلوی کنیم، منسوخ شده است.)
۲. برای زمان گذشته (معمولاً همراه با زمان گذشته کامل / Past Perfect):
By the time I found the bug, the system had already crashed. (تا زمانی که من باگ را پیدا کردم، سیستم از کار افتاده بود - یعنی کرش کردن سیستم قبل از پیدا شدن باگ رخ داد.)
It took a long time to compile. By the time it finished, I was very tired. (کامپایل شدن خیلی طول کشید. تا زمانی که تمام شد، من خیلی خسته شده بودم.)
نکته: میتوانید به جای by the time از by then یا by that time (تا آن موقع) هم استفاده کنید:
The database backup finished at midnight, but by then most users had logged off. (بکاپ دیتابیس نیمهشب تمام شد، اما تا آن موقع بیشتر کاربران از سیستم خارج شده بودند.)
نکته: زمان حال کامل برای کارهایی استفاده میشود که در گذشته انجام شدهاند، اما اثر یا نتیجه آنها در زمان حال (Now) باقی است.
I have deleted the production database. (دیتابیس پروداکشن را پاک کردهام.)
نتیجه در زمان حال: سایت الان بالا نمیآید و همه چیز خراب است!
The server has crashed. (سرور کرش کرده است.)
نتیجه در زمان حال: سرور الان در دسترس نیست.
نکته ۱: دادن خبر جدید (New Information)
وقتی میخواهیم یک اتفاق جدید را خبر بدهیم، از این زمان استفاده میکنیم.
Good news! I've fixed that nasty bug. (خبر خوب! اون باگ روی اعصاب رو فیکس کردم.)
The deployment has failed. (دیپلوی کردن با خطا مواجه شد/شکست خورد.)
نکته ۲: تفاوت gone و been
gone to: رفته و هنوز همانجاست (برنگشته).
The HTTP request has gone to the external API. (درخواست به سمت API خارجی رفته است -> یعنی هنوز پردازش نشده و ریسپانسی برنگشته است.)
been to: رفته و برگشته (برای بیان تجربه).
I have been to this GitHub repository before. (من قبلاً به این ریپازیتوری گیتهاب سر زدهام -> یعنی رفتم کدهایش را دیدم و الان برگشتهام.)
این سه کلمه قیدهای بسیار پرکاربردی در زمان حال کامل هستند:
Just (همین الان / زمان بسیار کوتاهی پیش):
I have just pushed my commits to the main branch. (همین الان کامیتهایم را روی برنچ اصلی پوش کردم.)
Already (قبلاً / زودتر از زمان انتظار):
You don't need to write the unit tests, I've already written them. (نیازی نیست تستهای واحد را بنویسی، من قبلاً [زودتر از چیزی که انتظار داشتی] آنها را نوشتهام.)
Yet (هنوز - فقط در جملات منفی و سؤالی استفاده میشود):
Has the CI/CD pipeline finished yet? (آیا پایپلاین CI/CD هنوز تمام نشده است؟)
I haven't deployed the application yet. (من هنوز اپلیکیشن را دیپلوی نکردهام.)
نکته: در بسیاری از مثالهای بالا (بهخصوص همراه با just و already)، میتوانید به جای حال کامل از گذشته ساده استفاده کنید (این مورد در انگلیسی آمریکایی بسیار رایج است).
حال کامل: I've just compiled the code.
گذشته ساده: I just compiled the code. (هر دو به معنی “همین الان کد رو کامپایل کردم” هستند و کاملاً درستند).
نکته: وقتی درباره بازه زمانی صحبت میکنیم که از گذشته شروع شده و تا الان (زمان حال) ادامه دارد (مثل کل طول عمر یک شخص یا تجربیات او)، از حال کامل استفاده میکنیم. در اینجا کلماتی مثل ever (تا به حال) و never (هرگز) بسیار پرکاربرد هستند.
Have you ever deployed to production on a Friday? (آیا تا به حال روز جمعه روی پروداکشن دیپلوی کردهای؟ - اشاره به تجربه کل دوران کاری برنامهنویس)
I have never written a smart contract. (من هرگز یک قرارداد هوشمند ننوشتهام.)
It’s the most complex algorithm I’ve ever seen. (این پیچیدهترین الگوریتمی است که تا به حال دیدهام.)
نکته: اگر بازه زمانی مورد بحث هنوز تمام نشده باشد، از حال کامل استفاده میکنیم. کلمات کلیدی این بخش شامل recently (اخیراً)، in the last few days (در چند روز گذشته)، so far (تا الان)، since (از زمانِ…)، today (امروز)، this year (امسال) و غیره است.
Have you read any tech blogs recently? (آیا اخیراً وبلاگ تکنولوژی خواندهای؟)
Everything is working fine. There haven't been any memory leaks so far. (همه چیز خوب کار میکند. تا الان هیچ نشت حافظهای نداشتهایم.)
I've written 500 lines of code today. (من امروز ۵۰۰ خط کد نوشتهام. - “امروز” هنوز تمام نشده و ممکن است بیشتر هم بنویسم.)
نکته: برای بیان اینکه یک اتفاق برای اولین بار، دومین بار، یا چندمین بار رخ داده است (تا این لحظه)، از حال کامل استفاده میکنیم. ساختار آن به شکل It is the first time something has happened است.
It's the first time I have configured a Kubernetes cluster. (این اولین باری است که من یک کلاستر کوبرنیتیز را کانفیگ کردهام. - نه اینکه میگویم “I configure”)
The CI pipeline is failing again. This is the third time it has failed today. (پایپلاین CI دوباره دارد خطا میدهد. این سومین باری است که امروز خطا داده است.)