Глоссарий

Словарь веб-разработчика

Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.

228 терминов
46 букв
Н
Нагрузочное тестирование
Нагрузочное тестирование — проверка того, как система ведёт себя под ожидаемой и пиковой нагрузкой. Отвечает на вопросы: сколько одновременных пользователей выдержит сервер? Где возникает деградация?ТипыLoad test — ожидаемая нагрузка. Держится ли p99 latency < 500 мс при 1000 RPS?Stress test — нагрузка выше ожидаемой. Где «ломается» система?Spike test — внезапный пик. Выдержит ли 10x нагрузку за 1 минуту?Soak test — стабильная нагрузка длительное время. Есть ли утечки памяти?Инструментыk6 — JavaScript, open-source, отличный DXApache JMeter — Java, GUI, проверен годамиGatling — Scala, DSL, хорошая отчётностьМетрикиRPS, latency percentiles (p50, p95, p99), error rate, throughput. Тестируйте в окружении, максимально близком к продакшну.
Наследование
Наследование — механизм, при котором класс-потомок получает свойства и методы родительского класса и может переопределять или расширять их. PHP поддерживает одиночное наследование: класс может иметь только одного родителя. Базовый пример class Animal { public function __construct(protected string $name) {} public function speak(): string { return '...'; } } class Dog extends Animal { public function speak(): string { return 'Woof!'; } public function fetch(): void { /* ... */ } } $d = new Dog('Rex'); $d->speak(); // "Woof!" — overriding $d->fetch(); // собственный метод Когда НЕ стоит использовать Наследование часто избыточно. Вопрос: «является ли B разновидностью A?» (is-a). Если да — ок. Если вы наследуете только ради повторного использования кода — лучше Composition или Trait. Composition over Inheritance Встраивание объектов вместо наследования — более гибко. Вместо class EmailService extends Mailer → class EmailService { private Mailer $mailer; }.
Неизменяемость (Immutability)
Неизменяемый объект — тот, чьё состояние нельзя изменить после создания. Вместо мутации — возвращается новый объект с обновлёнными значениями. Устраняет целый класс багов, связанных с неожиданными мутациями.ПреимуществаПотокобезопасность: неизменяемый объект можно безопасно читать из нескольких потоков одновременноПростота рассуждений: значение не меняется «где-то там», легче отслеживать состояниеUndo/Redo: старое состояние всегда доступноЧистые функции: без побочных эффектов — проще тестироватьПример (Value Object)class Money { public function __construct( public readonly int $amount, public readonly string $currency ) {} public function add(Money $other): self { return new self($this->amount + $other->amount, $this->currency); } }В JavaScriptconst, Object.freeze(), spread-оператор {...obj, key: newVal}. Библиотеки: Immer, Immutable.js.
Нормализация БД
Нормализация — процесс организации таблиц для минимизации дублирования данных и предотвращения аномалий при вставке, обновлении и удалении. Каждая нормальная форма накладывает более строгие требования.Первые три нормальные формы1NF — каждая ячейка содержит одно атомарное значение (не массив, не список через запятую)2NF — нет частичных зависимостей: каждый не-ключевой атрибут зависит от всего первичного ключа3NF — нет транзитивных зависимостей: не-ключевые атрибуты зависят только от ключа, а не от других не-ключевыхДенормализацияНормализация снижает избыточность, но увеличивает число JOIN. В нагруженных системах чтения данные намеренно денормализуют (дублируют), чтобы избежать сложных запросов. Типичный пример — хранение username вместе с комментарием, чтобы не делать JOIN к таблице users.