2022-10-21

読んだ技術記事と感想

いくつか技術記事を読んだので感想を書いた。

Why I Prefer Makefiles Over package.json Scripts for Node.js Projects

コマンドが複雑だったりたくさんある場合なら Makefile の方が確かに便利そう。ただ引数を指定する場合、make だとオプションをつける必要があるのでその点がやや面倒。

How to design better APIs

「API というものは……」といった内容ではなく、良い API を作成するためのルール一覧といった感じ。いくつか気になったものについて書く。

4. Provide a health check endpoint

API を生やしたことはあるけど設計して一から作ったことはないので、ヘルスチェックのエンドポイントという存在はあんまり考えたことがなかった。確かに、こういうのが必要になる場合もあるよね。

7. Use reasonable HTTP status codes

これは本当に大事だと思う。ステータスコードが統一されていない API を複数利用する場合、例外処理などをそれぞれの API ごとに書く必要があって大変。ステータスコード 200 で {"error": "unauthorized"} みたいなエラーメッセージはやめようね。

8. Use reasonable HTTP methods

PATCH for applying partial updates to a resource

PATCH なんてあったのか。

Please put units in names

sleep.py
time.sleep(300)
sleep.java
Thread.sleep(300)
sleep.hs
threadDelay 300

値は全て 300 だが待機する時間はそれぞれ異なる。コードで単位を表現するなら、名前付き引数を使うとか、変数に一度入れるとか、もっと強い型(python の timedelta みたいなの)を使うとかが考えられる。

def show(*, x):
    print(x)

show('hello')  # TypeError: f() takes 0 positional arguments but 1 was given
show(x='hello')

Keyword-Only Arguments を使うと、キーワード引数の利用を強制できる。これ知らなかった。

Oh Shit, Git!?!

逆引きの Git コマンド集みたいなもの。コミットメッセージ間違えた!  過去のコミットを改変したい!  といった場合に使えるコマンドを数個紹介している。

Git のコマンドとか操作法とかなども調べているので、一度書いたものは gist なり snippet なりで管理したほうが良さそう。

https://ohshitgit.com/ なのが面白い。