Added Range Formatting support and some bug fixes to rucoa, the language server implementation I'm recently working on.

The next plan is to add some configuration so that users can disable some features or the entire features in their workspace in case.

この日記も作業ログとしてただ書き連ねているけど、TIL (Today I Learned) 寄りの表現で書いた方が自分にとって良いような気がしてきている。というのも、人に教える体裁で記述して始めて身に付いている実感が付くためだ。また副次的効果として、単純に作業ログが書き連ねられているよりも、たまたまこの文章を見かける第三者にとって、幾分読みやすいものになるだろうという淡い目論見もある。

今日は書籍 "Clean Craftsmanship" を読み終えた。これ系の書籍の総集編まとめ令和最新版という内容だった。Clean Codeとかアジャイル何とかを読んだことがある人にとっては、大体同じようなことが書いてあるように感じられるかもしれない。著者自身もそのように語っていた。

本書はTDD激推しの本で、一言でいうと、テストの重要性を2022年の見地からあらためてまとめてくれた本。

テストの効能として、主にプログラムの本質を見つけ出していくための道具としての側面と、プログラマーが規律を示すための道具としての側面の二つに分けて説明がなされているように思う。

規律の話に関して、TDDというのは会計における複式簿記と同じものであるという認識が語られていた。実装とテストとがバランスシート構成するような関係性になっている。複式簿記は数百年前に発明され、現在ではそれが法律上で運用される程度には深く浸透している。テストもソフトウェア開発においてはそれに近い存在となっていくだろうという話。

いまはソフトウェア開発は混沌とした状況で、不具合が含まれていて当たり前みたいな状況だけれど、社会のソフトウェアへの依存は増すばかりであり、ソフトウェアの不具合が社会に及ぼす影響が近いうちに無視できない規模にまで膨れ上がっているということに、人々が気付き始めるだろう。そして、しっかりとしたテストの必要性が大きく叫ばれるようになっていき、それをつくるプログラマーには規律が求められるようになっていくだろう。そうなっていくと、テストが徐々にバランスシートのような扱いになっていくだろうし、プログラマーはよりテストに重きを置くようにせねばならない、という話だった。