Notion の Engineering Wiki テンプレートを使ってチームの情報共有を効率化する

Engineering Wiki のテンプレートが優秀

Notion が標準で提供しているテンプレートを物色したところ、Engineering Wiki がとても良かったので紹介します。

タグによるドキュメントの集約ができるので目的のドキュメントに到達しやすい

ドキュメントをタグごとに group by で集約でき、その結果をタブで切り替えられるので目的のドキュメントを簡単に見つけることができます。また、スペースの利用効率が向上するので、欲しい情報を探してスクロールする必要がなくなります。集約結果の表示方法(ビュー)はリストビューやギャラリビューにすることができるので、ビュー内のソート方法を更新日時にしておくと更新された記事を見分けやすくなります。

トップ画面(左ブロックがタグ一覧、右ブロックがドキュメント一覧)

ドキュメントの編集画面

ビュー画面のギャラリー表示

ビュー画面のソートオプション

ドキュメントの Verification プロパティで賞味期限切れを防ぐ

ドキュメントにはあらかじめ Verification プロパティが用意されているので、これを利用することでレビュープロセスのワークフローを構築するのがよさそうです。Verification の有効期限を 1 週間後、1 ヶ月後、3 ヶ月後と設定しておくことで定期的なアップデートを促す通知としても活用できます。

wiki 配下の範囲検索ボタンが組み込まれていて検索しやすい

API を使用する

API を使用するには Integration を作成した後、右上のハンバーガーメニューから Add Connections を選択して配下のページへのアクセスを許可する必要があります。

試しに Query a database を使ってみましたが、かなり詳細なオブジェクトが返ってきました。Engineering Wiki 自体がひとつのデータベースとなっており識別子として 8a2409b31ac94fcc8269b743e1fb681d が振られています。情報の抽出やバックアップ、自動更新などいろいろな用途がありそうです。

➜ curl -X POST 'https://api.notion.com/v1/databases/8a2409b31ac94fcc8269b743e1fb681d/query' -H 'Authorization: Bearer '"secret_<THIS_IS_SECRET>"'' -H 'Notion-Version: 2022-06-28' -H "Content-Type: application/json" --data '{
  "filter": {
    "or": [
      {
        "property": "Tags",
        "multi_select": {
          "contains": "Codebase"
        }
      }
   ]
  },
  "sorts": [
    {
      "property": "Page",
      "direction": "ascending"
    }
  ]
}' | jq -r '.results[]|select(.object == "page")|.properties.Page.title[].text.content, .url'

Backend
https://www.notion.so/Backend-98ec69babcf545179a8e1bc92bccbbf9
Code Reviews
https://www.notion.so/Code-Reviews-2dc09abb21974f4ba2616fc93517987c
How to QA
https://www.notion.so/How-to-QA-5dd1f96216c84a7cab53c1f50c037c6c
React
https://www.notion.so/React-f9b7185c06a245219768c317ebb804ea
Useful Commands
https://www.notion.so/Useful-Commands-371c609aea5440abb7456d9dfc6e0d8f

developers.notion.com