# 🗞️Topics
## [[Django REST framework]]の学習
仕事で利用している[[Django REST framework]]を体系的に学ぶ機会が無かったので、5連休の後半に時間をとって学習してみました。
こちらは少し前にはじめたものですが、途中でずっと放置していたものを区切りつけました。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📜2025-09-24 Django REST frameworkを学習してみる
</div>
<div class="link-card-v2-content">仕事でDjango REST frameworkを使う必要が生じ、機能が多く把握しきれなかったため、Django 4.2とDRF 3.16.1を用いて体系的な学習を開始した。環境構築では依存関係やバージョン選定、PostgreSQL導入、psycopg3の利用などに取り組み、SerializerやModelSerializerの実装、APIエンドポイント作成、Brunoによる動作確認までを段階的に実施した。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" />
<a data-href="📜2025-09-24 Django REST frameworkを学習してみる" class="internal-link"></a>
</div>
%%[[📜2025-09-24 Django REST frameworkを学習してみる]]%%
続編として、チュートリアルを一通りやり切るところまで終えました。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📜2025-10-11 Django REST frameworkを学習してみる
</div>
<div class="link-card-v2-content">仕事でDjango REST frameworkの利用が必要となり、Django 4.2とDRF 3.16.1で体系的な学習を進めた。型定義導入のためdjangorestframework-stubsやdjangorestframework-typesを試したが、Pyright環境では不要と判断した。チュートリアルを進め、関数ベースからクラスベース、Mixin、ViewSet、Routerへとリファクタリングし、認証・権限管理やN+1問題の解消、関連モデルのネスト返却も実装した。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" />
<a data-href="📜2025-10-11 Django REST frameworkを学習してみる" class="internal-link"></a>
</div>
%%[[📜2025-10-11 Django REST frameworkを学習してみる]]%%
これに加えて[[Slack]]通知の仕組みを入れたものを後編として作成しています。一区切りついたらまた共有します。
## TypeScriptの情報整理
[[TypeScript]]のページがかなり肥大化していたので、一部の[[ノート]]を[[Hub note]]として分離しました。せっかくなので、[[ティーエス]]ちゃんのカバー画像も作成しています。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📒TypeScriptのユースケース
</div>
<div class="link-card-v2-content">TypeScriptでよく使う操作や設定のユースケース。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/typescript-recipe2.webp" />
<a data-href="📒TypeScriptのユースケース" class="internal-link"></a>
</div>
%%[[📒TypeScriptのユースケース]]%%
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📒TypeScriptの用語
</div>
<div class="link-card-v2-content">TypeScriptの用語リスト。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/typescript-recipe2.webp" />
<a data-href="📒TypeScriptの用語" class="internal-link"></a>
</div>
%%[[📒TypeScriptの用語]]%%
## [[TS-Pattern]]のユースケース追加
[[TS-Pattern]]のユースケースも追加しました。公私共に使う機会が多くなりそうなためです。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📒TS-Patternのユースケース
</div>
<div class="link-card-v2-content">TS-Patternでよく使うユースケースをまとめる。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/typescript-recipe2.webp" />
<a data-href="📒TS-Patternのユースケース" class="internal-link"></a>
</div>
%%[[📒TS-Patternのユースケース]]%%
今はまだ2ケースしか記載していませんが、今後引き出しが増えたら追加していく予定です。考慮漏れが減るので、パフォーマンスがシビアな処理でない場合はオススメしたいですね。
## ワークスペース切り替え機能改善
以下で紹介した方法のスクリプトについて、[[ワークスペース (Obsidian)|ワークスペース]]を切り替えた後に表示されていない[[タブ (Obsidian)|タブ]]のエディタ状態が保持されていない問題を修正しました。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" />
<span class="link-card-v2-site-name">Minerva</span>
</div>
<div class="link-card-v2-title">
📗ショートカット1発でワークスペースを切り替えたい
</div>
<div class="link-card-v2-content">Obsidianでワークスペースをキーボードショートカットやスクリプト、Vimrc Support Pluginを使って素早く切り替える方法を解説します。ワークスペース管理や効率化に最適です。</div>
<img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/obsidian-recipe.webp" />
<a data-href="📗ショートカット1発でワークスペースを切り替えたい" class="internal-link"></a>
</div>
%%[[📗ショートカット1発でワークスペースを切り替えたい]]%%
コードの詳細は『[[1つ後のワークスペースに切り替える (Obsidian)|1つ後のワークスペースに切り替える]] 』です。`ViewState` と `EphemeralState` を利用することで実現しています。
# 👀Reading
## 『みらい まる見え政治資金』を支える技術-国政政党がリリースしたOSSの技術選定と実装について|Jun Ito
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://assets.st-note.com/poc-image/manual/note-common-images/production/icons/android-chrome-192x192.png" />
<span class="link-card-v2-site-name">note(ノート)</span>
</div>
<div class="link-card-v2-title">
『みらい まる見え政治資金』を支える技術-国政政党がリリースしたOSSの技術選定と実装について|Jun Ito
</div>
<div class="link-card-v2-content">
はじめまして。チームみらい 永田町エンジニアチームの伊藤と申します!エンジニアチームではエディと呼ばれています。 先日チームみらいでは、政治資金の流れを透明性を持って公開するプラットフォーム「みらい まる見え政治資金」をリ ...
</div>
<img class="link-card-v2-image" src="https://assets.st-note.com/production/uploads/images/220196342/rectangle_large_type_2_76dc625a0cec06304cb19f0e4305c3cc.png?fit=bounds&quality=85&width=1280" />
<a href="https://note.com/jujunjun110/n/nee305ca004ac"></a>
</div>
~~~
いわゆる国のシステムとは要件の厳しさが全然違うというの差し置いても素晴らしいスピード感。流石。
~~~
## 【なぜAIに設計を任せると成長が止まるのか】Kiroを使っても学べない設計スキルの真実
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://static.zenn.studio/images/logo-transparent.png" />
<span class="link-card-v2-site-name">Zenn</span>
</div>
<div class="link-card-v2-title">
【なぜAIに設計を任せると成長が止まるのか】Kiroを使っても学べない設計スキルの真実
</div>
<img class="link-card-v2-image" src="https://res.cloudinary.com/zenn/image/upload/s--Pg-iT2_V--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2580%2590%25E3%2581%25AA%25E3%2581%259CAI%25E3%2581%25AB%25E8%25A8%25AD%25E8%25A8%2588%25E3%2582%2592%25E4%25BB%25BB%25E3%2581%259B%25E3%2582%258B%25E3%2581%25A8%25E6%2588%2590%25E9%2595%25B7%25E3%2581%258C%25E6%25AD%25A2%25E3%2581%25BE%25E3%2582%258B%25E3%2581%25AE%25E3%2581%258B%25E3%2580%2591Kiro%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6%25E3%2582%2582%25E5%25AD%25A6%25E3%2581%25B9%25E3%2581%25AA%25E3%2581%2584%25E8%25A8%25AD%25E8%25A8%2588%25E3%2582%25B9%25E3%2582%25AD%25E3%2583%25AB%25E3%2581%25AE%25E7%259C%259F%25E5%25AE%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:%25E3%2582%25B9%25E3%2583%258A%25E3%2582%25AC%25E3%2582%25AF%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzJkNDhmZDc4ZTYuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" />
<a href="https://zenn.dev/sunagaku/articles/0105c57e0a1283"></a>
</div>
~~~
わかる。
~~~
## 認知負荷を下げるテキストコミュニケーション - ジンジャー研究室
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://jinjor-labo.hatenablog.com/icon/favicon" />
<span class="link-card-v2-site-name">ジンジャー研究室</span>
</div>
<div class="link-card-v2-title">
認知負荷を下げるテキストコミュニケーション - ジンジャー研究室
</div>
<div class="link-card-v2-content">
Slack や GitHub など、何かとテキストコミュニケーションを行う場面は多いのだが、自分なりに気をつけていることを書いてみたい。 まず、前提として自分は文字を読むのが嫌いだ。昔から本が嫌いで読むのが遅く、国語の成績は ...
</div>
<img class="link-card-v2-image" src="https://ogimage.blog.st-hatena.com/12704346814673870543/6802888565280835295/1759954399" />
<a href="https://jinjor-labo.hatenablog.com/entry/2025/10/09/042519"></a>
</div>
~~~
『AIの回答を丸投げ~』からの3つ、めっっっちゃ分かる。
~~~
## 【登録者1万人企画】現職プロマネ猫の歩みと今後の話

