---
# System prepended metadata

title: ⑮12/15(火) 14.1~15.3 JSON/リソース設計
tags: [Webを支える技術]

---

# ⑮12/15(火) 14.1~15.3 JSON/リソース設計
###### tags:`Webを支える技術`
14章 JSON 読了🎉

## 14.1~14.4
@harukus 
- （感想）フィヨルドの課題でRubyを使ってJSONファイルを扱った事を思い出しました。
  - @Saki おお、そんな課題があるんですね->Sinatraの課題
  - ＠皐月　なんと。->使用するかは生徒による

@皐月
* JSONの話をしているのに、JSONがわからなくなる
* オブジェクトは{}で囲われる
メンバは,で区切られる
メンバの名前と値は、:で区切られる
> これはjavascriptの記法だったのか
* 冗長性が低い

2021/4/5 追記
* JSONはJavascript Object Notationの略で、データ記述言語
* Javascriptの記法で、データを記述できる点が最大の特徴
* プログラミング言語間で、データを受け渡せます
* Webサービスではブラウザがjavascriptを実行できるので相性がいいこと、XMLと比べてデータ表現の冗長性が低いことなどから、Ajax通信におけるデータフォーマットとして活用されています。
* __JSONで用意されているデータ型は6つ__
    * オブジェクト
        * 名前と値の集合
        * 名前と値の組をオブジェクトのメンバという
        * メンバの名前は常に文字列
        * メンバの値は数値、オブジェクト、配列など、JSONのデータ型であればなんでも入れられる
    * 配列
    * 文字列
    * 数値
    * ブーリアン
    * null
    * タイムゾーンを扱う場合、toString関数で出力した文字列が利用できる。

* 他のファイル保存形式
    * XML形式
    * JSON
    * CSV
* どのような理由で、そのデータ形式で保存するのを選んだか
    * JSONはMap型であり、json形式にするためのライブラリも簡単にインポートできそうだった。
    * 今回特にデータ形式の指定はなかったため、json形式を採用した。
など。

* JSONのデコード、エンコード
* エンコードは他のデータに変換すること。データの圧縮などを指す場合もある。
* デコードは、エンコードしたデータを元に戻すこと。


@saki
- JSONについてはWeb技術の基本のch.4-07にも説明が載ってる
  - データ構造を表すために使われる
  - XMLとは違い、データを階層的に並べて構造を表現する

- 「データ表現の冗長性が低い」とは？
　- [XMLでのやりとりのオーバーヘッドを減らすには？](https://www.atmarkit.co.jp/fxml/askxmlexpert/021overhead/21overhead.html)
　- XMLはタグを使って書くがJSONには無い。=冗長性がXMLより低い。

## 14.5~14.6

@harukus 
- 

@皐月

- リンクって大事なんだな〜
- <script></script>で、javascriptを読み込む。
>これはやったことがあるぞ。

- JSONPって、どこで使ってるの...？（追記します）

@Saki 
- 分からない用語が多くてむずかしい。。
  - ＠皐月　めっちょわかります 

- クロスドメイン通信とは？
  - [わわわIT用語辞典](https://wa3.i-3-i.info/word15224.html)  
    - IPアドレスは「コンピュータ向けのネットワーク上の住所」
    - ドメイン名は「IPアドレスに付けた人間向けの名前」 


> XMLHttpRequestではクロスドメイン通信ができませんが、実は代替手段があります。HTMLの<script>要素を用いると、複数のサイトからJavaScriptファイルを読み込めるのです。

- JSONを扱ったことがないので全体的にぴんと来なかった。理解できたらここに後で書き足す

## 15.1~15.3

@harukus
- リソース設計とはRailsのルーティングで出てくる`resources`と関係がある、、？
- [Railsのresourcesとresourceついて \- Qiita](https://qiita.com/Atsushi_/items/bb22ce67d14ba1abafc5)

@皐月

- リソース設計とは何か。URI設計とは違うものか？
　

@Saki
- 15~17章の読み方
> 5章、16章、17章のRESTに関する設計は他の本にはあまりない、おいしいコンテンツです。
一方でRailsを題材にしていない一般的な話なので、読み替えが必要で読むのが難しいかもしれません。
なので、Railsアプリの作り方に慣れてきて、URI設計うまくなりたい、と思ったときが読み時かもしれません。

- URI設計については説明あったけど、リソース設計は初めて知る気がする。

- 設計と一口に言っても、いろんな設計がある。リソース設計/URI設計/オブジェクト指向のクラス設計/データベース設計

> リソースの設計図とは何かと言えば、たとえば、リソースの種類、リソースの表現、リソースの操作方法、リソースとリソースのリンク関係など

- > リソース設計にはまだ一般的な設計手法が存在しません。

❓今もない？
ネットで調べたが、リソース設計の方法について具体的な記事は出てこなかったので、今も無いみたい。

- ❓リソースの意味の範囲が広い。「Web上に存在する、名前をもったありとあらゆる情報」。webアプリケーションを開発するにあたってリソースて具体的に何を指すのか？
  - ->どんなwebアプリケーションうぃ作るかによって、リソースが何かは変わってくる
  - リソースの設計方法のところで、最初に「Webサービスで提供するデータを特定する」とあるので、まず使うデータを決めて、そのデータをリソースに分ける作業(データをどういう固まりで扱うか決める作業？)をする必要がある。
  - **リソースを定義するところから始めるので、どんなwebアプリを作るかによってリソースの内容自体も変わってくる。**

  
## 次回は15.4~