Upgrade to Pro — share decks privately, control downloads, hide ads and more …

はやい開発のためのJSONデータ型の活用

Avatar for sunnyone sunnyone
August 24, 2023

 はやい開発のためのJSONデータ型の活用

Avatar for sunnyone

sunnyone

August 24, 2023
Tweet

More Decks by sunnyone

Other Decks in Programming

Transcript

  1. JSON 型とは RDB に備わっているJSON を格納するためのデータ型 json 型やjsonb 型 JSON のための関数もある

    ->> 演算子, json_array_elements, etc 今回はRDB の機能自体については触れません 3
  2. JSON 型の運用上の課題:構造が変わる ???「タイトルの一部を太字にしたいんですけど」 { "title": [ { "text": " 失敗",

    "type": "strong" }, { "text": " から学ぶRDB の正しい歩き方" }, ], "author": " 曽根 壮大" } 6
  3. 対策 2. 最初から柔軟性のある構造にする ある程度変更を見越しておく。 { "title": [ { "text": "SQL

    パズル" }, ], "author": " ジョー・セルコ" } → 想定するにも限界がある 9
  4. 複数バージョンの罠 本来の目的の中に今の実装にない過去データの構造が入り込む 開発速度を下げる function BookBox({title}) { if (title instanceof string)

    { // こういうのが増えていく return <Box><div>{title}</div></Box>; } // 本来は見た目をどうにかするのが役割 return <Box><DecoratedText text={title} /></Box>; } 11
  5. 例 こういう層を書けるようにしておくと、本来の役割に集中できる function parseFooData(bookData): Data { if (bookData instanceof string)

    { return [ { text: bookData.title } ]; } return bookData; } function BookBox({book}) { return <Box><DecoratedText text={title} /></Box>; } 13