/note/tech
MEMO:
- Go は Web 開発に向いているか?
- 「Web 業界における「一般的な Web 開発」,すなわちモノリスを基本とした中規模以上の開発にははっきりと 向いていない と言うべきだろう。」
- これは同意。コードベースが膨れ上がるほどに開発体験が低下していく感じある。
- Pythonでも同じストレスがあった
- 逆にJavaやPHPはある程度巨大化してもそこまでストレスが無かったのは1クラス1ファイル原則によるものだろうか
- フラットパッケージは正義か?
- 「フラットに並べても何とかなる範囲のものしか 1 パッケージに押し込んではならないのは明らかである。」
- これも同意
- 機能が増えたり機能が細分化したりすると一気に不快指数の高いコードになることが多い
- 技術的関心によるパッケージNG論については、要するに技術的関心だとパッケージに属するモジュールが増え過ぎる事が問題なので、例えばモジュラーモノリスを採用することでドメイン単位のスコープを小さくする手もありそう。
- SQLビルダーとしてBunが紹介されている
- https://bun.uptrace.dev/
- 自分はgoquを使うことが多いが、Bunも試してみたい
- https://github.com/doug-martin/goqu
- panic は厳禁か?
- Go のテストライブラリは標準のもので十分か?
- testifyは必須だよね
- テーブル駆動テストも場合によって良し悪しなので脳死で全面採用はしたくない
- Go のエラーライブラリは標準のもので十分か?
- スタックトレースは欲しいよね
- 「パフォーマンスが悪いという噂があるが, IO がボトルネックになることが大半な Web アプリケーション開発でそんなことを気にするだけ無駄であることがほとんどである。オブザーバビリティのほうがもっと大事だ。」
- ライブラリに依存しすぎるとメンテナンス性が云々論について
- 車輪の再発明はコードを二度と触ることがないと確信できる時だけにしておけ
- ほんまそれ
- 「そもそも Go コンパイラの EOL 期限自体がそんなに長くないので,依存関係が少なければ放置してもよいと考えること自体が愚かかもしれない。メンテナンスはちゃんとやっていこう。」
(2023/09/10)