読書「楽々ERDレッスン」
読んだ本
読むに至った経緯
今までRDBMSやDBテーブル設計に関わる機会がなかったため、基礎的な部分から実践的な勘所まで把握したいと思い、評判の良さそうな本書を読んでみました。
感想
- 数年前にドメイン駆動設計やドメインモデリングにのめり込んだことがあるが、DBテーブル設計で考える事も基本的には同じことだと思った
- 第1部 DB設計総論、第2部 RDBMS総論の内容は、基礎的なことから実践的な考え方まで参考になることばかりで大変良かった
- その技術が登場した背景と歴史を理解するのは大事なことだと思ってるので、Codd氏がリレーショナルモデルを発表した時代以降の歴史が知れて良かった
- 集合論など数学的な部分も興味が持てたので、時間があれば調べたい
- 1つ目のレッスンのまとめに「この題材であれば、容姿を見てから設計完了まで1分が目安です」と書いてあって、全然そのレベルではなかった
- 2006年初版発行なのだが内容に全く問題はなく、自分が知りたいことが書いてあったしレベルもちょうど良かった
- 現代のWebアプリケーション開発ではどのようにシステム構築するのか考えたい
- ストアドプロシージャは今でも使われる手法なのか?→ケースバイケースだし用法容量を守って使いましょうという結論な気がする
- クラウド前提でシステム構築する時の基本的なアプローチの仕方を知りたい。
- リンクは、こういう知識が足りないなと思ったものを適当に選んだだけ
- RDSとAuroraの違いって?どちらを使う?②
- DynamoDBとAuroraで作るミニマムなデータ基盤の事例紹介
- リレーショナルデータベースから DynamoDB への移行
- P.80 「経営資産としてのRDBMS」という考え方は今はさらに重要になっていて1つの会社にとどまらない資産になりつつあるようだ
読書「継続的デリバリーのソフトウェア工学」
読んだ本
継続的デリバリーのソフトウェア工学 もっと早く、もっと良いソフトウェアを作るための秘訣
読むに至った経緯
- 「LeanとDevOpsの科学(Accelerate)」を読もうと思ったときにCI/CDの知識がなかったので読みたかった
- 工学というタイトルがついてるので実践的で再現可能なプラクティスが得られるのではという期待
- 過去に品質工学というジャンルに興味を持って面白かったので、ソフトウェア工学という切り口も良さそうな気がした
- 継続的デリバリーは未読
気になった部分のメモ
第14章が特に面白くて、それまでの章で説明してきたことを統合して語っているので、各章のトピックがどのようにソフトウエア開発で適用されるのかイメージしやすくなった
Martin Fowlerが「本書に寄せて」という文章を書いており、どのように本書を読めば良いかガイドになった
- "本書の焦点の当て所がIT分野におけるデリバリに限られる、ということ...つまり、ソフトウェア開発の全工程ではなく、コミットから本番稼働の段階までにしか目を向けていないという点...にも注意が必要である"
- それでも十分な説得力があり信頼できるレポート、という文脈で語られていると理解した
- 個人的にデリバリ領域のプラクティスに疎かったので、むしろ良かった
- "本書の焦点の当て所がIT分野におけるデリバリに限られる、ということ...つまり、ソフトウェア開発の全工程ではなく、コミットから本番稼働の段階までにしか目を向けていないという点...にも注意が必要である"
- P.xxvii 「はじめに」
- P.31
- "「組織のソフトウェアデリバリのケイパビリティ(能力、機能)は、組織に競争上の優位性をもたらす」"
- P.32
- "「製品開発に実験的な姿勢で臨める能力が、継続的デリバリに寄与する技術的プラクティスと高い相関をもつ」"
- P.74
- "自社の事業に必須の差別化要因をもたらす中核的・戦略的なソフトウェア製品やサービスを創出・発展させうるケイパビリティ(機能、能力)への投資が重要となる"
- P.75
- "5.2 注力すべきはデプロイとテストの容易性"
- P.93
- "7.1 リーンマネジメントのプラクティス"
- P.108
- "9.1 デプロイ関連の負荷"
- P.124
- "製品や機能の開発から顧客対応に至るまでの全工程の業務フローを可視化して把握するチームの能力"
感想と関連情報
- デリバリ領域に継続的に投資したい
- 投資の有効性の根拠として当該書籍を利用したい
- どういう順番でケイパビリティ改善と測定をすべきか検討してみないとわからない
- 以下の資料が参考になりそう
- CTOとして招聘されて1年でDX Criteriaを大幅改善するために追求した唯一の成果指標
- DX Criteriaという用語は知らなかった
- DX Criteria (v202104)/企業のデジタル化とソフトウェア活用のためのガイドライン
- 「DX Criteria( DX基準 )は、日本CTO協会が監修・編纂している企業のデジタル化とソフトウェア活用のためのガイドラインです。」とWebページに書いてある
- 投資判断はCTOレベルが妥当なのだろうか?
- 例えばプロジェクトマネージャーレベルだと、どのように推進すれば良いのだろう?
- 投資という観点だと以下のページに詳しく書いてあるので参考になりそう
- DX Criteriaという用語は知らなかった
- 「LeanとDevOpsの科学」を実際にチームに適用した際の工夫
- このかたはスクラムマスターチームの方のようなので、CTO権限がなくてもできる参考になりそう
- ただ、プロジェクトマネージャーとして担当プロジェクトに適用しているわけではない
- やはり組織的な投資・運用が必要なのかもしれない
- バリューストリームマップを作成して、組織の関係者全員を巻き込むというアプローチで権限者の理解を得ると良いかも知れない
- 日本のDevOps変革を促進するバリューストリームマッピング
- まさにバリューストリームマップの作成から巻き込んでいく作戦の詳細が書かれており参考になりそう
- 『LeanとDevOpsの科学』をきちんと解く 〜Four Keysだけじゃ絶対もったいなくなる話〜
- 測定と改善の運用について詳しくフォローしている
今後
- 将来に備えて、知識が不足している部分の理解を深める
- DevOps
- 継続的デリバリ
- リーンマネジメント
- バリューストリームマップ
- DX Criteria
参考
読書「漢字 生い立ちとその背景」「白川静 漢字の世界観」
ソフトウェア開発の仕事を始めて経験が浅かった頃に、上司が「かしたんぽ」という聞きなれない単語を使いました。ソフトウェアに不具合があった場合は、タダで不具合修正しないといけない契約になっているようだと理解しましたが、「かしたんぽ」という言葉がわからなかったため、自分で調べました。
「瑕疵担保責任」という言葉があることが調べてわかって、受託開発する上で重要な概念であると理解しました。さらに「瑕疵」の漢字の意味については、以下のやねうらお氏のブログ記事のコメント欄でようやく理解することができました。 - https://yaneurao.hatenadiary.com/entry/20041204/p1
そのコメント欄の中で白川静氏の名前を初めて知り、いつかは自分も漢字について学びたいなと思いました。その後、内田樹氏のブログでも白川静氏の名前が出てきて、ますます白川静氏への興味が湧きました。 - http://blog.tatsuru.com/2006/11/06_1234.html
今年に入ってたまたま白川静氏の特設サイトを見つけました。 - https://www.ritsumei.ac.jp/features/shirakawashizuka10/
サイトを読み込むうちに面白くなったので、書籍を読むことにしました。 - 漢字 生い立ちとその背景 - 白川静 漢字の世界観
いきなり岩波書店の「漢字」を読んでも理解が追いつかないだろうと思い、松岡正剛氏の「白川静 漢字の世界観」を入門書として読みましたが、それが正解でした。
本の感想は割愛して、瑕疵担保責任について補足します。「2020年4月1日より改正民法が施行され、受託開発(請負契約)における受託者の瑕疵担保責任の法概念は廃止され、契約不適合責任と名称を変えています。」とのことです。次のサイトがシステム開発の具体的説明となっていて参考になりました。 - https://jitera.com/ja/insights/464 - https://hnavi.co.jp/knowledge/blog/system-development-defect-warranty-liability_sales/
また、IPA資料も参考になりそうです。 - https://www.ipa.go.jp/digital/model/model20191224.html
仕様を最初に確定しないアジャイル開発はどうするのが良いか気になりましたが、PDFには以下のように記載されています。 - 第一版及び追補版 DX推進のための見直しにおける民法改正を踏まえた整理にあたって 「アジャイル開発など DX 時代に有効とされる開発スタイルに対応したモデル 契約の作成については、部会下に設置された「DX 対応モデル契約見直し検討 WG」にお いて検討が進んでいる。」
その検討結果が以下のサイトに記載されています。 情報システム・モデル取引・契約書(アジャイル開発版) - https://www.ipa.go.jp/digital/model/agile20200331.html
これから内容を確認して知識のアップデートをしたいと思います。
読書「LeanとDevOpsの科学(Accelerate)」
背景
- 和田卓人氏の「質とスピード」という講演資料で当該書籍から引用していて読まねばと思っていた
- ソフトウェアの保守性を向上させる取り組みを主導していたので、質の向上により開発速度が増すという実感はあった
- しかし、継続的デリバリやDevOpsという観点について全然知らなかったので、書籍を読んで理解する事にした
気になった部分の抜粋とメモ
- Martin Fowlerが「本書に寄せて」という文章を書いており、どのように本書を読めば良いかガイドになった
- "本書の焦点の当て所がIT分野におけるデリバリに限られる、ということ 〜つまり、ソフトウェア開発の全工程ではなく、コミットから本番稼働の段階までにしか目を向けていないという点〜にも注意が必要である"
- それでも十分な説得力があり信頼できるレポート、という文脈で語られていると理解した
- 個人的にデリバリ領域のプラクティスに疎かったので、むしろ良かった
- "本書の焦点の当て所がIT分野におけるデリバリに限られる、ということ 〜つまり、ソフトウェア開発の全工程ではなく、コミットから本番稼働の段階までにしか目を向けていないという点〜にも注意が必要である"
- P.xxvii 「はじめに」
- P.31
- "「組織のソフトウェアデリバリのケイパビリティ(能力、機能)は、組織に競争上の優位性をもたらす」"
- P.32
- "「製品開発に実験的な姿勢で臨める能力が、継続的デリバリに寄与する技術的プラクティスと高い相関をもつ」"
- P.74
- "自社の事業に必須の差別化要因をもたらす中核的・戦略的なソフトウェア製品やサービスを創出・発展させうるケイパビリティ(機能、能力)への投資が重要となる"
- P.75
- "5.2 注力すべきはデプロイとテストの容易性"
- P.93
- "7.1 リーンマネジメントのプラクティス"
- P.108
- "9.1 デプロイ関連の負荷"
- P.124
- "製品や機能の開発から顧客対応に至るまでの全工程の業務フローを可視化して把握するチームの能力"
感想
- デリバリ領域に継続的に投資したい
- 投資の有効性の根拠として当該書籍を利用したい
- どういう順番でケイパビリティ改善と測定をすべきか検討してみないとわからない
- 以下の資料が参考になりそう
- CTOとして招聘されて1年でDX Criteriaを大幅改善するために追求した唯一の成果指標
- DX Criteriaという用語は知らなかった
- DX Criteria (v202104)/企業のデジタル化とソフトウェア活用のためのガイドライン
- 「DX Criteria( DX基準 )は、日本CTO協会が監修・編纂している企業のデジタル化とソフトウェア活用のためのガイドラインです。」とWebページに書いてある
- 投資判断はCTOレベルが妥当なのだろうか?
- 例えばプロジェクトマネージャーレベルだと、どのように推進すれば良いのだろう?
- 投資という観点だと以下のページに詳しく書いてあるので参考になりそう
- DX Criteriaという用語は知らなかった
- 「LeanとDevOpsの科学」を実際にチームに適用した際の工夫
- このかたはスクラムマスターチームの方のようなので、CTO権限がなくてもできる参考になりそう
- ただ、プロジェクトマネージャーとして担当プロジェクトに適用しているわけではない
- やはり組織的な投資・運用が必要なのかもしれない
- バリューストリームマップを作成して、組織の関係者全員を巻き込むというアプローチで権限者の理解を得ると良いかも知れない
- 日本のDevOps変革を促進するバリューストリームマッピング
- まさにバリューストリームマップの作成から巻き込んでいく作戦の詳細が書かれており参考になりそう
- 『LeanとDevOpsの科学』をきちんと解く 〜Four Keysだけじゃ絶対もったいなくなる話〜
- 測定と改善の運用について詳しくフォローしている
今後
- 将来に備えて、知識が不足している部分の理解を深める
- DevOps
- 継続的デリバリ
- リーンマネジメント
- バリューストリームマップ
- DX Criteria
参考
アジャイル開発への道
目的
背景
- 2020年にスクラム開発にチャレンジ中のプロジェクトにPMとして合流した
- その時はプロジェクトがうまく進んでなかった、具体的には...
- 2weekのスプリント期間にタスクが終わらない
- 終わらなかった作業を別タスクとしてチケット化して継続開発してた
- スプリントが終わった時点で動作するソフトウェアがない
- PBI(Product Backlog Items)が100個くらいあった
- 作りたい機能の数が多そうに思うが普通なのだろうか?
- 受託開発の見積もり規模算出のために必要だった
- PBI全部にストーリーポイントを振ってた
- 作りたい機能の数が多そうに思うが普通なのだろうか?
- ストーリーポイントの見積もりが妥当かどうか判断つかなかった
- 経験を積んで見積もり精度が上がれば良い?
- スプリント期間に対応中のタスクの半分は課題があって進みが悪かった
- タスクに着手してから新しい事実がわかってストーリーポイント通りに開発できない事が頻発してた
- スプリント振り返りを途中からやめた
- KPT法で振り返りを実施していた
- 議事録から推測するに、学びはあるが改善につながる分析・行動への落とし込みまでできてなかった状況
- 開発が遅れてたため、振り返りの時間を開発に充てる方針となった
- リリースマイルストーンに対して開発が順調でなかった
- ベロシティが改善すれば間に合うという説明をしていたが、改善の見通しが立ってなかった
- 2weekのスプリント期間にタスクが終わらない
- 3ヶ月ほど様子見したが最終的にスクラムやめてウォーターフォール開発に変更した
- 開発計画を立て直した結果、顧客の要望に沿ったリリースができた
- その時はプロジェクトがうまく進んでなかった、具体的には...
- その後3年くらいクリーンアーキテクチャ・ドメイン駆動設計・テスト駆動開発などに取り組んだ結果アジャイルっぽくなった
- チームの熟練度があがりドメインの知識も獲得したので、アジャイル開発に再チャレンジしようという意見が出てきた
問題事象の分析
- スクラムをやめたあと、なぜ上手くいってないのか色々と分析した
- そもそも難しいプロジェクトだった
- 良い設計について語れる人がベテラン1名しかいなかった
- ベテランについていけるほど設計スキル・経験がある人は自分も含めていなかった
- PLはプロジェクト運営経験が少なかった
- スクラムガイド通りに運営することを目的化している雰囲気がうかがえた
- チームが混乱していた時に立て直すための仕切りができていなかった
- プロジェクトにどんな課題があるか整理されておらず、またチームに共有されてなかった
- プロジェクト課題の分析・対策が着手できてなかった
- プロジェクト課題の優先順位づけがされてなかった
- 良かった点
課題設定
- ウォータフォールでの計画作成やプロジェクト課題解決は得意だったので、プロジェクトの混乱は解決した
- 仕様追加に時間がかかる、バグが多い、機能追加の影響でバグが出る、開発期間が長いなどの課題が残った
- ソフトウェアの設計改善により課題を解決する方針とした
結果
- 設計改善により、ソフトウェアの理解容易性・修正容易性・テスト容易性が改善された
- 開発期間が短縮された
- バグも減った
- 仕様変更も容易になった
- 自身の設計スキルはとても向上した
- チームメンバーも設計を理解して開発できるようになった
- 設計スキル向上や開発体験向上によりチームメンバーが喜んでくれた
参考
- アジャイル開発に習熟するために知っておきたい情報
- アジャイルソフトウェア開発宣言
- この宣言を道のりの起点にすると、アジャイル開発理解の見通しが良い
- 2002年頃に宣言の文章を読んだ時は「理想はわかるが実際どうやるのだろう」と思った
- エクストリームプログラミングという開発手法があるらしいという情報には触れたし、社内で少し話題になった
- そのころに当時の先輩と2-3回ペアプロをしたが、それっきりやめてしまった
- ソフトウェア設計の技術書を読みまくった時期(2021年-2022年)に、宣言した人の顔ぶれが読んだ技術書の著者だと気づいた
- 以下の本を読んでた
- Kent Beck
- James Grenning
- Robert C. Martin
- Martin Fowler
- 気づいたきっかけは書籍「.NETのエンタープライズアプリケーションアーキテクチャ 第2版」
- アジャイルソフトウェア開発宣言の読みとき方
- "アジャイル宣言の背後にある原則"について丁寧な解説が書いてある
- IPAがまとめた資料なので信頼できそう
- アジャイルに取り組む前に読むべき資料
- アジャイルマニフェストはいまだに重要性を持つか
- アジャイルプロジェクト実践ガイドブック
- アジャイル開発の進め方
- スクラムとエクストリームプログラミングについて
- ちょっと前まではどちらの手法でも好きに選べば良いと思っていたし、スクラムが一般的だと思ってた
- 以下の違いがあるらしい事を最近知った
- スクラムはプロジェクトマネジメント・ビジネス寄りの手法
- エクストリームプログラミングはプログラミング・技術寄りの手法
- 参考情報)
- ポッドキャスト texta.fm 「5.Accelerate」の冒頭5分くらい聞くと、和田卓人氏が「ビジネス側のプラクティスと技術プラクティス」という言い方でスクラムとエクストリームプログラミングを説明している
- ヘロヘロScrumというMartin Fowlerのブログ記事でも同様の言及がある。
まとめ
- 情報の整理ができた
- 次にアジャイル開発する時のために何に取り組むか決まった
- 次の取り組み
- LeanとDevOpsの科学を読んでアジャイル開発の視野を広げる
- エクストリームプログラミングの技術的プラクティスの全体像を把握する
JavaScriptを学ぶ
目的
- JavaScriptを手に馴染ませたい
- 基本的な文法や作法についても理解したい
取り組んだこと
- ドットインストール
- 知ってることも含まれてそうでしたが、一通りやってみた
感想
- 一通り文法や作法を理解しつつ手を動かせたので抵抗感は少なくなった
- スラスラとJavaScriptを書くためにはひたすら手を動かすのが良さそう
追加の取り組み
- JavaScriptベースのWebアプリ開発技術として、次はReact/Next.js/Node.jsに進みたい
- その前にJavaScript関連技術の背景や技術変遷の経緯など周辺知識を理解したい
- それらの知識に手軽に取り組めるポッドキャストで概要把握することにした
- ポッドキャストは前に聞いたことがあったが、あらためて聞き直した
- 追加でYouTubeも参考にしましたが、よくまとまっていて参考になりました
結果
- JavaScriptについて背景や経緯の把握ができた
参考
AWS BUILDERS ONLINE SERIESセッションを視聴した感想
概要
AWS BUILDERS ONLINE SERIESのアジェンダ
ちょうどAWSを使ったモダンなアプリケーション開発をAmplifyを通じて学習中だったので、参加を申し込みました。以下のセッションをリアルタイムで視聴しました。自分のレベルにちょうど合っていて大変ためになりました。
- BOS-08: はじめてのコンテナワークロード - AWS でのコンテナ活⽤の第⼀歩
- BOS-09: はじめてのサーバーレス - AWS Lambda でサーバーレスアプリケーション開発
- BOS-10: AWS ではじめるオブザーバビリティ - システムのどこで・何が・なぜ起こってるのかを理解する
- BOS-11: AWS Amplify ではじめる Webアプリケーション開発
感想
BOS-08: はじめてのコンテナワークロード
- 業務でコンテナ使ったことなかったので、概要が掴みやすい内容で良かった
- コンテナ利用の目的や背景の説明が丁寧だった点が良かった
- コンテナサービスを個別に取り上げて説明してくれて良かった
- コンテナ実行の基本的なフローの説明によりサービス構成がイメージしやすくて良かった
- AWS App Runnerはちょっと難しかった
- 「構築済みのインフラにすぐにデプロイ」するのがApp Runnerの役割と理解した
- AWS Amplifyもすぐにデプロイできるが、Amplifyの場合はコンテナを使ってない(バックエンドサービスにコンテナサービスは見当たらないので)
- AppRnnerの開発者ガイドを見ると「AWS App Runner は、ソースコードまたはコンテナイメージから AWS クラウド内のスケーラブルで安全な Web アプリケーションに直接デプロイする」と書いてある。
- ソースコードからデプロイするならAmplifyと同じだろうか?
BOS-09: はじめてのサーバーレス
- サーバレスとは?から説明してくれて良かった
- 従来のWeb3層アーキテクチャとの対比の説明があって良かった
- Amazon API Gateway/DynamoDB/S3は使ったことがなかったので説明があって良かった
- AWS Lambda/DynamoDBの実装デモで具体的なイメージが理解できた
- Lambda関数にDynamoDBへのアクセス権限を付与する操作が見れて良かった
- Lambda関数がHttpリクエストを受け付けるための実装が見れて良かった
- POST/GETコマンドに対する処理をLambda関数内部に実装していた
- Lambda Function URLsの設定操作を見れて良かった
- S3コンソール画面で設定の一例として紹介があったのも良かった
- ハンズオンが色々あるようなので、そこから始めたい
BOS-10: AWS ではじめるオブザーバビリティ
- 基本的なところからオブザーバビリティについて説明してくれて良かった
- 従来の監視と現代の監視の違いがイメージできた
- メトリクス・ログ・トレースという考え方はなかったので知れて良かった
- Amazon CloudWatch / AWS X-Rayの役割がイメージができた
- デモがあることで具体的な使い方がイメージできた
BOS-11: AWS Amplify ではじめる Webアプリケーション開発
- Webアプリケーションとその開発方法から説明してくれてありがたい
- 「制限のない拡張性 - CDKで任意のAWSサービスを追加」という部分について自分で試せるようになりたい
- Amplifyプロジェクトのディレクトリ構成規約があるの気づいてなかったので知れて良かった
- 公式DocにProject Structureの説明があったの気づいてなかった
- testブランチで開発してmainブランチにプルリクしてマージする時のAmlifyの挙動をデモで見れたのが良かった
- Amplify Gen 2 Workshopというのがあるので、試すと良さそう
まとめ
- 参加して良かった
- アンケートに回答してセッション資料をもらえた
- 資料を見返してブログ記事を書くのにとても役に立った
- 各セッションのアーカイブ動画も公開中なのでデモでの操作画面とか見返せて良い
- チュートリアルやハンズオンがたくさんあることがわかったので試したい
参考
AWS-Amplifyのクイックスタートアプリの詳細調査(AppSync,CDK)
AWS-Amplifyのクイックスタートで開発したアプリのシステム構成
バックエンドリソース一覧
AWS::AppSync
概要
公式ページの説明は次のとおり。
ウェブとモバイルのフロントエンド
安全でサーバーレスで高性能な GraphQL と Pub/Sub API を使用して、アプリをデータやイベントに接続
1 つのネットワークリクエストで、1 つまたは複数のソースやマイクロサービスからデータにアクセスできますAPI を 1 つのマージ済み API に結合します。
サーバーレスの WebSocket を通じて、任意のイベントソースからサブスクライブしたクライアントにデータを公開することで、魅力的なリアルタイムエクスペリエンスを実現します。
セキュリティ、監視、ロギング、トレースが組み込まれています。低レイテンシーを実現するオプションのキャッシュ。
API へのリクエストと、接続されたクライアントに配信されたリアルタイムのメッセージに対してのみお支払いいただけます。
仕組み
AWS AppSync は、サーバーレスの GraphQL および Pub/Sub API を作成し、単一のエンドポイントを通じて安全にデータの照会、更新、公開を行うことで、アプリケーションの開発を簡素化します。
AppSync - GraphQLシステム構成図
AppSync - Pub/Sub APIシステム構成図
クイックスタートアプリの実装(AppSync GraphQL API)
コンセプト説明ページのDataセクションに次の説明がある。
「The @aws-amplify/backend library offers a TypeScript-first Data library for setting up fully typed real-time APIs (powered by AWS AppSync GraphQL APIs) and NoSQL databases (powered by Amazon DynamoDB tables). After you generate an Amplify backend, you will have an amplify/data/resource.ts file, which will contain your app's data schema. The defineData function turns the schema into a fully functioning data backend with all the boilerplate handled automatically.」
つまり、@aws-amplify/backendを使うことで、resource.tsのスキーマ定義に応じたGraphQL APIが自動的に用意される。
resource.tsでTodoというスキーマを定義している。
const schema = a.schema({ Todo: a .model({ content: a.string(), }) .authorization((allow) => [allow.owner()]), });
App.tsxでcreateTodo/deleteTodo/fetchTodoなどTODOタスク操作を実現している。
function deleteTodo(id: string) { client.models.Todo.delete({id}); }
clientはApp.tsxで以下のように実装している。
const client = generateClient<Schema>();
generateClientはAmplifyライブラリ側の実装となるが、ソースコードを見ると次のようになっている。 node_modules/@aws-amplify/api/dist/esm/API.d.ts
import { CommonPublicClientOptions, V6Client } from '@aws-amplify/api-graphql'; /** * Generates an API client that can work with models or raw GraphQL */ export declare function generateClient<T extends Record<any, any> = never>(options?: CommonPublicClientOptions): V6Client<T>;
コメントに書いてあるとおりclientを使うことで、GraphQLのAPIを隠蔽してモデルを操作できるという事。
前掲のConceptページには以下の記載がある。 「On your app's frontend, you can use the generateClient function, which provides a typed client instance, making it easy to integrate CRUD (create, read, update, delete) operations for your models in your application code.」 つまりCRUD操作ができる。それ以上に複雑なことを実現する場合は、何らかの機能拡張が必要となる。おそらくAWS::CDKを使ってAWS::Lambdaで個別に機能実現していくのではないだろうか。
クイックスタートアプリの実装(AppSync Pub/Sub API)
以下ソースコードのsubscribe/unsubscribeがPub/Sub API呼び出しに該当する。 subscribeしておくと、1つ目のWebページでTodoタスクを追加すると、 2つ目のWebページにもリアルタイムでTodoタスクが追加される挙動にできる。
useEffect(() => { console.log("useEffect::user=" + user); if (user) { fetchTodos(); } const subscribe = client.models.Todo.observeQuery().subscribe({ next: (data) => { console.log("useEffect::Todo.observeQuery()>>>setTodos"); setTodos([...data.items]); }, }); return () => { console.log("useEffect::unsubscribe()"); subscribe.unsubscribe(); setTodos([]); } }, [user]);
Build & connect backend > Data > Subscribe to real-time eventsページに詳しい説明が載っている。
AWS::CDK
概要
デベロッパーツール
使い慣れたプログラミング言語を使用したクラウドアプリケーションリソースの定義
仕組み AWS Cloud Development Kit (CDK) は、一般的なプログラミング言語を使用してアプリケーションをモデル化し、クラウド開発を加速します。
上記の文章だけだとイメージがつかめませんでした。
開発者ガイドページ - AWS CDK とは何ですか?によると、「AWS Cloud Development Kit (AWS CDK) は、 AWS CloudFormationクラウドインフラストラクチャをコードで定義し、それをプロビジョニングするためのオープンソースのソフトウェア開発フレームワークです。」とのこと。
AWS CloudFormationはリンク先に以下の説明がありました。
管理ツール AWS CloudFormation Infrastructure as Code でクラウドプロビジョニングを高速化する 仕組み AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、AWS およびサードパーティーのリソースをモデル化、プロビジョニング、管理することができます。
管理ツールとしてのAWS CloudFormationをAWS CDKでラッパーして開発者でも使いやすくしたのだと理解しました。
AWS CDKの開発者ガイドページに以下の文章と図があったので、引用します。 「AWS CDK は、TypeScript、JavaScript、Python、Java、C#/.Net、Go をサポートしています。これらのサポートされているプログラミング言語のいずれかを使用して、コンストラクトと呼ばれる再利用可能なクラウドコンポーネントを定義できます。これらを組み合わせてスタックとアプリを作成します。次に、CDK アプリケーションを AWS CloudFormation にデプロイして、リソースをプロビジョニングまたは更新します。」
CDKアプリケーションの説明ページに以下の文章と図がありました。 「CDK アプリをデプロイすると、次のフェーズが実行されます。これはアプリライフサイクルと呼ばれます。」
以上の内容から、おおまかなイメージは理解しました。
AWS AmplifyでのCDKの使い方コンセプト
Connecting to AWS beyond Amplifyにコンセプトが書いてあります。
「Gen 2 is layered on top of AWS Cloud Development Kit (CDK)—the Data and Auth capabilities in @aws-amplify/backend wrap L3 AWS CDK constructs. As a result, extending the resources generated by Amplify does not require any special configuration. The following example adds Amazon Location Services by adding a file: amplify/custom/maps/resource.ts.」とのことで、resource.tsを追加して記述するとAmazon Location Servicesがアプリに追加できるようです。 つまり、CDKを意識せずにアプリにサービス機能を拡張できるようです。
感想
AppSyncとCDKはイメージつかめました。 他のサービスも調査することでシステム全体構成を描けそうです。
参考
特になし
AWS-Amplifyのクイックスタート続き(認証周り実装見直し)
AWS-Amplifyのクイックスタートで残った課題
問題の事象
- Sign in した直後に表示されるTODOタスクが、前回ログインしていたユーザのものになる
- 再現率100%
問題の回避策
- Webページをリロードすると当該ユーザのTODOタスクが表示される
課題
- クイックスタートのソースコードが正しくて、自身の実装がクイックスタート通りに実装できてないのか確認する
- 確認した結果クイックスタート通りに実装できていた
- つまりクイックスタートのソースコードはユーザごとにデータを保持する機能仕様に対応できてない模様
- クイックスタートの実装内容を見直して修正する
- アプリが利用しているライブラリやフレームワークの機能仕様・機能設計の理解があいまいで何が問題なのか特定できてないのが課題
- useEffect処理(subscribeとsetTodos)について内容を理解する
- Authenticator処理について内容を理解する
ライブラリ・フレームワークの調査
- React
- userEffect
- useEffectのAPIリファレンス
- 「コンポーネントが DOM に追加されると、React はセットアップ関数を実行します。」とのこと
- クリーンアップ関数が未実装だったので、unsubscribeする関数を返すようにする
- console.log()を仕込んで実際の挙動を確認したところ、1度Webページを更新するとセットアップ→クリーンアップ→セットアップと呼び出されていることがわかった
- React18でStrictModeの場合は意図的に二重にコンポーネントをレンダリングしているからセットアップが2回呼ばれるらしい
- useState
- todoデータを状態として保持する役割
- 初期値は空っぽの配列
- setTodos関数でデータを更新する
- データを更新すると再レンダリングする
- subscribeでTodoデータの更新を検知するとsetTodos関数を実行する設計
- userEffect
- Amplify
- Amplify Data
- 「TypeScript を使用してデータモデルを定義すると、Amplify がリアルタイム API をデプロイします。この API は AWS AppSync によって実行され、Amazon DynamoDB データベースに接続されます。」とのこと。
- AWS AppSyncページを見ると、「GraphQL と Pub/Sub API を使用して、アプリをデータやイベントに接続」とのこと
- Amazon DynamoDBは「サーバーレス NoSQL フルマネージドデータベース」とのこと
- Amplify Data 公式DocのSubscribe to real-time updates ではuseEffectでsubscribe/unsubscribeするソースコード例が載っていた
- バックエンドからTodoタスクを読み出すソースコード例も公式Docにあった -> Read data from your backend
- ユーザごとにTodoタスクを保持するデータ設計なので、ユーザがサインインに成功したら該当ユーザのTodoタスクを表示する機能仕様になるはず
- Todoタスクを読み出す実装を追加する必要がありそう
- Authentication
- Amplify Auth 公式Doc
- 「Amplify Auth はAmazon Cognitoを利用しています。」とのことなので認証機能の詳細はCognitoを理解するのが良さそう
- Amplify Dev Center > UILibrary > Authenticator > Advanced Usega にuseAuthenticator Hookというのがある
- 今回の課題は認証時の実装作法についてなのでuseAuthenticatorを理解すれば良さそう
- Amplify Data
クイックスタートの実装内容の調査
- todoデータはsubscribe時にしか更新されないのが課題なので、ユーザ認証されたタイミングでsetTodosする設計に見直す
- useAuthenticatorに以下のログを仕込んでroute/authStatus/usernameの認証時の値の振る舞いを明らかにした
const { user, signOut } = useAuthenticator( (context) => { console.log("useAuthenticator onChanged. route=" + context.route + " authStatus=" + context.authStatus + " user:" + context.username); return [context.user]; } );
- useAuthenticatorを調査した結果、userが有効な値の時にTodoタスクを読み出す設計にした
- useEffectのdependenciesとしてuserを設定し、user更新時にuseEffect時の処理を実行する設計とした
- useEffectのクリーンアップ関数でunsubscribeした
- useEffectのクリーンアップ関数でTodoタスクを空配列にした
- 空配列にしないと別のユーザのTodoタスクが一瞬表示されたため
- unsubscribeするということはデータ更新しないということなので、空配列にする設計は妥当だと思う
useEffect(() => { console.log("useEffect::user=" + user); if (user) { fetchTodos(); } const subscribe = client.models.Todo.observeQuery().subscribe({ next: (data) => { console.log("useEffect::Todo.observeQuery()>>>setTodos"); setTodos([...data.items]); }, }); return () => { console.log("useEffect::unsubscribe()"); subscribe.unsubscribe(); setTodos([]); } }, [user]);
結果
感想
- AWS Amplifyでシステム構築した上で理解を深めるという作戦は狙い通りにうまく行った
- 引き続きアプリ機能を拡張しつつ理解を深めたい
参考
AWS-Amplify入門
入門の動機
- ASW Amplifyというものがあることを知った
- フロントエンド開発者に対してバックエンドやインフラ構築を半自動的に提供する体験をできそうなので試したくなった
- AWS Amplify コンセプト抜粋「AWS Amplify Gen 2 は、バックエンドの定義に TypeScript ベースのコードファースト開発者エクスペリエンス (DX) を使用します。Gen 2 DX は、ホスティング、バックエンド、UI 構築機能とコードファーストのアプローチを備えた統合された Amplify 開発者エクスペリエンスを提供します。Amplify を使用すると、フロントエンド開発者は、アプリのデータモデル、ビジネスロジック、認証、承認ルールを完全に TypeScript で表現するだけで、クラウドインフラストラクチャをデプロイできます。Amplify は適切なクラウドリソースを自動的に構成し、基盤となる AWS サービスをつなぎ合わせる必要がなくなります。」
入門の仕方
クイックスタートの実行結果の調査
- 特に問題なくデプロイまでできた
- Amplifyコンソール画面の当該アプリの「デプロイされたバックエンドリソース」から78個のバックエンドリソースが自動的に構築されたことが確認できた
- バックエンドリソースを整理することでシステムイメージが深まりそう
- amplify_outputs.jsonはgitignoreにコミット対象外ファイルとして定義済みだった
- TODO削除機能を追加してlocalhostで動作確認したら デプロイ環境で追加したTODOが表示された
- mainブランチ用バックエンドがローカル開発でも使われる(amplify_outputs.jsonが同じなので)
- TODO削除機能をmainブランチにpushしたら自動的にデプロイされて削除機能が使えた
- アカウントセットアップは少し手こずったができた
- サンドボックスも作れた
- ユーザごとにTODOアイテムを持つように修正するとサンドボックスに自動的に反映されてデプロイされるようだ
- チュートリアル通りだとユーザごとのデータ取得のタイミングがおかしい気がする
- サインインした直後は以前のユーザのタスクが表示されるのがおかしい
- useEffectのタイミングでsetTodosするのが設計としておかしい気がする
- useAuthenticatorフック を使えば良いのでは?
- Authenticator周りは追加で調査する
感想
- AWS Amplifyを使うことで、AWS::AppSync、AWS::CDK、AWS::Cognito、AWS::IAM、AWS::Lambda、AWS::S3、AWS::SSM、AWS::StepFunctionsがバックエンドリソースとして動いた
- これらのシステム動作イメージをつかみたい
- これをベースに独自アプリ作れそうな気がする
- コード修正してGitHubにpushするとビルド・デプロイまでされる体験はとても良い
- 知識なしにアプリ開発に集中できる体験が特に良い
- アプリ開発しながら必要な知識をつければ良さそうな点も良い
- この体験のためだけに課金する価値ある
参考
特になし
React入門
入門の動機
- UIフレームワークは技術の変化が早くて追っかけられてなかったが一度最新の状況を理解しておきたい
- 業務でも個人開発でもUI開発のパラダイムを理解することで良い開発ができそうな感覚を持ったため
- スマホアプリ・デスクトップアプリ・フロントエンドに依存しない共通したUI開発のベストプラクティスの引き出しを増やしたい
- Flutterアプリ・WPFアプリ・Kotlinアプリいずれにしても最新のパラダイムの理解が必要な感覚があった
- Webアプリケーションのクライアント側の挙動を概要レベルで語れるようにしておきたい
- フロントエンドという領域や職種に対するイメージをアップデートした方が良さそうなくらい進化している(気がする)
- Reactは標準技術と言えるくらい普及している(気がする)
入門の仕方
- 雑誌 WEB+DB PRESS Vol.129 の特集「Reactの深層 変わる常識と変わらない思想」の記事に目を通して、Reactの本質的な思想とVer18以降の設計方針が理解できた
- 手を動かしたくなったので公式ページのReactを学ぶに着手した
- チュートリアル:三目並べ は、最後まで実装してイメージつかめた
- Reactの流儀 は、ひととおり目を通した
- 内容的には違和感はなく、慣れればしっくりきそうな気がする
感想
- 雑誌の特集記事がイメージはつかむのに役立った
- 三目並べのチュートリアルも雰囲気を把握するのによかった
- バックエンド側との連携とかページ遷移とか理解したい
- Start building with Next.js が良いのかもしれない
- スタイリング: Next.js でアプリケーションにスタイルを設定するさまざまな方法。
- 最適化: 画像、リンク、フォントを最適化する方法。
- ルーティング: ファイル システム ルーティングを使用してネストされたレイアウトとページを作成する方法。
- データ取得: Vercel でデータベースを設定する方法と、取得およびストリーミングのベスト プラクティス。
- 検索とページネーション: URL 検索パラメータを使用して検索とページネーションを実装する方法。
- データの変更: React Server Actions を使用してデータを変更し、Next.js キャッシュを再検証する方法。
- エラー処理:404一般的なエラーおよび見つからないエラーを処理する方法。
- フォームの検証とアクセシビリティ:サーバー側でのフォーム検証の方法とアクセシビリティを向上させるためのヒント。
- 認証: アプリケーションに認証を追加する方法NextAuth.jsおよびミドルウェア。
- メタデータ: メタデータを追加し、アプリケーションをソーシャル共有用に準備する方法。
- React foundations は後でやりたい
参考
読書「働くみんなの必修講義 転職学 人生が豊かになる科学的なキャリア行動とは」
キャリア構築手段としての転職
- 大学卒業後20年ほどソフトウェア開発業界で働いてきた
- この先20年もソフトウェア開発業界で活躍したい
- そのために戦略的にキャリア構築する必要があると仮説を立てた
- キャリア構築の手段として転職を1つのオプションと考えた
- 転職活動について色々と調査活動をして知見や学びを得たので個人のメモとして残す
業務経歴やスキルの棚卸し
- 転職サイトに登録するため
- 業務経歴やスキルなどを明確にすることで、マッチする企業からスカウトをもらうため
- 履歴書や業務経歴書を作成するため
- 転職理由や志望動機など自身の転職の軸を整理するため
- 自身の目線から語れるが、企業の目線から客観的に見ることができない課題があったと、今なら感じる
- 企業目線からのアドバイスをくれるという点で、たまたま登録したサイトは良いサービスだったのだと感じる
キャリア構築の模索は一人では厳しい
- 転職サイトから支援したい旨の申し出があったので試しに話をしたら、とても良い体験だった
- 転職活動のノウハウや経験が蓄積されており、転職のブラックボックス感が減って見通しが良くなった
- こちらのキャリアやスキルについて客観的なアドバイスや企業ニーズについて教えてくれた
- マッチする職種・企業などの求人も紹介してくれた
- 自分一人の力で孤独に転職活動するのは無理
- サポートの方のホスピタリティにとても助けられたし、頑張ろうと思えた
- 企業側のカジュアル面談の担当者はみなさん優秀で、エンジニア採用への力の入れ具合がうかがえた
- 面接担当の方とコミュニケーションする中で、自分の志向や強み、挑戦したいことなど、転職要件の輪郭が定まってきた
- できること、できないこと、やりたいこと、でスキルを分類するようにサポートの方にアドバイスをもらった
- できることベースでマッチさせつつ、やりたいことを狙う作戦をサポートの方にアドバイスいただいて、腹をくくれた気がする
- できることベースで求人応募すると、面接担当の方との話が噛み合ってる感がとても増した
- 家族からも要望をヒアリングした
- ワークライフバランスとキャリア構築の両立を目指せると良いと感じた
ポッドキャスト「グリテンラジオ)」
- 転職活動について語ってるポッドキャストを探して見つけた
- 転職活動のリアルな話が聞けて、転職活動のブラックボックス感がさらに減った
- 転職活動してなくても、IT業界の一般常識とか市場感という意味で聞き続けると良い気がする
- 採用する企業側の事情もみえたことで、カジュアル面談への緊張感とかモチベーションがコントロールできるようになった
- この頃に転職活動について語ってくれる人が10名くらい(サポートの方、グリテンラジオのお三方、カジュアル面談の担当者、家族)になって、活動のイメージが深まってきた感じがあった
- グリテンラジオは17話分聞いて、今も継続して聞いている。学びが多いし、話の内容が面白い。
- グリテンラジオの中で書籍「転職学」が紹介されてて購入した
書籍「働くみんなの必修講義 転職学 人生が豊かになる科学的なキャリア行動とは」
目次
- はじめに
- オリエンテーション なぜ「転職学」が「人生の必修」なのか
- 第1講 まずは転職の方程式「D × E > R」を学ぼう
- 第2講 「自己認識」を高めれば転職力も高まる
- 第3講 孤独になるな!「転職相談」の大切さ
- 第4講 日本人と「大人の学び」の心理分析
- 第5講 地方転職から副業まで「流行りの転職」の虚実
- 特別集中講義 日本の転職の歴史学
- 第6講 新しい組織に馴染む科学的な方法
- 第7講 これだけは知りたい「ミドルの転職」
- 最終講 「辞めた会社」との付き合い方とは
感想
- 転職プロセスの全体像について知識をつけるのに最適
- 本に出会うまでは転職活動の見通しの悪さによるしんどさやストレスがあった
- 書籍では統計的・客観的に転職プロセスを分析して講義という形式に仕立ててくれており、心の負担が軽くなった
- 個人的には読書は著者との出会い・語らいにカウントしている
- 良い書籍に出会えるとコスパ・タイパが大変よいし、この書籍もそうだった
- グリテンラジオと書籍「転職学」のおかげで多角的に転職活動を見れるようになった
- あとは自分の軸や要件を整理すれば良いのでは?というところまで学びが蓄積できた気がした
Androidアプリ 「World Ama Shopping」のご紹介
本記事の概要
各国Amazonサイトの商品を調べるときに簡単に調べられるように Androidアプリ「World Ama Shopping」を開発・リリースしました。 簡単に各国Amazonサイトの商品を調べられます。

本記事では以下を説明します。
- アプリの使い方
- 各国の商品の違い(利用例)
アプリの使い方
入手方法
GooglePlayからインストールします。
https://play.google.com/store/apps/details?id=com.rydeenworks.amago
アプリの説明
メイン画面

AmazonURL
検索対象のAmazonサイトを表示します。タップすると"Select Country"画面に遷移して、Amazonサイトを選択できます。
Search Word
検索したいキーワードを入力できます。
Sort Order
Amazon商品検索結果の並び順を指定できます。
GoTo Amazonボタン
Amazonサイトで商品検索を実行します。
各国の商品の違い(利用例)
"Emacs"で検索してみました。各国で違いがあって面白いです。







映画監督「大林宣彦」作品をAmazonプライムビデオで観る(2021年1月時点)
以前、こういう記事を書きました。
Amazonプライムビデオで視聴できる大林宣彦監督作品が以前の記事から変わってますので、2021/1月の状況を整理しました。 私は気になっていた初期作品『HOUSE ハウス』を観る事ができました、面白かったです。
Amazonプライムビデオで視聴できる大林宣彦監督作品
注)情報は2021年1月10日時点のものです。実際の情報はAmazonプライムビデオのサイトで確認してください。(タイトルからプライムビデオページへリンクしてます)
| タイトル | 視聴可能 | 予告編 |
|---|---|---|
| HOUSE ハウス |
○ | あり |
| ふりむけば愛 |
△ | あり |
| 金田一耕助の冒険 |
△ | あり |
| ねらわれた学園 |
△ | なし |
| 転校生 | ー | ー |
| 時をかける少女 |
△ | なし |
| 天国にいちばん近い島 |
△ | なし |
| 少年ケニヤ |
△ | なし |
| 廃市 |
△ | あり |
| さびしんぼう |
○ | あり |
| 姉妹坂 |
△ | あり |
| 彼のオートバイ、彼女の島 |
△ | あり |
| 日本殉情伝 ... | ー | ー |
| 異人たちとの夏 |
△ | あり |
| ふたり |
△ | あり |
| 青春デンデケデケデケ |
△ | あり |
| 風の歌が聴きたい | ー | ー |
| 理由 |
ー | なし |
| 転校生 -さよなら あなた- |
△ | あり |
| この空の花 -長岡花火物語 |
△ | あり |
| 野のなななのか |
△ | あり |
| 花筐/HANAGATAMI |
○ | あり |
○:Amazonプライムビデオの定額サービスで視聴可能
△:有料レンタル等で別途料金がかかるが視聴可能
ー:Amazonプライムビデオで視聴できないもの
大林宣彦監督作品の入り方(どの作品から観るか)
もちろんご自身の好みで観れば良いと思います。
Amazonプライムビデオで予告編が無料で見られるものがありますので、予告編を見て好みの映画か判断するのも良いと思います。
普段あまり映画(特に邦画)を見ない方は長時間の映画や難解な映画は避けた方が良いと思います。
上記3つが大林宣彦監督作品として入りやすいと思いますので参考にしてください。
参照
図書館の予約を便利にするアプリの紹介
私は図書館をよく利用するのですが、大林宣彦監督は本も出しています。読みたい本が図書館にあるかAndroidアプリ 図書さがし(Google Play)で簡単に調べることができて便利です。
使い方は紹介記事を見てください。 rydeenworks.hatenablog.com
ブラウザブックマークによるGTDのinbox整理方法について
本記事で解決する事
GTDではinboxに情報収集するという考えがあります。 inboxにどんどん情報を収集した結果、情報を整理できずに活用できなくなってしまう事があると思います。 本記事ではinboxの整理を上手くやる方法について紹介します。
本記事の概要
本記事ではGTDの5ステップのうち、ステップ1-3をブックマーク機能を使って実現する方法を説明します。
- STEP1 CAPTURE - あなたの気を引くものを捕らえる ->ブラウザからブックマークする
- STEP2 CLARIFY - それが何を意味するのか明確にする ->ブックマークを定期的に見直す
- STEP3 ORGANIZE - それをあるべき所に整理する -> ブックマークを定期的にしかるべきフォルダに移動する
この運用のメリットは次のとおりです。
- ブックマークするだけで CAPTURE できる
- ネットから得た情報はブックマークで一元管理するルールにできる
- ブックマークはアカウントに紐づくのでスマホ・ノートPCなど端末に依存せずに参照できる
ブックマークでinboxを簡潔に運用する事で、ステップ1−3のサイクルが回るようになります。
本記事の著者について
もともと手帳術のようなものが好きで20年くらい続けています。 その過程でGTDを知って、自分なりのやり方をブラッシュアップし続けています。 メモ帳を電子化する事で手帳術を強化できないかと考えて、Emacsとorg-modeも5年ほど愛好しています。

