Английская лексика · Разработка программного обеспечения

Английские термины разработки ПО: значения и примеры на русском

Разбирайте английскую лексику разработки программного обеспечения: от повседневной работы с кодом и тестирования до баз данных, архитектуры, веб-разработки и обработки данных. Для каждого термина приведены русское значение, пояснение употребления и английские примеры с переводом и разбором.

  • 1 143 терминов
  • 13 тем
  • 430 базовых терминов
  • 2 298 примеров

Основы программирования

  • functionсуществительноефункция

    Именованный блок кода, выполняющий одну задачу. Он может принимать входные значения и возвращать результат вызвавшему его коду.

  • variableсуществительноепеременная

    Имя в программе, под которым хранится значение — число, текст или список, — чтобы код мог использовать или менять его позднее.

  • codebaseсуществительноекодовая база, база кода

    Весь исходный код проекта или продукта, рассматриваемый как единое целое вместе со структурой, стилем и историей.

  • libraryсуществительноебиблиотека, программная библиотека

    Набор готового кода, который могут использовать другие программы, чтобы разработчикам не приходилось самим писать распространённые функции, например обработку дат или HTTP-запросов.

  • callглаголвызывать, вызов

    Запустить функцию, метод или API из другой части кода. Как существительное call — такой запрос, например вызов API.

  • loopсуществительноецикл, зацикливаться

    Фрагмент кода, который повторяет одни и те же действия несколько раз, например для каждого элемента списка или пока условие истинно.

  • classсуществительноекласс

    В объектно-ориентированном программировании шаблон, задающий данные и поведение типа объектов, например пользователя или счёта.

  • parameterсуществительноепараметр

    Именованный входной элемент, который функция или метод принимает согласно определению. Фактическое значение при вызове называется аргументом.

  • IDEсокращениеинтегрированная среда разработки, IDE

    Сокращение от integrated development environment: приложение для кода со встроенными редактором, отладчиком, поиском и другими инструментами.

  • compileглаголкомпилировать, собирать

    Преобразовать исходный код в код, который компьютер может выполнять, с помощью компилятора.

  • stringсуществительноестрока, строковый тип

    Текстовое значение в программе — например имя, сообщение или пароль, представленное последовательностью символов и обычно заключённое в кавычки.

  • booleanсуществительноелогический тип, булев тип

    Тип данных только с двумя возможными значениями — true или false; используется для ответов «да/нет», например для проверки, вошёл ли пользователь в систему.

  • objectсуществительноеобъект

    Единица программы, объединяющая связанные данные и функции для работы с ними; например объект пользователя с именем, электронной почтой и методом входа.

  • methodсуществительноеметод

    Функция, принадлежащая классу или объекту и обычно работающая с его данными, например user.save() или list.sort().

  • argumentсуществительноеаргумент, фактический параметр

    Фактическое значение, передаваемое функции при вызове. В add(2, 3) числа 2 и 3 — аргументы.

  • returnглаголвозвращать, оператор возврата

    Завершить функцию и передать значение обратно вызвавшему её коду; например, проверка пароля возвращает true или false.

  • if statementсуществительноеусловный оператор if, инструкция if

    Фрагмент кода, выполняемый только при истинности условия; часто за ним следует часть else, выполняемая при ложном условии.

  • syntaxсуществительноесинтаксис

    Правила записи кода на языке программирования: например, где должны стоять скобки, запятые и ключевые слова, чтобы компьютер мог его прочитать.

  • commentсуществительноекомментарий

    Пояснительная заметка в коде, которую компьютер игнорирует; также так называют замечания, оставленные при проверке кода.

  • source codeсуществительноеисходный код

    Читаемые человеком инструкции, которые программисты пишут на языке программирования до превращения их в программу, исполняемую компьютером.

  • open sourceприлагательноес открытым исходным кодом, открытый исходный код

    О программном обеспечении, исходный код которого общедоступен и который можно читать, использовать, изменять и распространять на условиях лицензии.

  • implementглаголреализовать, воплотить в коде

    Превратить план, дизайн или идею функции в работающий код. В объектно-ориентированном программировании также означает предоставить методы, требуемые интерфейсом.

  • interfaceсуществительноеинтерфейс, интерфейс взаимодействия

    В программировании — перечень методов, которые класс обязуется предоставить, без описания их реализации. В более широком смысле — точка взаимодействия двух систем либо пользователя и системы.

  • object-oriented programmingсуществительноеобъектно-ориентированное программирование, ООП

    Стиль программирования, организующий код в объекты, объединяющие данные и поведение, и опирающийся на классы, наследование и инкапсуляцию.

  • runtimeсуществительноевремя выполнения, среда выполнения

    Период, когда программа действительно работает, в отличие от написания или компиляции; также программная среда, исполняющая код, например Node.js.

  • package managerсуществительноеменеджер пакетов, система управления пакетами

    Инструмент для загрузки, установки, обновления и удаления библиотек, от которых зависит проект, например npm для JavaScript или pip для Python.

  • inheritanceсуществительноенаследование

    Отношение, при котором класс получает поведение или структуру другого класса и может добавлять или изменять отдельные части.

  • polymorphismсуществительноеполиморфизм

    Возможность использовать разные реализации через общий интерфейс, сохраняя собственное поведение каждой реализации.

  • encapsulationсуществительноеинкапсуляция

    Сокрытие внутреннего состояния объекта за контролируемым интерфейсом, чтобы другой код не зависел от его внутреннего устройства.

  • constructorсуществительноеконструктор

    Специальная операция, которая при создании объекта задаёт его начальное состояние и необходимые зависимости.

  • destructorсуществительноедеструктор

    Специальная операция, связанная с завершением времени жизни объекта и обычно используемая для освобождения принадлежащих ему ресурсов.

  • closureсуществительноезамыкание

    Функция вместе с доступом к переменным окружающего лексического окружения, даже если её вызывают из другого места.

  • callbackсуществительноефункция обратного вызова, колбэк

    Функция, переданная другому фрагменту кода, чтобы тот мог вызвать её при необходимости.

  • constantсуществительноеконстанта, неизменяемая привязка

    Именованное значение или привязка, которую нельзя переназначить после инициализации согласно правилам языка программирования.

  • integerсуществительноецелое число, целочисленный тип

    Числовой тип данных для целых чисел без дробной части; допустимый диапазон зависит от способа представления.

  • floating-point numberсуществительноечисло с плавающей точкой

    Число, хранящееся в конечном по точности формате с мантиссой и порядком, что позволяет представлять широкий диапазон величин.

  • enumerationсуществительноеперечисление, перечислимый тип

    Тип или объявленный набор именованных вариантов, представляющий ограниченное множество возможных значений.

  • pointerсуществительноеуказатель

    Значение, указывающее на область памяти и позволяющее коду обращаться к хранящемуся там объекту или данным.

  • referenceсуществительноессылка

    Способ обратиться к существующему значению или объекту, не обязательно создавая его независимую копию.

  • immutableприлагательноенеизменяемый

    Так говорят о значении или объекте, состояние которого нельзя изменить после создания.

  • mutableприлагательноеизменяемый

    Так говорят о значении или объекте, состояние которого можно менять после создания.

  • threadсуществительноепоток выполнения, поток

    Последовательность выполнения внутри процесса, которая может работать параллельно с другими последовательностями и совместно использовать некоторые ресурсы процесса.

  • mutexсуществительноемьютекс

    Механизм синхронизации, который допускает в защищённую секцию только один взаимодействующий контекст выполнения за раз.

  • race conditionсуществительноесостояние гонки

    Ситуация, в которой результат программы зависит от времени или порядка операций, способных выполняться параллельно.

  • garbage collectionсуществительноесборка мусора

    Автоматическое освобождение памяти, занятой объектами, которые среда выполнения считает недостижимыми или больше не нужными.

  • serializationсуществительноесериализация

    Преобразование структурированных данных или состояния объекта в представление, которое можно сохранить или передать, а затем прочитать.

  • deserializationсуществительноедесериализация

    Чтение сохранённого или переданного представления с восстановлением описанных в нём структур данных или значений.

  • call stackсуществительноестек вызовов

    Структура, в которой отслеживаются активные вызовы функций; обычно последний вызов находится наверху.

  • coroutineсуществительноекорутина

    Подобная функции процедура, которая может приостанавливаться и возобновляться, обеспечивая кооперативную многозадачность и упрощая асинхронный код.

  • stack frameсуществительноекадр стека, фрейм стека

    Блок памяти для вызова функции, содержащий её локальные данные, параметры и сведения для возврата во время выполнения.

  • mutable stateсуществительноеизменяемое состояние, мутабельное состояние

    Состояние программы, которое можно изменить после создания, например переменные или объекты с обновляемыми значениями.

  • event loopсуществительноецикл событий

    Механизм среды выполнения, который ожидает события и планирует задачи или обратные вызовы, позволяя обрабатывать множество операций без блокировки программы.

  • lexical scopeсуществительноелексическая область видимости, лексическая область

    Правило поиска имён по окружающей структуре кода, а не по последовательности вызовов функций.

  • variable shadowingсуществительноезатенение переменной, перекрытие имени переменной

    Ситуация, когда имя во внутренней области видимости скрывает одноимённую переменную из внешней области.

  • short-circuit evaluationсуществительноевычисление по короткой схеме, короткое замыкание вычисления

    Вычисление лишь той части выражения, которой достаточно для определения результата; ненужный операнд пропускается.

  • type inferenceсуществительноевывод типов, автоматический вывод типа

    Определение типа значения или выражения по коду без явного указания типа программистом.

  • type coercionсуществительноенеявное преобразование типов, приведение типов

    Автоматическое преобразование значения из одного типа в другой при вычислении выражения или операции.

  • pattern matchingсуществительноесопоставление с образцом, сопоставление с шаблоном

    Выбор ветви кода по структуре или содержимому значения, часто с присваиванием имён его частям.

  • pure functionсуществительноечистая функция

    Функция, которая возвращает одинаковый результат для одинаковых аргументов и не оказывает наблюдаемых внешних эффектов.

  • higher-order functionсуществительноефункция высшего порядка

    Функция, которая принимает другую функцию как аргумент или возвращает функцию в качестве результата.

  • tail callсуществительноехвостовой вызов

    Вызов функции в последней позиции другой функции, так что её результат сразу становится результатом вызывающей функции.

  • semaphoreсуществительноесемафор

    Механизм синхронизации со счётчиком, ограничивающим число задач, одновременно получающих доступ к ресурсу или продолжающих работу.

  • thread poolсуществительноепул потоков

    Управляемая группа повторно используемых потоков, выполняющих задачи, переданные программой.

  • undefined behaviorсуществительноенеопределённое поведение

    Поведение программы, для которого спецификация языка не устанавливает требований, обычно из-за нарушения правила языка.