~~~
最近、休憩のたびにスマホで見てるけど、なぜ見入ってしまうのかがよく分かる。特にAIの無機質なコンテンツが多いこの時代には一層刺さるなぁと。
youtu.be/AbIqdMyEweo?...
~~~
# 📚New Notes
- [[404エラー]]
- [[Accept]]
- [[Age]]
- [[DDL (SQL)]]
- [[Etag]]
- [[ModelSerializer (DRF)]]
- [[N+1問題]]
- [[P.select (ts-pattern)]]
- [[Pipでインストールした仮想環境のパッケージをuvの依存関係として追加]]
- [[Publish (Obsidian)]]
- [[QuerySet (Django)]]
- [[QuerySetが評価されるタイミング (Django)]]
- [[SQLログを標準出力に出力 (Django)]]
- [[djangorestframework-stubs]]
- [[djangorestframework-types]]
- [[pip freeze]]
- [[prefetch_related (Django)]]
- [[psycopg2]]
- [[psycopg3]]
- [[select_related (Django)]]
- [[インストールされたパッケージをrequirements.txtに変換 (Pip)]]
- [[オブジェクトのパターンマッチ (TS-Pattern)]]
- [[クライアントエラーレスポンス]]
- [[クラス (Python)]]
- [[ジェーエス]]
- [[ターミナル外からTUIツールを起動 (Ghostty)]]
- [[ナビゲーションをMarkdownファイルで設定 (MkDocs)]]
- [[リクエストヘッダー]]
- [[レスポンスヘッダー]]
- [[ワイルドカード (ts-pattern)]]
- [[属性 (Python)]]
- [[網羅性を担保して変数に代入 (TS-Pattern)]]
- [[設定ファイルの場所 (pnpm)]]
- [[設定ファイルの場所 (sqls)]]
- [[📒TypeScriptのユースケース]]
- [[📒TypeScriptの用語]]
- [[📒TS-Patternのユースケース]]
- [[📜2025-10-06 npmのセキュリティベストプラクティスを取り入れる]]
- [[📜2025-10-11 Django REST frameworkを学習してみる]]
- [[📜2025-10-12 Django REST frameworkでSlack通知APIをつくってみる]]
- [[📰2025年40週 Weekly Report]]