WeeklyReport#1

雑記 #

公開メモができた。最初なのでメモに関するメモが多い。

技術メモ #

後で時系列と合わせて参照できるように記録してみる。

fix(types): correct types when middleware return Promise #

詳しくないなりに難しいことをやっていると分かる。 Honoの実装は読んでみたい。型の天才達の叡智の結晶という感じがする。 重い言語サーバとの付き合い方はいろいろある。

insert modeでdiagnosticの発火を無効化にしたり、completionの発火をホワイトリスト的に制御するなどある1LSPの仕様は一度目を通しておくと面白い。 診断や補完ソースの制御は楽しい。

;; lsp.fnl
(doto vim.lsp.handlers
  (tset :textDocument/publishDiagnostics
        (vim.lsp.with vim.lsp.diagnostic.on_publish_diagnostics
          {:update_in_insert false})))

(fn min_keyword_length [ctx]
  (case ctx.trigger.initial_kind
    :trigger_character 0
    :manual 0
    _ 100))

Type instantiationについてはTSKaigi2024の解説が分かりやすかった。 Distributive Conditional Types, Template Literal Types, Generic Constraintsあたりはタダじゃないことを覚えておく。 コンパイラの気持ちになろう。

頻度の高くて軽いシグネチャを前に

関数の型パラメータの指定と仕様を分ける

Either的な型 #

僕が愛するニッチな言語F#を用いた本が 日本語に訳されるなど最近Railway Oriented Programming(ROP)がアツい。 ROPの提唱者のScott Wlaschinが関数型まつりで登壇するなど話題になった。 圏論は基礎教養になってきたと言える。lambda式みたくtraverseもあたりまえになっていくんじゃないだろうか2catsから履修するのが良さそう。

Kotlinの関数型ライブラリであるArrowの導入事例を聞くことも増えてきた。 先日開催されたJJUG CCC 2025 Fallでも型安全の文脈でセッションがあった3 Javaには無い拡張関数を使った軽量な記述は良さそうに思った。

user.right() // ← Right(user)になる

ライブラリが盛り上る中、言語レベルでRich Errorsというエラーハンドリング方法を設計しているらしい。

fun load(): User | NotFound

when (val user = load()) {
    is User -> println("Hello, ${user.name}")
    is NotFound -> println("Not found!")
}

Kotlinに対する所感 #

回りにKotlin愛好家が増えて情報を追うようになった。Kotlinは実運用上、特定のIDEでしか動かないので嫌いだ。 ただ界隈には複雑な問題に取り組んでいそうな人が多く、良質なノウハウを共有していることが多いように感じた。

関係無いけど面白かったスライド #

筋トレ問題、英会話問題、ホールケーキ問題。言語化の大切さは知られているが、命名が言語化のコアであろう。

アーキテクチャ #

Software Architecture Monday #

Oreilly本で有名なアーキテクトが月一ペースで動画投稿するシリーズ。 コンパクトなボリュームなので1日一本見られそう。

アーキテクチャConference 2025関連の投稿 #

先日開催された関連の投稿を見た。 永続化と切り離した"純粋"ドメインモデリング入門 - ステート、イベント、Deciderで始めるイミュータブルモデルの実装

FP, DDDの文脈でイベントソーシングの話題で盛り上ることが増えてきた。 学習コストは安い買い物。AI時代になって難しいことの定義も変わった。 EasyよりSimpleというのは有名な話だが、専門性を要求する高度な制約を課すスタイルが刺さる。

VimmerによるVimmer(になりたい人)のためのVim動画 #

IDE愛好家だった自分がVim墜ちしたのを思い出す名作だった。

僕をVim墜ちさせた動画。

今週のVim #

正確な表現では無いが、開いているファイル一覧を気にすることが無くなった。 Bufferlineの代わりにheirline.nvimを利用して 表示されているバッファについてだけWinbarで名前を表示するようにした。

vim