Термины, которые действительно должен знать каждый разработчик
• Иммутабельность. Данные, которые нельзя изменить после создания — вместо этого при обновлении создаются новые копии.
• Чистые функции. Функции, которые при одинаковом входе всегда возвращают одинаковый результат и не имеют побочных эффектов.
• Побочные эффекты. Любое внешнее воздействие вне функции (например, логгирование, вызов API, изменение внешнего состояния).
• Референциальная прозрачность. Выражение можно заменить его значением без изменения поведения программы.
• Мутация состояния. Изменение значения переменной или объекта со временем — часто не приветствуется в функциональном программировании.
• Идемпотентность . Операция, которую можно выполнять многократно без изменения результата после первого применения.
• Декларативное программирование. Описание того, что нужно сделать, а не как это сделать (например, SQL, React, HTML).
• Императивное программирование. Пошаговые инструкции для выполнения задачи (например, циклы, условные операторы).
• Мемоизация. Кеширование результата функции, чтобы при повторных вызовах с теми же аргументами результат возвращался мгновенно.
• Когезия. Насколько чётко и логично связаны обязанности класса — высокая когезия = лучше дизайн.
• Тесная связанность. Классы чрезмерно зависят от внутренней реализации друг друга — изменения становятся рискованными.
• Утиная типизация. «Если выглядит как утка и крякает как утка — значит, это утка» — тип проверяется по поведению, а не по наследованию.
• Срезка объекта. При присваивании объекта производного класса объекту базового типа теряются дополнительные поля/методы — типичная ловушка в C++.
👉 Java Portal
Post #1570
2.89K
- 👍 12
- ❤ 4
- 🔥 4
- 👀 2