プログラミング書籍を10年ぶりに改訂して気がついたこと
はじめに
2011年に書いた良いコードを書く技術を増補改訂して出版しました。
Amazon | Rakutenブックス | honto | ヨドバシ.com | Gihyo Direct
10年ぶりに書籍を技術書を改定するという貴重な体験をさせていただいたので、執筆の中で気がついたことをご紹介します。
ちなみに初版を執筆した10年前はこんな世界です😳
- VS Codeは存在せず、みんな秀丸やEmacs、vim、Eclipseでコードを書いていた
- Java 7が出てたけど、Java 8まではあと3年待たないと行けない
- TypeScriptもGo言語もSwiftもリリースされていない
- AWSの東京リージョンができたばかりでクラウドって何?って世界
- GitはまだマイナーでSubversionでバージョン管理している人が多かった
- Dockerはまだない、VirtualBoxやVMwareを使ってた
- PythonとJavaScriptの躍進を想像できていた人は少ない
このような変化の中で改訂の中で変わったこと、変わらなかったことは次のようなことです。
基礎、基本は10年経っても変わらず
改訂にあたってかなりの部分を書き直すことになるのではないかと思い、恐る恐る初版の原稿を確認してみましたが、基礎、基本に当たる部分の書き直しの必要がありませんでした。具体的には以下の章は部分的な修正のみでほとんど変更していません。
- 3章 名前付け
- 4章 スコープ
- 5章 コードの分割
- 6章 コードの集約
- 8章 コードのパフォーマンス
- 9章 ユニットテスト
- 10章 抽象化
基礎、基本はやはり重要ですね。改訂版では基礎、基本の要素として「7章 データ構造」を新たに追加しています。
本質的じゃないテクは陳腐化
本質的ではないテクは陳腐化して書き直す必要がありました。
例えば外部DSLによるメタプログラミングの題材として使った「Excelでデータ定義をおこない、それを読み取り処理を実行する」という例です。このような仕組みはあまり本質的なテクニックではなく、デバッグ等も難しいため、最近ではほとんど使用されていないのではないかと思います。
この部分は今回の改訂で「内部DSLによるメタプログラミング」に内容を大幅に書き換えました。
Javaの後方互換性すご、サンプルが最新のJavaでもほぼ動く
初版のサンプルコードはJava 6が対象でしたがほとんどのサンプルがそのまま最新のJava 15でも動作しました。Javaの後方互換性は素晴らしい!
ビルドツールやライブラリ、開発環境は移り変わり激しい
ビルドツールやライブラリ、開発環境の移り変わりは激しく、そのあたりの修正が大変でした。このあたりはある程度息が長そうなものを選びつつ変わっていくものだという割り切りが必要だと思います。
WebフレームワークはSeasar/CubbyからSpring Bootに、ビルドツールはMavenからGradleに置き換えるなどしました。
参照リンクほとんどデッドリンクに
半分以上の参照リンクはページがなくなってリンク切れになっていました。パーマリンクとは・・・🤔
参考書籍は入手困難に
参考図書は技術書という特性もあり絶版になったり、Amazonで高額で取引されていて入手困難になっていました。このあたりは電子書籍が増えて、過去の技術書も入手できるようになることを望みます。
おわりに
改訂版がこれからの10年間陳腐化しない内容となり、みなさまのお役に立てれば幸いです😊
Discussion