home.social

#stringify — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #stringify, aggregated by home.social.

fetched live
  1. Encode, don't stringify — как JSON.stringify вам врёт

    Помните, как лет 5-7 назад все сидели на Yup или Ajv и всех всё устраивало? Потом появилось «Parse, don’t validate», стало настольной книгой для кучи разработчиков и в итоге выстрелило и у нас, в JavaScript и TypeScript. Тысячи библиотек со схемами - лучшее тому подтверждение. Но это уже решённая проблема. А вот что не решено — обратная сторона: JSON.stringify({ price: Infinity }) // => ‘{“price”:null}’ Ни падения, ни предупреждения. Где-то сломалась математика, а клиент получил null и нарисовал пустую ячейку. И это только один пункт из списка: undefined там, где в типах написано string; молча пропавшие ключи; Map и Set, превращающиеся в {}; и вообще отправляется всё - включая поля, которые вы отправлять не собирались. Кажется, за 7 лет разработки я собрал все эти грабли. В статье разбираю каждый пункт и показываю как это чинится - “Encode, don’t stringify”

    habr.com/ru/articles/1070394/

    #json #jsonschema #httpсервер #encoder #stringify

  2. @fluor I've seen people do complex repeated-include metaprogramming with the C preprocessor for sure (it helps to know about #undef, #stringify and ##) but also leaning on the C preprocessor this way can get you in some very hard to debug spots very fast.