При наличии достаточного количества пользователей вашего API не имеет значения, что вы обещаете в контракте: всё наблюдаемое поведение вашей системы будет зависеть от кого-то другого.
Закон Хайрама
Имеется в виду, что даже самая простая и логичная спецификация системы может (в 98% обязательно будет) с течением времени становиться всё более сложной из-за деталей и особенностей реализации. Исходный дизайн системы, который вы здорово задумали простым и прямолинейным, становится сложным и запутанным из-за постоянного добавления новых функций, правил и исключений (под давлением/хотелками заказчиков/менеджеров), которые не были (и не могли быть) учтены при первоначальном проектировании.
Конечно, крайне важно тщательно планировать, проектировать и тестировать по всем измерениям вашу систему на всех этапах, чтобы минимизировать вероятность возникновения сложностей и непредвиденных ошибок в будущем, но... попробуйте объяснить это своему начальству.
Готовлю по этой темке трек software design -- как исходно закладываться так, чтобы любое развитие системы сохраняло её сложность линейной. Не одна серебряная пуля, а много мелких серебряных пулек.
Первый курс готов на 80% (и осталось ещё 80% :). Так затянуло, так залип, не могу оторваться, даже отложил (временно) Metal Slug Attack Reloaded.
Post #1313
1.17K

- 👍 51
- ❤ 11
- 🙏 4
- 🔥 2
- 🫡 2