20 законов разработки, которые должен знать каждый инженер1.
Закон Галла: Работающая сложная система вырастает из работающей простой.
2.
KISS: Делай проще. Всё остальное — оверхеад.
3.
Закон Конвея: Компании проектируют системы, которые повторяют структуру их коммуникаций.
4.
Закон Хайрума: У достаточно большого API уже неважно, что ты обещал в контракте. Кто-нибудь уже зависит от каждого observable-поведения твоей системы.
5.
CAP-теорема: Выбери два: консистентность, доступность, устойчивость к разделению.
6.
Закон Завински: Любая программа разрастается до тех пор, пока не научится читать почту.
7.
Закон Брукса: Добавление людей в опаздывающий проект делает его ещё более поздним.
8.
Эффект Рингельмана: Производительность каждого участника группы падает с ростом группы.
9.
Закон Прайса: Половину работы делают квадратный корень от всех людей.
10.
Эффект Даннинга — Крюгера: Новички переоценивают свои способности, эксперты — недооценивают.
11.
Закон Хофштадтера: Всё занимает больше времени, чем ты планируешь, даже с учётом этого закона.
12.
Закон Паркинсона: Работа расширяется, чтобы заполнить всё отведённое на неё время.
13.
Закон Гудхарта: Когда метрика становится целью, она перестаёт быть хорошей метрикой.
14.
Закон Гилба: Измерять неточно лучше, чем не измерять вообще.
15.
Принцип Кнута: Забудь о микрооптимизациях в 97% случаев. Преждевременная оптимизация — корень всех зол.
16.
Закон Амдала: Ускорение одной части системы ограничено долей времени, которое эта часть реально используется.
17.
Закон Мёрфи: Если что-то может пойти не так, оно пойдёт не так.
18.
Закон Постела: Будь консервативен в том, что отправляешь, и либерален в том, что принимаешь.
19.
Закон Стерджена: 90% всего на свете — фигня.
20.
Закон Каннингема: Лучший способ получить правильный ответ в интернете — не задать вопрос, а написать неправильный ответ.
@WebDev_Plus