В Твиттере набирает обороты термин anti-under-engineering.
Ну то есть вы понял, да? Понятие оver-engineering известно давно и всем: как сделать простые вещи максимально и не к месту сложно.
Но anti-under-engineering он немного о другом. Он о том, как не сделать слишком просто. Как не подложить себе свинью в будущем, дорабатывая систему до постоянно меняющихся бизнес-требований. Как обезопасить себя от глупых и недальновидных решений. Как не писать части систем дважды.
Вот вы знали, например, что Codepen.io целиком был построен вокруг и хранил все свои данные, включая файлы, в PostgreSQL базе данных? А ведь могли бы с самого начала попытаться сделать потрясающе сложную систему хранения стилей, скриптов, картинок... и никогда ее не закончить.
Одной из техник в этом понятии является отказ от булевых флагов в пользу временных меток, timestamp.
Например:
❌ emailVerified
✅ emailVerifiedAt
❌ isDeleted
✅ deletedAt
То есть ты вместо логического
true или false записываешь или null или timestamp. Дату и время, если коротко. И действительно, сразу больше информации без потери сути. Техника эта хорошо описана в гайдах по языку ReasonML и называется Boolean blindness: https://github.com/leostera/reason-design-patterns/blob/master/patterns/boolean-blindness.md
Там очень много подобного, даже если сам язык и не используете.
Примером такой техники в верстке я могу назвать префиксы CSS-классов, если вы, конечно, все ещё их используете. Ну и неймспейсы вообще.
Какие будут ваши примеры? :)