雑に書いていきます。
バックグラウンド
自分のバックグラウンドスキルは以下の通り。専門はリアルタイムな通信プロトコルを利用したサーバーの設計と開発とマーケティング。
- Erlang/OTP
- WebRTC
- End to End Encryption
細かいのはこちら。
SQL
Go で sqlc を使うために学ぶことにした。sqlc を採用したのは複数人数で開発するときの共通言語としては SQL の方がいいだろうというのと、SQL はどんなデータを持たせたいのかを伝えるのに便利と判断したため。
今までずっと通信系ミドルウェアの開発をしてきたこともあって SQL を学ぶ必要が無かったが、今回いい機会なのでちゃんと学ぶことにした。
まずは利用データベースを完全にしぼって TimescaleDB (PostgreSQL ベース) で利用する SQL だけを学ぶことにした。
書籍は元 SIer のガチ SQL 勢からお勧めをきいてよんだ。ミックさんの本を読んでおけば間違いないということで一通り本を買って読んだ。
- SQL実践入門 ──高速でわかりやすいクエリの書き方
https://amazon.co.jp/dp/B07JHRL1D3 - 達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
https://amazon.co.jp/dp/B07GB4CNKP - 達人に学ぶDB設計 徹底指南書
https://amazon.co.jp/dp/B00EE1XPAI - SQL 第2版 ゼロからはじめるデータベース操作
https://amazon.co.jp/dp/B01HD5VWWO
公式のドキュメントを読む癖をつけた。
https://www.postgresql.jp/document/14/html/index.html
TimescaleDB のドキュメントも一通り眺めた。
https://docs.timescale.com/
あとはとにかく実際に書いてみて sqlc compile して確認していく。
https://tableplus.com/ を教えてもらって愛用している。
WITH と make_interval がお気に入り。
今後も SQL を書いていくだろうから、少しずつ慣れていきたい。
Cloudflare
今年の初めに自社パッケージ製品のクラウド版を提供する事を決めて、色々調べているうちに Cloudflare を SPoF にすることが可用性を高められそうと判断した。
まず一番先に DNS を Cloudflare へ切り替えた。その後フロントエンドを Cloudflare Workers を採用した。
Cloudflare Workersと Cloudflare Load Balancing の組み合わせは本当にいいのでお勧め。
転送量課金がない S3 互換のオブジェクトストレージ R2 も発表され、Cloudflare Workers から利用できる … デッドレターもあるキュー Cloudflare Queues、SQLite D1 、メールを送受信できる Email workers と欲しいものがどんどん出てきていて、Cloudflare に乗っかって正解だったと思う。
Cloudflare Zero Trust も本当に便利で、気軽にクローズドなサイトが作れる。
来年も Cloudflare を SPoF にしていきたい。
TypeScript
Cloudflare Workers は TypeScript で書くのがベストプラクティスなので、覚えることにした。ブラウザ API は一切覚えておらず、Cloudflare Workers の API だけ覚えた。
余計なフレームワークを覚えるコストは払わず、TypeScript と Cloudflare Workers API だけで実装しているので、コードもとてもシンプル。
VSCode で書いているが、本当に便利で困ることなく書いている。文法がわからなくなるときがたまにあるが ChatGPT に相談すればほぼ教えてもらえる。便利な時代になった。
TypeScript は常に最新版を使うようにしているので、新しい機能は積極的に試していきたい。
Figma
フロントエンドは自分では開発できないので「こんなのが欲しい」を伝えるために今までは図を書いたりしていたが、この機会に Figma を覚えようと思い、会社で課金。
公式 YouTube に大量の動画があるのでそれを見て学んだ。
https://www.youtube.com/@figma
公式ドキュメントも充実していてよい。
https://help.figma.com/hc/en-us
Figma と SQL スキーマとクエリーを用意さえすれば、どんなモノを作って欲しいのかが開発者がわかりやすいので、情報共有が最低限でいい。
SQL で引っ張った結果を画面にどうやって表示して欲しいのかを伝えるのがすべてだなというお気持ちになった。
デザインは既存サイトを見て参考にしたりしている。React や CSS は覚えるつもりはない。
Meilisearch
自社ドキュメントに採用している Sphinx になんとか全文検索を用意したいと思っていたのだが、Meilisearch というフランスの企業が開発、公開している OSS を利用する事で実現出来た。
別途記事を書いてるので興味ある人は是非見てみて欲しい。日本語対応がかなり頑張られていることもあり、デフォルトで日本語が扱えるのは強い。
開発も頻繁に行われているし、中の人も日本語対応に積極的。不満なし。
来年
Zig を学んでいきたい。それ以外は今持っている技術のレベル上げで十分。