4. Present Perfect — теперішній перфект (+ Perfect Continuous)

Єдиний англійський час, у якого немає українського відповідника. Через це його не можна «перекласти» — його доводиться зрозуміти. Добра новина: ідея одна, і вона проста. Дія сталася в минулому, але ви говорите про неї тому, що вона важлива зараз.

4.1 Форма

+I / you / we / they have + V3// I have finished → I've finished
+he / she / it has + V3// she has finished → she's finished
підмет + have not / has not + V3// haven't finished, hasn't finished
?Have / Has + підмет + V3 … ?// Have you finished? — НЕ «Did you have finished?»
?Wh- + have / has + підмет + V3 … ?// How many tickets have you closed?
V3 — третя форма: worked, deployed, seen, done, written. Для правильних дієслів V3 = V2.

V3, а не V2. Для правильних дієслів різниці не видно (worked — worked), і саме тому помилка з неправильними виникає так легко: ✗ I have saw it замість I have seen it. Таблиці неправильних дієслів — у кінці розділу.

Пастка скорочення: 's — це has чи is?

Обидва скорочуються однаково, і на письмі теж. Розрізняє їх наступне слово:

She's working → далі -ing → це is → Present Continuous.
She's worked → далі V3 → це has → Present Perfect.
She's been working → далі been → це has → Present Perfect Continuous.

Те саме з 'd: he'd done = had, he'd do = would.

1 · РЕЗУЛЬТАТ ВАЖЛИВИЙ ТУТ — час дії не називаютьколи — невідомоЗАРАЗI've fixed the bug. → баг зараз виправлений2 · ДОСВІД — будь-коли до цього моментуHave you ever … ? — уся ця зона, без жодної конкретної датиI've worked with three vendors. · Have you ever escalated a P1?3 · ПЕРІОД, ЩО НЕ ЗАКІНЧИВСЯ — for / sincesince 2019ЗАРАЗI've worked here for six years. — почалось у 2019-му, триває досі.

4.2 Шість випадків уживання — з розбором

① Результат, важливий зараз — часу дії не називають

I have fixed the bug.Я виправив баг. (він зараз виправлений)Коли саме — не сказано і не важливо. Важливо, який стан справ на цю хвилину.
She isn't on the call — she has left the company.Її немає на дзвінку — вона пішла з компанії.Наслідок для теперішнього: пішла, тому її немає. Порівняйте: She left in March — там названий місяць, отже Past Simple.
We have lost production access.Ми втратили доступ до продакшну.Ви говорите не про подію, а про проблему, яка є прямо зараз.
I have forgotten the password.Я забув пароль.Українською минулий час, англійською — наслідок у теперішньому: пароля в мене зараз немає.

② Досвід — будь-коли до цього моменту

I have never seen latency like that.Я ніколи не бачив такої латентності.never ставиться між have і V3. Другого заперечення не треба — never уже заперечення.
Have you ever escalated a P1?Ти колись ескалював інцидент рівня P1?ever = «хоч колись за все життя». Найчастіше питання про досвід ставлять саме так.
I have worked with three different vendors.Я працював із трьома різними вендорами.Скільки разів — за все життя до цього моменту. Дат немає.
We have been through this twice already.Ми вже проходили це двічі.been through — надзвичайно вживана фраза про пережитий досвід.

③ Період, який ще не закінчився — for і since

Це той випадок, де українці помиляються найчастіше, бо українською тут природний теперішній час.

I have worked here for six years.Я працюю тут шість років.I work here for six years. Період почався в минулому й триває — тільки Perfect.
I have known him since university.Я знаю його з університету.know — дієслово стану, тому Perfect, а не Perfect Continuous.
We haven't spoken since that conference.Ми не бачилися з тієї конференції.
How long have you been in this role?Скільки ти вже на цій посаді?Якби посада вже скінчилась: How long were you in that role?
for чи since — правило одного рядка

for + скільки часу триває: for six years, for two weeks, for ten minutes.
since + з якого моменту: since 2019, since Monday, since I joined, since that outage.

Помилка-калька: ✗ since six years. Українською «вже шість років» і «з 2019-го» звучать однаково буденно, тому since тягне за собою кількість. Тримайте перевірку: після since має стояти точка на календарі, а не тривалість.

④ Щойно, вже, ще ні — just, already, yet

She has just left.Вона щойно пішла.Американці частіше кажуть She just left — обидва варіанти нормальні (розділ 5).
I have already sent the invoice.Я вже надіслав рахунок.already — між have і V3.
We haven't finished the migration yet.Ми ще не завершили міграцію.yet — у самому кінці речення, тільки в запереченнях і питаннях.
Have you looked at the pull request yet?Ти вже глянув пул-реквест?

⑤ Підрахунок у відкритому періоді

We have shipped two releases this week.Цього тижня ми випустили два релізи.this week ще триває, до нього можна додати третій реліз → період відкритий.
The service has gone down three times today.Сервіс падав тричі за сьогодні.
Nobody has complained so far.Поки що не скаржився ніхто.so far = «на цю мить», один із найнадійніших маркерів Perfect.
How many tickets have you closed this sprint?Скільки тікетів ти закрив за цей спринт?