Структуры данных и алгоритмы

  • algorithmсуществительноеалгоритм

    Чёткий пошаговый метод решения задачи или выполнения действия, например сортировки списка или поиска кратчайшего маршрута.

  • data structureсуществительноеструктура данных

    Способ организации данных в памяти, например массив, список, дерево или хеш-таблица, для быстрого выполнения определённых операций.

  • arrayсуществительноемассив

    Упорядоченный набор последовательно хранящихся элементов; к каждому обращаются по номеру позиции — индексу.

  • iterateглаголперебирать, выполнять итерацию

    Последовательно проходить элементы коллекции или повторять процесс, улучшая результат на каждом шаге.

  • hash mapсуществительноехеш-отображение, хеш-таблица

    Структура данных для пар «ключ — значение», быстро находящая значение по ключу, обычно за постоянное время.

  • recursionсуществительноерекурсия

    Приём, при котором функция решает задачу, вызывая себя для меньшей её части, пока не достигнет простого случая.

  • Big O notationсуществительноенотация Big O, асимптотическая нотация

    Способ описать, как растут время работы или расход памяти алгоритма при увеличении входных данных, например O(1), O(n) или O(n²).

  • time complexityсуществительноевременная сложность

    То, как растёт число шагов алгоритма с увеличением размера входных данных; обычно записывается в нотации Big O.

  • indexсуществительноеиндекс, индекс элемента

    Номер позиции элемента в массиве или списке. В большинстве языков отсчёт начинается с нуля, поэтому у первого элемента индекс 0.

  • sortглаголсортировать, сортировка

    Расположить элементы в заданном порядке, например числа от меньшего к большему или имена по алфавиту. Для этого существуют эффективные алгоритмы.

  • stackсуществительноестек, структура данных «стек»

    Структура данных, в которой последним добавляют элемент, который первым извлекают (LIFO), как стопку тарелок. Элементы кладут и снимают сверху.

  • queueсуществительноеочередь, очередь задач

    Структура данных, в которой первым извлекают тот элемент, который добавили первым (FIFO), как людей в очереди. Также система, где задачи или сообщения ждут обработки.

  • linked listсуществительноесвязный список

    Структура данных из узлов, каждый из которых хранит значение и указатель на следующий узел; элементы связаны цепочкой, а не размещены рядом в памяти.

  • treeсуществительноедерево, древовидная структура

    Структура данных с корнем наверху и дочерними узлами-ветвями ниже; подходит для иерархических данных, например папок, меню или HTML-страницы.

  • brute forceсуществительноеполный перебор, метод грубой силы

    Простой подход, при котором проверяют все возможные варианты, пока не найдут ответ. Его легко написать, но на больших входных данных он часто слишком медленный.

  • space complexityсуществительноепространственная сложность, сложность по памяти

    Объём дополнительной памяти, необходимой алгоритму при росте входных данных; обычно записывается в нотации Big O, например O(1) или O(n).

  • tupleсуществительноекортеж

    Упорядоченная группа значений, рассматриваемая как одно значение; часто элементы имеют разные типы и занимают фиксированные позиции.

  • setсуществительноемножество

    Коллекция уникальных значений с операциями вроде проверки принадлежности, объединения и пересечения.

  • heapсуществительноекуча, пирамида

    Древовидная структура данных, в которой соблюдается правило упорядочения родителей и потомков; часто позволяет эффективно извлекать наименьший или наибольший элемент.

  • iteratorсуществительноеитератор

    Объект или протокол, который выдаёт элементы последовательности по одному и отслеживает продвижение по ней.

  • topological sortсуществительноетопологическая сортировка

    Упорядочивание вершин ориентированного ациклического графа так, чтобы каждая зависимость стояла раньше зависящего от неё элемента.

  • balanced treeсуществительноесбалансированное дерево

    Древовидная структура данных с примерно равномерной высотой ветвей, благодаря чему поиск, вставка и удаление остаются эффективными.

  • memoizationсуществительноемемоизация, мемоизация результатов

    Оптимизация, при которой сохраняют результаты затратных вызовов функции и используют их повторно при тех же входных данных.

  • dynamic programmingсуществительноединамическое программирование

    Метод решения задач, при котором их разбивают на перекрывающиеся подзадачи и сохраняют результаты, чтобы не выполнять работу повторно.

  • adjacency matrixсуществительноематрица смежности

    Представление графа в виде матрицы, где каждая ячейка указывает, соединены ли две вершины и, возможно, насколько сильно.

  • greedy algorithmсуществительноежадный алгоритм, жадная стратегия

    Алгоритм, который на каждом шаге выбирает лучший немедленный вариант в надежде получить хороший общий результат.

  • segment treeсуществительноедерево отрезков

    Структура данных в виде дерева, хранящая сводные значения для интервалов массива и поддерживающая эффективные запросы и обновления диапазонов.

  • suffix treeсуществительноесуффиксное дерево

    Древовидная структура, хранящая все суффиксы строки и позволяющая быстро искать подстроки и повторяющиеся шаблоны.

  • binary treeсуществительноебинарное дерево, двоичное дерево

    Древовидная структура данных, в которой у каждого узла не более двух потомков — обычно левого и правого.

  • suffix arrayсловосочетаниесуффиксный массив

    Структура данных, хранящая отсортированные начальные позиции всех суффиксов строки для быстрого поиска текста.

  • adjacency listсловосочетаниесписок смежности

    Представление графа, в котором для каждой вершины хранится список непосредственно связанных с ней вершин.

  • priority queueсуществительноеочередь с приоритетом, приоритетная очередь

    Коллекция, извлекающая элементы по приоритету, а не просто в порядке поступления.

  • trieсуществительноебор, префиксное дерево

    Дерево для хранения последовательностей, в котором общие префиксы объединены в общие пути от корня.

