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

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

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

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

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

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

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

  • disjoint-set data structureсуществительноеструктура непересекающихся множеств, система непересекающихся множеств

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

  • amortized analysisсуществительноеамортизированный анализ

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

  • stable sortсуществительноестабильная сортировка, устойчивая сортировка

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

  • hash collisionсуществительноеколлизия хешей, хеш-коллизия

    Ситуация, когда разные входные данные дают одинаковое хеш-значение.

  • ring bufferсуществительноекольцевой буфер, циклический буфер

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

Управление версиями

  • pull requestсуществительноезапрос на слияние, пул-реквест

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

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

    Сохранённый снимок изменений в репозитории с коротким сообщением о том, что и зачем изменено. Также глагол: зафиксировать изменения.

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

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

  • mergeглаголсливать, слияние

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

  • repositoryсуществительноерепозиторий

    Место хранения кода проекта и полной истории изменений; обычно им управляет Git, а размещён он часто в интернете.

  • pushглаголотправлять изменения, пушить

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

  • merge conflictсуществительноеконфликт слияния, конфликт при слиянии

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

  • check outфразовый глаголпереключиться на ветку, проверить

    В Git — переключить рабочие файлы на ветку или коммит, чтобы просмотреть эту версию кода или работать с ней.

  • cloneглаголклонировать, создать локальную копию

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

  • rebaseглаголперебазировать, перебазирование

    В Git переместить коммиты своей ветки так, чтобы они начинались от более новой точки, обычно от актуальной main; история становится линейнее.

  • version controlсуществительноеконтроль версий, система контроля версий

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

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

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

  • pullглаголполучить и слить изменения, выполнить pull

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

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

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

  • commit messageсуществительноесообщение коммита, описание коммита

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

  • main branchсуществительноеглавная ветка, ветка main

    Центральная ветка репозитория с официальной актуальной версией кода. От неё создают другие ветки и обратно в неё сливают изменения.

  • feature branchсуществительноефункциональная ветка, ветка для функции

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

  • revertглаголотменить коммит, откатить изменение

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

  • forkглаголфоркнуть, создать форк

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

  • stashглаголвременно отложить изменения, stash

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

  • cherry-pickглаголвыборочно перенести коммит, cherry-pick

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

  • forking workflowсуществительноемодель работы через форки, рабочий процесс с форками

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

  • interactive rebaseсуществительноеинтерактивный rebase, интерактивная перебазировка Git

    Режим Git rebase, позволяющий менять порядок, объединять, редактировать или удалять коммиты с переписыванием истории ветки.

  • merge baseсуществительноебазовый коммит слияния, общий базовый коммит

    Наилучший общий предок двух коммитов, который Git использует при вычислении трёхстороннего слияния.

  • fast-forward mergeсуществительноеслияние fast-forward, слияние с перемоткой вперёд

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

  • squashглаголобъединить коммиты, сквошить коммиты

    Объединить несколько коммитов в один, обычно чтобы упростить историю ветки перед слиянием или проверкой.

  • detached HEADсуществительноеотсоединённый HEAD, состояние detached HEAD

    Состояние Git, в котором HEAD указывает непосредственно на коммит, а не на имя ветки.

  • reflogсуществительноежурнал ссылок Git, reflog

    Локальная история изменений ссылок Git, например прежних позиций HEAD или ветки.

  • sparse checkoutсуществительноеразреженная рабочая копия, выборочное извлечение файлов

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

  • shallow cloneсуществительноеповерхностный клон, клон с ограниченной историей

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

  • three-way mergeсуществительноетрёхстороннее слияние

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

  • bisectглаголвыполнить бинарный поиск по коммитам, bisect

    Найти изменение в упорядоченной последовательности ревизий, проверяя середину диапазона и последовательно сужая его.

Проверка и качество кода

  • code reviewсуществительноепроверка кода, код-ревью

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

  • refactorглаголрефакторить, перерабатывать структуру кода

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

  • technical debtсуществительноетехнический долг

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

  • LGTMсокращениевыглядит хорошо, LGTM

    Сокращение от looks good to me: короткий комментарий проверяющего, означающий, что изменение кода его устраивает и его можно слить.

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

    Небольшой необязательный комментарий при проверке, например об имени, пробелах или формулировке, который не должен блокировать изменение. Часто сокращают до nit.

  • address feedbackсловосочетаниеучесть замечания, ответить на обратную связь

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

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

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

  • hard-codedприлагательноежёстко заданный, зашитый в код

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

  • code smellсуществительноепризнак проблемы в коде, запах кода

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

  • reviewerсуществительноепроверяющий, рецензент кода

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

  • approveглаголодобрить, утвердить

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

  • readableприлагательноепонятный, удобочитаемый

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

  • best practiceсуществительноерекомендуемый подход, лучшая практика

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

  • clean codeсуществительноечистый код, понятный код

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

  • maintainableприлагательноеудобный в сопровождении, поддерживаемый

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

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

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

  • dead codeсуществительноенеиспользуемый код, мёртвый код

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

  • DRYсокращениеDRY, принцип «не повторяйся»

    Сокращение от Don't Repeat Yourself: принцип, согласно которому каждая часть знания или логики должна быть в одном месте, а не дублироваться в коде.

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

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

  • code standardсуществительноестандарт кодирования, соглашения по написанию кода

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

  • deterministic buildсловосочетаниедетерминированная сборка, воспроизводимая сборка

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

  • cyclomatic complexityсуществительноецикломатическая сложность

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

  • guard clauseсуществительноезащитная проверка, ранний выход из функции

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

  • shotgun surgeryсуществительноеразбросанные правки, кодовый запах «дробовиковая хирургия»

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

  • feature envyсуществительноезависть к данным другого объекта, кодовый запах feature envy

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

  • static analysisсуществительноестатический анализ

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

