概要
- Babashka Conf と Dutch Clojure Days への参加告知
- プロジェクトの進め方と 成功基準の重要性 の考察
- スコープの肥大化 とYAGNI原則の再認識
- 構造的diffツール に関する調査と知見の共有
- 学びと実践のバランス への個人的な悩みと気づき
Babashka Conf・Dutch Clojure Days参加とプロジェクト進行の悩み
- Babashka Conf(5月8日)、 Dutch Clojure Days(5月9日) に参加予定
- 参加者や Amsterdam滞在者 との交流呼びかけ
- プロジェクト着手時、2つの方向性に分かれる傾向
- 即実行型 :そのまま作り上げ、満足するパターン
- 先行事例調査型 :既存事例を調べてスコープ拡大に悩むパターン
- 成功基準の明確化 がプロジェクト満足度に直結
- 最近の例:友人と 木工プロジェクト を週末で完遂
- 目的は「友人と木工を楽しむこと」
- 必要以上に完成度や汎用性を求めず、 体験重視 で満足
スコープ肥大化とYAGNI原則の再認識
- difftastic の精度不満から、構造/意味的diffツールを調査
- 既存ツール調査に 数時間消費 し、目的を見失いかける
- 最終的に「 Emacs用の自分向けdiffワークフロー」という最小目標に立ち返る
- YAGNI(You Ain't Gonna Need It) 原則の再理解
- LLMでFinda風ファイル検索を実装→余計な機能追加で複雑化
- 本当に必要な機能 だけに絞ることで、満足度と効率を両立
長期的な興味と学びのジレンマ
- ハードウェアプロトタイピング用UI
- ClojureとRustの良さを融合した言語
- CAD向け言語設計
- いずれもリサーチや試作に多大な時間を投入
- 成果物に至らず、知識習得だけが進行
- 成功基準が曖昧 なため、満足感が得にくい
- 「やってみる」ことの価値 を再認識
- 失敗や未完成でも、実践が学びや充実感に直結
構造的diffツール調査まとめ
- 従来のdiff :行単位での差分表示(+/-記号等)
- 問題点 :関数や型などの高次構造を認識できない
- difftastic :treesitterベースで構造的diffを実現
- ただし、エンティティのマッチング精度に課題
- semanticdiff.com :VSCodeプラグイン・Webアプリで高精度なsemantic diffを提供
- コードライブラリの提供は無し
- diffsitter :treesitter利用、MCPサーバー必須
- Gumtree :Java依存、アルゴリズムの高速性と精度の課題
- mergiraf/weave :Rust製、treesitterベースのマージドライバ
- Gumtreeアルゴリズムや独自工夫あり
- diffast :ASTのツリー編集距離計算(Python/Java/Verilog/Fortran/C/C++対応)
- autochrome :Clojure向け、動的計画法によるdiff
- Tristan Humeの記事 :ツリーディフアルゴリズム設計の詳細解説
- 主な用途 :LLM生成コードのターンごとのレビュー用
学びと実践のバランスへの気づき
- 考えすぎず、手を動かすこと の重要性
- スコープを絞り、「 まずやってみる」姿勢の再評価
- 失敗や未完成でも、実践が最良の学び につながるという実感