diff --git a/deno-kv/README.md b/deno-kv/README.md
index 3dfa66c9..243d9d6d 100644
--- a/deno-kv/README.md
+++ b/deno-kv/README.md
@@ -6,14 +6,14 @@
## 1. 目次
-1. [導入編 (15min)](./docs.md/#1-導入編)
- - 1-1. [データベースとは何か](./docs.md/#1-1-データベースとは何か)
- - 1-2. [Deno KVとは何か?](./docs.md/#1-2-deno-kvとは何か)
-2. [実践編 (45-60min)](./docs.md/#2-実践編)
- - 2-0. [Deno Deployで新規Playgroundを作成しよう](./docs.md/#2-0-deno-deployで新規playgroundを作成しよう)
- - 2-1. [set: Deno KVにデータを保存する](./docs.md/#2-1-set-deno-kvにデータを保存する)
- - 2-2. [get/getMany/list: Deno KVからデータを取得してみよう](./docs.md/#2-2-getgetmanylist-deno-kvからデータを取得してみよう)
- - 2-3. [delete: Deno KVからデータを削除してみよう](./docs.md/#2-3-delete-deno-kvからデータを削除してみよう)
+1. [導入編 (15min)](./docs.md#1-導入編)
+ - 1-1. [データベースとは何か](./docs.md#1-1-データベースとは何か)
+ - 1-2. [Deno KVとは何か?](./docs.md#1-2-deno-kvとは何か)
+2. [実践編 (45-60min)](./docs.md#2-実践編)
+ - 2-0. [実践の準備をしよう](./docs.md#2-0-実践の準備をしよう)
+ - 2-1. [set: Deno KVにデータを保存する](./docs.md#2-1-set-deno-kvにデータを保存する)
+ - 2-2. [get/getMany/list: Deno KVからデータを取得してみよう](./docs.md#2-2-getgetmanylist-deno-kvからデータを取得してみよう)
+ - 2-3. [delete: Deno KVからデータを削除してみよう](./docs.md#2-3-delete-deno-kvからデータを削除してみよう)
## 2. URL
diff --git a/deno-kv/docs.md b/deno-kv/docs.md
index 94d2a210..d7716f69 100644
--- a/deno-kv/docs.md
+++ b/deno-kv/docs.md
@@ -9,8 +9,8 @@
### 1-1. データベースとは何か?
-> データベースとは、構造化した情報またはデータの組織的な集合であり、通常はコンピューター・システムに電子的に格納されています。
-> 出典: https://www.oracle.com/jp/database/what-is-database/
+> データベースは、情報を保存、管理、取得するための構造化されたシステムです。
+> 出典: https://cloud.google.com/discover/databases?hl=ja
データベースは、データを構造化して保存するためのシステムです。
データの保存が必要となる多くのアプリケーションで使用されています。ファイル等に単純に保存する場合と比較してデータが扱いやすくなっています。
@@ -30,7 +30,7 @@ MongoDBやDynamoDB、Cloud Firestoreなどが代表的です。
### 1-2. Deno KVとは何か?
-Deno KVは、Deno Land Inc.から提供されているDeno用NoSQLデータベースです。key-valueデータベースに分類されます。Deno公式から提供されていることもあり、Denoから比較的容易に利用できます。β版なので機能は限定的ですが、個人開発程度であれば、十分な性能を発揮してくれるでしょう。
+Deno KVは、Deno Land Inc.から提供されているDeno用NoSQLデータベースです。key-valueデータベースに分類されます。Deno公式から提供されていることもあり、Denoから比較的容易に利用できます。開発途上の機能なので仕様が変わる可能性はありますが、個人開発程度であれば、十分な性能を発揮してくれるでしょう。
Deno KVでは、以下のような形式でデータを保存します。ここでは、学校の名簿を想定して例を記載しています。
keyに対してvalueが一意に紐づくため、keyとvalueのデータ構造は慎重に決定しましょう。
@@ -50,7 +50,7 @@ keyに対してvalueが一意に紐づくため、keyとvalueのデータ構造
*Deno KVを実際に使ってみよう!*
-### 2-0. Deno Deployで新規Playgroundを作成しよう
+### 2-0. 実践の準備をしよう
Deno Deployには、Denoのコードを簡単に記述・実行・デプロイできるPlaygroundという機能が搭載されています。ここでは、簡単のためPlaygroundを使用してみましょう。
@@ -63,15 +63,15 @@ Deno Deployには、Denoのコードを簡単に記述・実行・デプロイ
練習: DenoのPlaygroundを作ってみよう
-1. [Deno Deploy](https://deno.com/deploy)にログインします
+1. [Deno Deploy](https://console.deno.com)にログインします
-2. ページ右側の「New Playground」をクリックします
-
+2. 「Apps」ページの「New Playground」をクリックします
+
3. 以下のような画面が開けばOKです
-
+
-4. 画面左側のコードを以下のように書き換えて、「Media Type」をTSからJSに変更して、「Save & Deploy」をクリックします
+4. 画面中央のコードを以下のように書き換えて、「Deploy」をクリックします
```js
Deno.serve(async(req) => {
@@ -79,12 +79,27 @@ Deno.serve(async(req) => {
});
```
-5. 画面右側のブラウザが書き換わればOKです
+5. 画面右側の「PREVIEW」に「Hello Deno」と表示されればOKです
-6. [Deno Deployのホーム画面](https://dash.deno.com/account/overview)を開き、作成したアプリケーションを開きます
+
+
+
+練習: Deno KVのデータベースを用意しよう
+
+Deno KVを使うには、データベースを作成して、Playgroundに紐づけます。
+
+1. Playgroundの「Settings」から「Databases」を開き、「Deno KV」の「+ Attach」をクリックします
+
-7. 以下のような画面が開けばOKです。この画面を(ここでは便宜上)Project画面と呼びます
-
+2. 「Select a KV database」を開き、「+ Provision new Deno KV」を選びます
+
+3. 「Slug」に`deno-kv-tutorial`と入力します。「Write Region」はそのままで構いません
+
+
+4. 「Provision Deno KV」をクリックし、続けて「Attach database」をクリックします
+
+5. 「Instance」に作成したデータベースが表示されればOKです
+
@@ -119,7 +134,8 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックして、ログに「Kv {}」と表示されていることを確認します
+2. 「Deploy」をクリックして、画面下部の「LOGS」に「Kv {}」と表示されていることを確認します
+
@@ -144,13 +160,9 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックして、ログに保存ログが表示されていることを確認します
-
-3. Deno DeployのProject画面から、Deno KVに保存された値を確認します
+2. 「Deploy」をクリックして、ログに`{ ok: true, versionstamp: "..." }`と表示されていることを確認します
-4. 以下のようになっていたらOKです
-
-
+> Topic: `versionstamp`は、そのデータが何番目の更新で書き込まれたかを表す値です。同じkeyを更新すると変化します
@@ -176,9 +188,7 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックして、ログに保存ログが表示されていることを確認します
-
-3. Deno DeployのProject画面から、Deno KVの更新された値を確認します
+2. 「Deploy」をクリックして、ログの`versionstamp`が先程と変わっていることを確認します
@@ -209,9 +219,9 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックして、ログに保存ログが表示されていることを確認します
+2. 「Deploy」をクリックして、エラーが出ていないことを確認します
-3. Deno DeployのProject画面から、Deno KVの更新された値を確認します
+> Topic: ここで追加したデータは、次の2-2で取得して確認します
@@ -268,7 +278,7 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックして、ログに取得された値が出力されるのを確認します
+2. 「Deploy」をクリックして、ログに取得された値が出力されるのを確認します
@@ -297,7 +307,7 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックして、ログに取得された値が出力されるのを確認します
+2. 「Deploy」をクリックして、ログに取得された値が出力されるのを確認します
@@ -327,7 +337,7 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックして、ログに取得された値が出力されるのを確認します
+2. 「Deploy」をクリックして、ログに取得された値が出力されるのを確認します
3. `list`では、範囲指定のデータを取得することもできます。`key: ["student", 1]~["student", 2]`のデータを取得してみましょう
@@ -354,7 +364,7 @@ Deno.serve(async(req) => {
});
```
-4. 「Save & Deploy」をクリックして、ログに取得された値が出力されるのを確認します
+4. 「Deploy」をクリックして、ログに取得された値が出力されるのを確認します
@@ -367,10 +377,8 @@ Deno KVに保存したデータを削除してみましょう。データの削
const kv = await Deno.openKv();
// データを削除
-const result = await kv.delete(["hoge"]);
-
-// レスポンスを表示
-console.log(result);
+// setと異なり、戻り値はありません
+await kv.delete(["hoge"]);
```
@@ -394,9 +402,17 @@ Deno.serve(async(req) => {
});
```
-2. 「Save & Deploy」をクリックします
+2. 削除されたことを確認するために、`get`で読み出すコードを書き加えます
+
+```diff
+ // データを削除
+ await kv.delete(["student", 1]);
++
++ const deletedResult = await kv.get(["student", 1]);
++ console.log("deleted_result: ", deletedResult);
+```
-3. Deno DeployのProject画面から、Deno KVの値が削除されていることを確認します
+3. 「Deploy」をクリックして、ログの`value`が`null`になっていることを確認します
diff --git a/deno-kv/imgs/201_create_play_ground.png b/deno-kv/imgs/201_create_play_ground.png
deleted file mode 100644
index 12597e56..00000000
Binary files a/deno-kv/imgs/201_create_play_ground.png and /dev/null differ
diff --git a/deno-kv/imgs/201_create_playground.png b/deno-kv/imgs/201_create_playground.png
new file mode 100644
index 00000000..4ce03f4e
Binary files /dev/null and b/deno-kv/imgs/201_create_playground.png differ
diff --git a/deno-kv/imgs/202_empty_play_ground.png b/deno-kv/imgs/202_empty_play_ground.png
deleted file mode 100644
index 050c2102..00000000
Binary files a/deno-kv/imgs/202_empty_play_ground.png and /dev/null differ
diff --git a/deno-kv/imgs/202_empty_playground.png b/deno-kv/imgs/202_empty_playground.png
new file mode 100644
index 00000000..7d019165
Binary files /dev/null and b/deno-kv/imgs/202_empty_playground.png differ
diff --git a/deno-kv/imgs/203_attach_kv.png b/deno-kv/imgs/203_attach_kv.png
new file mode 100644
index 00000000..a0bd6d07
Binary files /dev/null and b/deno-kv/imgs/203_attach_kv.png differ
diff --git a/deno-kv/imgs/203_play_ground_dashboard.png b/deno-kv/imgs/203_play_ground_dashboard.png
deleted file mode 100644
index 36f24d88..00000000
Binary files a/deno-kv/imgs/203_play_ground_dashboard.png and /dev/null differ
diff --git a/deno-kv/imgs/204_init_kv_log.png b/deno-kv/imgs/204_init_kv_log.png
deleted file mode 100644
index ec2bab06..00000000
Binary files a/deno-kv/imgs/204_init_kv_log.png and /dev/null differ
diff --git a/deno-kv/imgs/204_provision_kv.png b/deno-kv/imgs/204_provision_kv.png
new file mode 100644
index 00000000..2ef2ecf9
Binary files /dev/null and b/deno-kv/imgs/204_provision_kv.png differ
diff --git a/deno-kv/imgs/205_attached_kv.png b/deno-kv/imgs/205_attached_kv.png
new file mode 100644
index 00000000..01cc52bd
Binary files /dev/null and b/deno-kv/imgs/205_attached_kv.png differ
diff --git a/deno-kv/imgs/205_kv_tab.png b/deno-kv/imgs/205_kv_tab.png
deleted file mode 100644
index a5582254..00000000
Binary files a/deno-kv/imgs/205_kv_tab.png and /dev/null differ
diff --git a/deno-kv/imgs/206_init_kv_log.png b/deno-kv/imgs/206_init_kv_log.png
new file mode 100644
index 00000000..741f2fc8
Binary files /dev/null and b/deno-kv/imgs/206_init_kv_log.png differ
diff --git a/deno-kv/imgs/206_kv_data_viewer.png b/deno-kv/imgs/206_kv_data_viewer.png
deleted file mode 100644
index 8623832c..00000000
Binary files a/deno-kv/imgs/206_kv_data_viewer.png and /dev/null differ