Глаголы действия: что код делает на английском

Документация и исходники держатся на глаголах. Понимать fetch, parse, handle, throw — значит понимать, что именно делает код.

Programs must be written for people to read. — Harold Abelson

Названия методов в любой библиотеке — это глаголы: getUser, parseJSON, validateInput. Зная ядро технических глаголов, ты понимаешь API почти без словаря: имя метода само рассказывает, что он делает. Это самый окупаемый кусок словаря для чтения исходников.

Глаголы: данные и поток

ГлаголПереводПример
fetch / retrieveполучать данныеfetch the user from the API
parseразбирать (текст в структуру)parse the JSON response
serializeсериализоватьserialize the object to a string
handleобрабатыватьhandle the click event
processобрабатывать (поток/данные)process the queue
renderотрисовыватьrender the component
validateпроверять корректностьvalidate the form input
convert / castпреобразовывать (тип)cast the value to a number

Глаголы: ошибки и управление

ГлаголПереводПример
throwвыбрасывать (исключение)throw an error if input is empty
catchловить (исключение)catch the exception and log it
raiseвозбуждать (исключение, Python)raise a ValueError
retryповторять попыткуretry the request three times
abort / cancelпрерывать / отменятьabort the running task
fallbackоткатываться к запасномуfall back to the default value

Глаголы: ООП и наследование

ГлаголПереводПример
extendрасширять (наследовать)this class extends Base
implementреализовывать (интерфейс)implement the interface
overrideпереопределять (метод)override the parent method
inheritнаследоватьinherit from the base class
invoke / callвызыватьinvoke the callback
exposeпредоставлять наружуthe module exposes a public API

Разбор имени метода из реальной библиотеки:

validateAndParseUserInput(raw)
 |        |     |    |
 |        |     |    `- что обрабатываем: пользовательский ввод
 |        |     `------ Input — существительное-объект
 |        `------------ parse — разобрать в структуру
 `--------------------- validate — сначала проверить корректность

Читается: «проверить и разобрать пользовательский ввод».
Имя метода = краткое описание его работы.

Полезные фразы

This method fetches data and parses it.   — Этот метод получает данные и разбирает их.
We catch the error and retry the request. — Мы ловим ошибку и повторяем запрос.
The class overrides the default behavior. — Класс переопределяет поведение по умолчанию.
We fall back to a cached value.           — Мы откатываемся к закешированному значению.

Частые ошибки рус-говорящих

  • Путать «raise» и «rise». raise an error (возбудить ошибку, есть объект) vs rise (подниматься самому). В коде почти всегда raise/throw.
  • Считать «handle» только существительным. В разработке handle чаще глагол: «обрабатывать событие», а handler — тот, кто обрабатывает.
  • Переводить «implement» как «имплементировать» в речи. Понимать ок, но по-русски естественнее «реализовать».

Практика

  • Открой любую библиотеку и прочитай 10 имён методов — переведи каждое по глаголу.
  • Найди в своём коде try/catch и проговори, что throws и что catches.
  • Выпиши 5 глаголов, которые встречаешь чаще всего в своём стеке.

Фразовые глаголы, которые встречаются всюду

Английский в разработке полон фразовых глаголов — связки «глагол + предлог», где предлог меняет смысл. Их буквальный перевод часто сбивает с толку, поэтому их стоит знать целиком.

Фразовый глаголПереводПример
roll outвыкатывать постепенноWe'll roll out the feature gradually.
roll backоткатыватьRoll back if it breaks.
spin upподнимать (сервис/инстанс)Spin up a new container.
set upнастраиватьSet up the environment first.
look intoразбираться, изучатьI'll look into this bug.
break downразбивать на частиLet's break down the task.
figure outвыяснять, докапыватьсяI'll figure out the root cause.

Особенно коварна пара set up (глагол, «настраивать») и setup (существительное, «настройка»). «Let's set up the server» против «the setup is done». Та же история с log in / login и back up / backup: раздельно — действие, слитно — предмет.

Глаголы-минимум для чтения API

КлючСмыслГде встречается
fetch / parseполучить / разобратьfetch and parse JSON
handleобрабатыватьhandle the event
throw / catchкинуть / пойматьthrow on empty input
validateпроверитьvalidate the input
overrideпереопределитьoverride the method

Имена методов — это глаголы-описания. Зная этот минимум, ты понимаешь, что делает функция, ещё до чтения её тела.

Итоги

Технические глаголы — ключ к чтению исходников и доков, потому что имена методов это глаголы-описания. Освоив ядро (fetch, parse, handle, throw, catch, override и т.д.), ты понимаешь, что делает код, ещё до чтения тела метода. Лучшая практика — разбирать реальные имена методов из своего стека.

Проверьте себя
1. Что делает метод с названием validateAndParseUserInput?
AУдаляет ввод пользователя
BПроверяет корректность и разбирает пользовательский ввод
CОтправляет ввод на сервер
DШифрует пользовательский ввод
2. В чём разница между «raise» и «rise» в контексте ошибок?
AЭто синонимы
Braise — возбуждать ошибку (есть объект), rise — подниматься самому
Crise используется в Python, raise в Java
DРазницы нет, обе про исключения