2022-11-17

やったこといくつか

やったこといくつか書いた。

Create / Read ができる API を Python で作った

データを書き込み / 読み込みできる API を作り直した。もともとは Flask + sqlite モジュールを使っていたが、FastAPISQLAlchemy を使うことにした。

やることが単純なのでわざわざ ORM 使うほどでもないかなと思っていたが、やることが典型的で細かい部分を気にしないなら ORM を使ったほうが楽かもしれない。

FastAPI も結構良い。面倒な部分がなくなっている感じ。データモデルを作って関数のパラメータにすればリクエストボディをバリデーションしてくれるのが嬉しい。

Prisma を触った

Electron アプリのデータの永続化には lowdb を使っていたが、これも ORM で置き換えた。アプリからデータを変更する機能を提供するのが面倒だったので、直接メモ帳でデータを書き換えられるように lowdb を使ってデータをテキストファイルに書き出していた。ただ、実装が複雑になるし、変更用のスクリプト書いておけばテキストファイルに書き出さなくてもいいやと思って Prisma を使うことにした。

Prisma | Next-generation ORM for Node.js & TypeScript

n-m の関係のテーブルを作成するとき、スキーマの定義ファイルに

model Post {
    ...
    tags Tag[]
}
model Tag {
    ...
    posts Post[]
}

のように、お互いの値のリストを持つように書けば、勝手に中間テーブルが作成される。データの読み書き時も中間テーブルの存在を考えなくて良い。ローコードプログラミングだ。

大きなプロダクトで利用するなら考えることは多そうだけど、ユーザーが自分しかいないからなんでもできる。

Github Projects を使い始めた

やりたいこと / やることを管理するために Github Projects を使うことにした。

プログラミングだけではなく、掃除や買い物といった雑多なタスクも Github Projects で管理している。

Todo の管理は ticktick や todoist などのサービスでもいいが、タスクは後になって変えたりメモを残したりリンクしたりと色々やりたいことが出てくるし、カンバンで今やっていることを可視化したかったのでこちらを使うようにした。

数イテレーションぐらい使ってみたが結構良い。頭の中にあることは全部積むぞ、積んだものしかしないぞという意志のおかげで、タスクがコントロールできている状態を感じられている。

趣味プログラミングでやりたいことが 10 あって、休日を使って 8 まで進めても「全然別のことしてないのにおわんなかった〜〜」という気持ちになる。あらかじめ今週は 4 まで進めると決めておけば、目標を達成できるし別のタスクも進められるので、なんかいい感じにタスクができているという気持ちになる。

「〇〇を考える」という曖昧なタスクでも、考えた結果をイシューやコメントに書いたり、別イシューを作ってリンクをつければ良い。とりあえず何か思ったらイシューを作って頭から追い出すようにしている。

まとめ(る内容でもないけど)

  • とりあえずライブラリ使ってみれば良い
  • やらないことを決めるのも大事