Короткий тест: знаете ли вы эти термины?

Десять вопросов из словаря. Выберите правильное значение каждого термина и проверьте результат.

Как изучать лексику: Разработка программного обеспечения

  • Читайте документацию, README, примечания к выпускам и обсуждения задач. Обращайте внимание на выражения, которые повторяются в вашей работе.
  • Учите сочетания целиком: fix a bug, report a bug, steps to reproduce. Так проще использовать термин в собственной фразе.
  • Практикуйтесь в коротких сообщениях: описаниях задач, комментариях к коду и сообщениях коммитов.
  • Запоминайте произношение сокращений: API и SDK обычно произносят по буквам, JSON — как имя Jason, а REST — как одно слово.
  • Сохраняйте вежливые фразы для командной работы: Could you take a look? и What do you think about…?

Частые вопросы

Как учить английские термины разработки ПО?

Читайте реальные рабочие тексты и отмечайте контекст: документацию, README, обсуждения задач и комментарии к pull request. Учите слово вместе с типичными сочетаниями, например open a pull request и fix a bug, а затем используйте их в своих сообщениях.

С каких терминов начать?

Начните с bug, fix, commit, branch, pull request, merge, code review, deploy, release, ticket, sprint и stand-up. Затем переходите к тестированию, отладке, архитектуре и API — в зависимости от задач, с которыми сталкиваетесь.

Отличается ли британский английский от американского в программировании?

В коде, названиях API и значительной части документации встречается американское написание: color, initialize, behavior. В обычном тексте британские авторы могут писать colour или behaviour, но имя свойства CSS color менять нельзя. Произношение некоторых слов также различается, например agile и route.

Использовать русское название или английский термин?

Сохраняйте точные английские имена в коде, API и командах. В объяснениях для русскоязычной аудитории выбирайте понятный русский эквивалент и при необходимости указывайте английский термин рядом. Для командных обсуждений учитывайте принятую в проекте терминологию.

Как рассказывать о работе на английском на встречах и при проверке кода?

Для короткого отчёта подойдут Yesterday I fixed…, today I'm working on…, no blockers. При проверке кода можно написать Could you take a look at my PR? или I've addressed your comments. Пометка nit обозначает мелкое замечание, а LGTM — одобрение. Вежливый вопрос What do you think about…? помогает обсудить предложение без категоричного требования.

Закрепляйте лексику чтением

Тексты подходящего уровня помогают запоминать новые слова. Выберите бесплатные книги на английском: