Contentfulで定義したレスポンスをTypeScriptで使う
このブログはHeadless CMSである
Contentfulで記事を作成し、Next.jsでデータを取得して表示しています。
今まで型定義を自前で用意していたのですが、自動で生成するライブラリを使うことにしました。
contentful-typescript-codegenを使う方法を最初試していたのですが、メンテナンスがあまり活発でないことと、Contentfulのv10のアップデートに失敗してしまうことがわかりました。これから対応する方は注意してください。
型情報を含んだjsonを読み込んでTypeScriptの型を作るので、まずはそのjsonを作る準備をします。contentful-cliを使います。
npm install -D contentful-cli
jsonを作るスクリプトをpackage.jsonに追加します。export-confing.jsonを別で作り、そこに設定値を入れます。この設定値には公開したくないアクセストークンをいれるので、gitignoreに入れてコミットしないようにします。
ちなみにmanagementTokenはCMA tokensからPATを作成することで取得しました。
{
// ...
"scripts": {
"contentful-export": "contentful space export --config export-config.json"
}
}
{
"spaceId": "XXXX",
"managementToken": "CFPAT-XXXX",
"contentFile": "contentful-export.json",
"skipContent": true,
"skipRoles": true,
"skipWebhooks": true,
"skipTags": true
}
npm run contentful-exportを実行することで、型データのjson(contentful-export.json)が作られました。
次にこの型データjsonからTypeScriptの型を作ります。cf-content-types-generatorパッケージをインストールします。
npm install -D cf-content-types-generator
package.jsonに以下のスクリプトを追加します
{
// ...
"scripts": {
"contentful-generate-types": "cf-content-types-generator contentful-export.json -o ./@types --v10 --response"
}
}
スクリプトを実行することで型が生成されます
npm run contentful-generate-types
これで型が生成されました。これで安全に開発ができます。
eityans.comドメインを取得してみた
X(Twitter)もGitHubも全てeityansで統一しているし、せっかくなのでドメインも取得してみました。
Cloudflareで取得。年10$ほどで、それぐらいなら良いかなと思いました。
電車移動中にふと欲しくなったのでその場で取得。帰宅してからこのブログに設定しました。
このブログはVercelにホスティングしており、設定画面のドメインからポチポチするだけで反映されました。便利。
具体的に設定したこと
Cloudflare側
Vercel側
テキストコミュニケーションのデメリットは本当にデメリットなのか
完全リモートの会社に転職して1年半近く経つ。
やり取りは全てSlack。文字だけのコミュニケーションで、会議と言えるものは朝会で一日5分程度。あと面接ぐらいか。同棲していなかったら一言も話さないこともありそう。
仕事を進めるうえで調整しなければならないことが発生したときも全てSlack。突発な会議や打ち合わせは行ったこと無い。それで仕事が進むのかと思う人もいるかも知れないが、案外進むものだ。
かなり極端な会社にいると思う。自分なりにテキストコミュニケーションだけで仕事を進めるメリットとデメリットを考えてみる
メリット
仕事を邪魔されない
透明性
後世に残る
考えが整理される
自己解決することがある
デメリット
デメリットを小さくするために
メリットとデメリットを見ると、メリットは組織やチームに関係し、デメリットは個人に関係していることに気付く。であるならば、個人の改善が大いに効果を発揮するだろう。以下を意識する。
質問を受けたらすぐに反応する
絵文字や「!」をつける
FeedlyからFeederに移行した
RSSリーダーを地味に使っている。全ての記事を追うつもりはないが、たまに見ると気になるブログが更新されたりしていて面白い。
Feedlyを使っていた理由は特にない、基本的にツールにこだわりはない人間なので、気になるブログやサイトの記事の新着が通知されればなんでもいい。特にChrome拡張機能が嬉しく、右上のアイコンから手軽に記事を見に行けるのが良かった。
FeedlyからFeederに移行したのはこの拡張機能が使えなくなったからだ。やはり動線がないと記事を読みにいかない。他のツールを探し、ぱっと目についた
Feederに移行した。
移行方法はあるのかもしれないが、いまいちすぐに方法を見つけられなかった。面倒だが、せっかくなのでこれを機に購読するサイトの整理をした。
整理してみると面白く、自分の関心事が移っていることがわかった。例えばCSS周りのテクを紹介するサイトは移行しなかった。転職する前はフロントエンドの細かい実装も行っていたが、今の職場はそれらができるデザイナがいる。彼に任せればよくなったので、そのあたりを追いかける必要性が薄くなったりしている。
他にも、逆に何年も更新していないブログを見て、この人は今どうなっているんだろうと思いを馳せたりした。逆に、もしかしたらこのブログに対して同じようなことを考えている人がいるかもと思い、このできことを書いてみることにした。
移行作業は最初は面倒だと思ったが、自分やいろんな人が変わっていることを感じて案外面白かった。作業自体は1時間程度。定期的に整理するのは今後もやってみようと思った。
2025年に読んだ本
随時更新していく。上に行くほど最近読んだ本。
コードレビューで安易に質問形式を使うとチームが疲弊する
修正依頼の意図があるならば、素直にその内容を書いたほうが良い。安易に質問形式を使うとチームが疲弊する。,,質問形式のレビューとは,例えばユーザーのidを抽出したいときに以下のコードがあったとして,user_ids = User.where(hoge).map(&:id),それに対して,,みたいな質問形式。これ、なるべくやめたほうが良い。,「この処理で必要なのはIDだけなので、pluck(:id)を…
前に書いたこの内容をより充実させた感じ。同意しかない。
5/2 読了
1,2年目ぐらいの人が読む本だなと思い、途中から流し読み程度に読んだ。そりゃそうだよねーという内容が書かれているので、新しい発見はあまりなかったかも。
ただレビューのコミュニケーションの話はとても良くまとまっていて、人に教えたりするときに使えるかも
4/29読了
SOFT SKILLSを書いた人の本。名前の通り、キャリアについて深く考えた。
4/17 読了
名著。中身ももちろん良かった。至極真っ当なことを述べている。読みながら反省することが多い本。
人を動かすというタイトルだが、より正確に言うならば、「相手の立場や意見、感情を一番に尊重し、相手が自発的により良い方向に気持ちよく行動させるための方法」を教えてくれる。
原則は相手に重要感を与えること。自分はそういうトーンで仕事を依頼したり会話をしたりできているだろうか。言い方だけの話ではなく、相手のことを自分がどう見るのかを教えてくれる本なので、この本から得た視点で人を見ていきたい。
相手を議論や結果で打ち負かしたとき、自分は気持ちいいかもしれないが、相手の気持ちはどうだろうか。そういう短期的な快楽を自己中心的な理由で選択するのは得策ではない。振り返ると、それぐらい相手に譲ってやれよという場面がいくつかある。相手の誤りを指摘することは正しいかもしれないが、合理的とは言えない。
自分はどれだけ人のことを褒めているだろうか、今日から褒めていきたい。
3/30 読了
本の存在は知っていたが読んでいなかった本。第二版があるとのことなので読んでみた。
もっと早く読めば良かったかもしれないし、今読んでちょうどいい本だったかもしれない。
この本を読んですぐに行動を変えようと思ったことが二つある。一つはブログを継続的にメンテしようと考えた。ドメインを取得したのもそのせいだ。放置していたら叱ってほしい。二つ目はポモドーロ・テクニックだ。今日が日曜日なので、明日の仕事で活かすのが楽しみ。
読んで良かった。
3/16読了
話題になっているので読んだ。リーダブルコードのような本かと思ったが、コードの整理方法を紹介すると言うよりは、コードを整理すること前提で行動して過度なコストを払っていないだろうか?という気づきを与えてくれる本。
本書曰く整頓はプリングルスのようなもので、少し始めるとどんどん止まらなくなるものらしい。すごくわかる。それによってPRが肥大化するのもわかる。かといって整理しないのも将来の負債だし。
整頓周りの要バラをより深く考察している本。
整頓の顧客は自分自身という言葉も響いた。整頓はある意味自己満足かもしれない。とりあえず何でもかんでも整理することはなくなりそう。
3/8 読了
ドキュメンテーションの重要性は常々思っている。特に今の会社ではフルリモート&非同期コミュニケーションがほとんどなのでその思いは強くなっている。
社内で共有して同じ考え方や近い考え方で行動できるようにしても良いかもしれない。
3/4 読了
フェルマーの最終定理の歴史が著者の楽しい文章で紹介されている。サイモン・シンの
フェルマーの最終定理を読んでいたため、歴史の大枠は知っていたが、この話は何度聞いても感動する。今回も感動した。
一日であっという間に読んでしまった。
2/6 読了
世界史の勉強をしたことがないので、教養として読んだ。
権力が集中すると荒れてコケるパターンが本当に多い。二枚舌外交の意味を知った。
2/2 読了
難しい。ただ確実に一つ上のレベルに引き上げてくれる。
定期的に読み返す予定。トーナメントの章を読んで久しぶりにトナメやりたくなってきた。
1/27 読了
哲学ブーム来てる。自分は哲学については全く知らなかったが、とても楽しく読めた。
歴史上の様々な哲学を紹介している。なぜその考えが生まれたのかの説明と、その考えの内容が次々に展開される。その結末は予想外だった。面白い時代に生きているのだと思う。
1/18 読了