⑥ Готові конструкції, які тягнуть Perfect за собою

This is the third time I have asked about the handover.Я питаю про передачу справ уже третій раз.It is the first / second / third time… — завжди Present Perfect. У минулому було б Past Perfect.
This is the worst outage we have had.Це найгірший інцидент, який у нас був.Після найвищого ступеня порівняння — Perfect.
It's the first time he hasn't run the release.Це вперше, коли релізом займається не він.
been чи gone — різниця, яка змінює зміст

He has been to Berlin. — Він був у Берліні (і вже повернувся). Це досвід.
He has gone to Berlin. — Він поїхав до Берліна (і зараз він там). Це де він є.

Практичний варіант тієї самої пари: She's been to the client's office (була, знає, як там) проти She's gone to the client's office (поїхала, її немає в офісі).

4.3 Present Perfect Continuous — коли важлива тривалість

have / has been + V-ing. Той самий охват, що й у Present Perfect — від минулого до зараз — але наголос переноситься з результату на процес і його тривалість.

+підмет + have / has been + V-ing// I've been waiting, she's been working
підмет + haven't / hasn't been + V-ing// I haven't been sleeping well
?Have / Has + підмет + been + V-ing … ?// How long have you been waiting?
Дієслова стану сюди не входять: ✗ I've been knowing him. → I've known him.
Perfect чи Perfect Continuous — те саме речення
I have written the report.
Наголос на результаті: звіт готовий, можна читати.
I have been writing the report all morning.
Наголос на процесі: я сидів над ним весь ранок; чи готовий — не сказано.
Ще одна пара — той самий вендор
I have called them three times.
Скільки разів. Підрахунок закінчених дій.
I have been calling them all week.
Скільки часу. Дія тягнулась і, найпевніше, ще не дала результату.
How long have you been waiting for their reply?Скільки ти вже чекаєш на їхню відповідь?How long + дія, що триває → майже завжди Perfect Continuous.
The latency has been growing since we added the new index.Латентність зростає, відколи ми додали новий індекс.since + процес, що не спинився.
He looks exhausted — he has been firefighting for two weeks straight.Він виглядає виснаженим — він два тижні підряд гасить пожежі.
Who has been drinking my coffee?Хто пив мою каву?Класична пара: видимий слід дії, а не її результат. Чашка порожня — хтось цим займався.
Проста перевірка, який із двох брати

Спитайте себе: відповідь на «скільки часу» чи на «скільки разів»?

«Скільки часу» → have been + V-ing. «Скільки разів» або «що вже готово» → have + V3.

І пам'ятайте про дієслова стану: у них процесу немає, тому вони завжди беруть звичайний Perfect. ✗ I've been knowing, ✗ I've been owning.

4.4 Слова-маркери

already — вжеyet — ще (у ? і −)just — щойноever / neverfor six yearssince 2019so far — поки щоup to nowlately / recentlytoday / this week / this yearhow long — скільки часуIt's the first time…

4.5 Третя форма — таблиці неправильних дієслів

Present Perfect живе на V3 — останній колонці. Це той самий список, який використовує аналізатор тексту, тому теорія й підсвітка говорять про одні й ті самі слова. Група A найлегша: там усі три форми однакові, отже вчити нічого.

Група A: усі три форми однакові

cutcutcutputputputletletletsetsetset
hithithitcostcostcostshutshutshutreadreadreadминулі форми читаються /red/

Група B: V2 = V3

buildbuiltbuiltsendsentsentspendspentspentlendlentlent
buyboughtboughtbringbroughtbroughtthinkthoughtthoughtcatchcaughtcaught
teachtaughttaughtfindfoundfoundloselostlostkeepkeptkept
sleepsleptsleptmeetmetmetleadledledpaypaidpaid
saysaidsaidsaid /sed/sellsoldsoldtelltoldtoldholdheldheld
makemademadehearheardheardheard /hɜːd/leaveleftleftfeelfeltfelt
sitsatsatstandstoodstoodunderstandunderstoodunderstoodwinwonwon

Група C: усі три різні — вчити напам'ять

bewas/werebeenbeginbeganbegunbreakbrokebrokenchoosechosechosen
dodiddonedrinkdrankdrunkdrivedrovedriveneatateeaten
fallfellfallenflyflewflownforgetforgotforgottengetgotgot/gotten
givegavegivengowentgonegrowgrewgrownknowknewknown
rideroderiddenriseroserisenrunranrunseesawseen
showshowedshownspeakspokespokentaketooktakenthrowthrewthrown
wakewokewokenwearworewornwritewrotewrittencomecamecome
Три пари, які плутають найчастіше

see — saw — seen: ✗ I have saw → ✓ I have seen
do — did — done: ✗ I have did → ✓ I have done
go — went — gone: ✗ I have went → ✓ I have gone

Правило-запобіжник: після have / has ніколи не стоїть форма, яку ви вживаєте самостійно в минулому часі. Якщо слово може стояти саме (I saw it) — воно V2, і після have йому не місце.