Важная характеристика сеньора, создающего действительно надёжное программное обеспечение -- это идея приоритета спецификации над кодом. Потому что программа, которая никогда не ошибалась, всё равно может ошибиться в любой момент.
Например, код даёт более строгие гарантии, нежели подразумеваемы спецификацией, и на эту разницу какие-нибудь дотошные программисты обязательно западут.
=
-- Эй, бэкенд! Нафига вы сломали API инвентаря дварфа? Раньше JSON приходил с ключами, упорядоченными по именам.
-- Нет, это не было гарантировано API, не стоит на это полагаться.
-- Ну и что, зато это разумная и удобная для фронтенда вещь, на которую мы рассчитываем, и её изменение -- это нарушение!
=
"Since the release of Go 1.0, the runtime has randomized map iteration order. Programmers had begun to rely on the stable iteration order of early versions of Go, which varied between implementations, leading to portability bugs."
В инженерии есть такой принцип робастности/надёжности Постела:
"для того, чтобы сделать надежный протокол, нужно как можно точнее придерживаться спецификаций, и в то же время «прощать» тех партнеров, кто не следует спецификациям в точности. Прощать до тех пор, пока вы в состоянии понять, что они хотят сказать."
Но в программировании это прямой рецепт создания хрупкого программного обеспечения.
Post #831
1.09K
- ✍ 5
- 👍 1
- 🫡 1