Тестирование

  • unit testсуществительноемодульный тест, юнит-тест

    Небольшой автоматизированный тест отдельной функции или класса, без базы данных, сети и остальной системы.

  • test caseсуществительноетестовый сценарий, тест-кейс

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

  • edge caseсуществительноеграничный случай, краевой случай

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

  • QAсокращениеконтроль качества, QA

    Сокращение от quality assurance — работы по проверке соответствия ПО требованиям и его правильной работы. Также так называют людей или команду, выполняющих эту работу.

  • regressionсуществительноерегрессия, регрессионная ошибка

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

  • integration testсуществительноеинтеграционный тест

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

  • test coverageсуществительноепокрытие тестами, покрытие кода тестами

    Показатель, часто в процентах, доли кода, выполняемой автоматическими тестами; он показывает проверенные и непроверенные части.

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

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

  • end-to-end testсуществительноесквозной тест, end-to-end-тест

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

  • flakyприлагательноенестабильный, ненадёжный

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

  • test suiteсуществительноенабор тестов, тестовый набор

    Группа тестов, запускаемых вместе, например все модульные тесты проекта или тесты модуля оплаты.

  • manual testingсуществительноеручное тестирование

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

  • automated testingсуществительноеавтоматизированное тестирование

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

  • assertionсуществительноеутверждение в тесте, проверочное условие

    Строка теста, проверяющая соответствие результата ожидаемому значению. Если условие ложно, тест завершается неудачей.

  • smoke testсуществительноедымовой тест, быстрая базовая проверка

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

  • happy pathсуществительноештатный сценарий, сценарий успешного выполнения

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

  • TDDсокращениеTDD, разработка через тестирование

    Сокращение от test-driven development: сначала пишут падающий тест, затем код, который его проходит, после чего улучшают код; цикл повторяют.

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

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

  • UATсокращениеUAT, приёмочное тестирование пользователями

    Сокращение от user acceptance testing: заключительный этап тестирования, когда реальные пользователи или заказчик проверяют соответствие программы своим потребностям перед запуском.

  • crash reportсуществительноеотчёт о сбое, отчёт о падении приложения

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

  • analyticsсуществительноеаналитика, аналитические данные

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

  • crash-free rateсуществительноедоля сессий без сбоев, показатель работы без сбоев

    Доля пользователей или сессий, в которых за определённый период не произошло сбоя; важный показатель стабильности приложения.

  • device fragmentationсуществительноефрагментация устройств, разнообразие устройств

    Большое разнообразие устройств, размеров экранов, аппаратных характеристик и версий ОС, на которых должно работать приложение; оно усложняет тестирование, особенно на Android.

  • UI testсуществительноетест интерфейса, UI-тест

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

  • battery drainсуществительноебыстрый разряд батареи, повышенный расход заряда

    Более быстрый, чем обычно, расход заряда из-за приложения, например при постоянном отслеживании местоположения, частых сетевых запросах или фоновых задачах.

  • app sizeсуществительноеразмер приложения, объём приложения

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

  • ANRсокращениеANR, ошибка «приложение не отвечает»

    Application Not Responding — ошибка Android, возникающая, когда главный поток приложения слишком долго заблокирован, например около пяти секунд не реагирует на касание.

  • prototypeсуществительноепрототип

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

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

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

  • milestoneсуществительноеэтап разработки, контрольная веха

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

  • alphaсуществительноеальфа-версия, альфа-этап

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

  • betaсуществительноебета-версия, бета-этап

    Этап после альфы, когда содержание игры завершено и команда сосредоточена на исправлении ошибок и полировке; также открытое или закрытое тестирование такой версии.

  • vertical sliceсуществительноевертикальный срез, готовый демонстрационный фрагмент игры

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

  • usabilityсуществительноеудобство использования, юзабилити

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

  • usability testingсуществительноетестирование удобства использования, юзабилити-тестирование

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

  • heuristic evaluationсуществительноеэвристическая оценка, экспертная оценка интерфейса

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

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

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

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

  • Читайте документацию, 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…? помогает обсудить предложение без категоричного требования.

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

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