Yoshi.dev

技術系の趣味、またはやった仕事やそこから学んだことを忘れないために

今週の技術日記

今週のだらだら仕事やらプライベートでインプットした内容のだらだらアウトプット〜

仕事で新規プロジェクト作ってgradleはkotlin gradle dslで書き始めた
groovyで書いてるときとそこまで差は感じないかなあというのが今の所の感想(groovyで書いててもIDE使ってるからか補完とかしっかりやってくれてたし)
まあ単純にKotlinでかけるというのは嬉しいかも
gradleアプデした既存プロジェクトの方でも使えるはずだから頃合いを見て導入してみようかなー

仕事で開発してる新規サービスでサーバープッシュやりたいと思ってたのでgraphqlのsubscriptionを使ってみようと思った
subscriptionの裏側は大体websocketでやる例がググると出てくるので、ktorサーバーにwebsocket導入をしようと調べてみたけどktorのplugin入れるだけで簡単に実現できてしまった
すごい楽

ただ結局プッシュ周りはあえてサーバープッシュ的にやる必要はなさそうということになったのでFirebase Cloud Messagingあたり使ってやることになりそう
ちょっとネイティブの実装がいまいちわからないけど、これはいわゆるプッシュ通知という使い方以外にもバックグラウンドで動いて何かアプリのプロセスを動かすトリガーにするみたいな使い方は出来るのだろうか?
Firebase Cloud Messagingで実現できたらサーバープッシュとかより実装楽そう(イメージ)

Nettyとか使ったイベントドリブンなサーバーというのがいまいち理解できていないので理解をすすめたい

新規サービスのマイクロサービス構成で、いわゆるAPIゲートウェイのところをktor×graphql×grpcで開発進めてるんだけど楽しい
grpcのprotoファイルをどう管理するかまだ決まってない
ktor×grpcのsample作成中
github.com
今の所streamらへんまだコミットできてないけど


今週は既存のある深めなバグ修正に2日も工数取られてしまった。。。
前から闇深めな実装になっててマズイなとは思ったけど今回その沼にハマった
ああいう複雑なところはマジドキュメントがほしい
というか基本設計のドキュメントは残しておいてほしい
Web業界なんてすぐ人が移動してまともに引き継げないこともあるんだし
いくらコードが設計図といってももっと概念的なものはちゃんとドキュメントがないと引き継げなかったときに後から入った人が悲しい思いをする


プロジェクトのパッケージ構成考える上でレイヤーアーキテクチャ、ヘキサゴンアーキテクチャ、クリーンアーキテクチャについてそれぞれ軽く勉強してみよう

ターミナルもうちょっとちゃんと使い込んでいこうということでとりあえずbashからfishってやつに乗り換えてみた
そんな対していじってないけど予測変換いい感じ
tmuxも改めて使ってみてるけどまだ慣れない

今週はこんな感じ