STEP1 CAPTURE - あなたの気を引くものを捕らえる
準備
ブックマークのフォルダ構成を決めておく事が大事です。 フォルダ構成を決めておかないと、GTDをスピーディに運用できないからです。
フォルダは1つのinbox、複数の整理用フォルダを用意します。整理用フォルダは、過去記事のgoal.org「私生活の大事な事や目標など実現したい事」の構成に合わせます。
私の場合、トップフォルダは以下のようなイメージです。 ブックマークが多くなってきたらサブフォルダを作ってください。
| フォルダ名 | 役割 |
|---|---|
| inbox | 最初に入れる場所 |
| goal | 自分の人生を通して極めたい事の参考資料 |
| life-work | 個人的な研究・プロジェクトの参考資料 |
| maintenance | 人間関係・資産・自分自身のメンテナンスの参考資料 |
| rice-work | 今の仕事に役立つ事の参考資料 |
ブックマークする
ネットサーフィンしていて気になる記事を見つけたらブックマークします。 ブックマークは全てinboxに保存します。
以上でステップ1は終わりです。
STEP2 CLARIFY - それが何を意味するのか明確にする
準備
inboxに貯めたブックマークは時々は棚卸しましょう。 1ヶ月、3ヶ月、半年、1年などのタイミングが良いと思います。 なぜなら、少し時間を置いてブックマークを見直すと、やっぱり不要な情報だと冷静に気づけるためです。
準備として以下が必要です。
- 時間 - ブックマークを整理するための1時間程度のまとまった時間
- 整理方針 - 「私生活の大事な事や目標など実現したい事」とその優先順位
- 整理する強い意思
ステップ2の運用
棚卸しの目的はGTDの以下のプロセスの実行です。
それが実行可能なら次のアクションやプロジェクトにする。そうで無ければ、捨てるか、参考資料にするか、保留にする。
私の経験上、ブックマークは「参考資料」か「捨てる」のどちらかです。「次のアクション」や「プロジェクト」にはせずに、目的のための「参考資料」とした方が運用しやすいためです。同様の理由で「保留」にはせずに、目的に役立つかどうかで「参考資料」か「捨てる」かどちらかにします。これでinboxを空にできます。
ステップ2と3はセットで行います。 ステップ2はステップ3の準備と考えて良いと思います。
STEP3 ORGANIZE - それをあるべき所に整理する
ブックマークの整理
ステップ2で整理方針が決まれば、ステップ3でinboxのブックマークを整理します。
| 分類 | 整理方針と照らし合わせた結果 | 処理 |
|---|---|---|
| 参考資料 | 目標や実現したい事に役立つ情報 | ブックマークを移動する |
| 捨てる | 不要な情報 | ブックマークを削除する |
以上で終わりです。
参考
GTDの5ステップ
https://gettingthingsdone.com/what-is-gtd/
オススメの本

- 作者:デビッド・アレン
- 発売日: 2015/11/26
- メディア: 単行本
図書館の予約を便利にするアプリの紹介
私は図書館をよく利用するのですが、上記の本は図書館から借りました。本も「参考資料」としてブックマークしています。本が図書館にあるかAndroidアプリ 図書さがし(Google Play)で簡単に調べることができます。このアプリは私が開発しました。
詳しくは以下の記事をご覧ください。 rydeenworks.hatenablog.com




