幡ヶ谷亭直吉ブログ

娘のここねと格闘するエンジニア。

『JavaScriptで数値を漢数字に変換する本』を読んで ~ プログラミングの楽しさを思い出す

読書メモ。2025年61冊目。
JavaScriptで数値を漢数字に変換する本』を読んでの感想となります。(2025/9/3記載)

本の概要

「4桁の数値を漢数字の文字列に変換する」という簡単な課題に対し,JavaScriptの様々な機能を駆使して解決策のバリエーションを考えます。

実際にあったまずいコード例の紹介から,一般的なループを使う方法,ループを使わない方法,再帰による方法などを示し,コードの改良,実行速度の評価を行います。

さらに,スクリプトらしい文字列処理による方法,1回の正規表現の実行で実現する(実用性は疑問な)方法を挙げ,色々な高速化手法の適用と評価を行います。

2018年のC94で頒布した同名書籍のリニューアル版にあたります。
全般的にES6以降のECMAScriptへの対応、評価環境の変更を行いました。16章以降は新規に追加された内容です。

引用:

booth.pm

動機

本書からの学び

プログラミングの知識を得る楽しさを思い出しました。

チーム開発の現場においては形式知より経験が重視されがちで、さらに生成AIの登場により「どう作るか」より「何を、なぜ作るか」に焦点が当たる場面が増えています。
その中で、プログラミングの理解を深めるには、ひとつのコードをさまざまに書き換えて試し、手を動かして確かめることの楽しさを改めて思い出しました。

ただ数値を漢数字に変換するという単純な仕様に対して、100ページ以上にわたってひたすら作り方を突き詰めた本書は、数値が漢数字に変換されること以上に大きな刺激と学びがありました。
JavaScriptの言語仕様として押さえておきたい内容ももちろんありましたが、それ以上にただひたすらどう作れるかという知的探求に共感しました。

そして、文章が好きでした。読んでいて面白い。
プログラミングの楽しさを思い出させてくれた一冊でした。

忘れたくないメモ

本書で特に印象に残ったポイントをふりかえります。

創造的なコーディングを楽しむ

コーディングは、決められた仕様をただ満足するように書く退屈な作業でなく、様々な可能性を追求し、 種々のトレードオフを加味し、沢山の選択肢の中から最も適したものを選んで実現するという、創造的で楽しいもののはずである。

創造的なコーディングを楽しむことをずっと大事にしたい。

動かない脳内プログラムよりも、動くヘボプログラムの方がはるかに良い

一般に、問題に対して即座に単純な解法を思いつくことはめったにないことである。普通はアドホックな解法を実践してから、漸進的に改良していくことになる。初めからより良い解法がないか探索するよりも、とりあえず動く実装を用意しておいて、後から空いた時間に改良するようにすると、精神的に楽である。
実際には納期に追われ、最初のヘボい実装が世の中に流れてしまうことがある。冒頭のコードはまさにその例である。しかし、動かない脳内プログラムよりも、動くヘボプログラムの方がはるかに良い。それに、実際には、改良の必要など無いケースが多い。プログラムにおいて遅延実行が重要なように、コーディングにも遅延改良は重要なテクニックなのである。

一気に完成品を作らない。作った後にリファクタをする。
ただ、リファクタに拘泥はしない。
機能はデプロイしなことには価値を得ない。