はじめに
私は1年目のエンジニアとして、保守性や拡張性を意識したコーディングができるようになりたいと思っていた。そんな私にとってこの本は発売前から非常に魅力的であった。
たまたま外出中の妻に池袋のジュンク堂へ寄ってもらい、先行発売されていたこの本を無事ご購入。一応トークイベントまでに一読は済ませていた。
以下では基本的にはトークイベントでの学びを書いていくが、若干本の内容にも言及している。
意外と設計をするということが当たり前になっていない
著者の仙塲さん(以下、ミノ駆動さん)のお話を聞いてとても意外に思ったのが、設計やリファクタリングに対してネガティブな印象を持つ人が結構存在するということである。
良い設計をしていこうというムーブはエンジニア界にまだまだ浸透していないようなのだ。
私はこれまで勝手に、クリーンアーキテクチャなどの設計やリーダブルコードといった知識は、エンジニアにとって普通に知っているべき内容だと思っていた。
スライドでは「そもそも変更容易性すら認識されているか疑問」であるとも書かれていた。衝撃的だった。
人間にも悪魔は取り憑く
ミノ駆動さんは昔、自身が一生懸命リファクタしたコードを、後日別の人によって元の悪しきコードに書き直されるといういわば「逆リファクタリング」を経験したことがあるとお話しされていた。
ところで、この本にはよく「悪魔」という言葉が出てくる。
本の冒頭に
本書では、開発力をおとしめ、ソフトウェアの成長を阻害する、設計や実装上の問題を「悪魔」とたとえます。
というふうに書かれている。
悪しきコードや設計が「悪魔」と例えられているが、逆リファクタリングを行ったエンジニアもまた悪魔的である。
コーディングの理想形を知らないというのに加えて、自分がよくわかっていない、理解できないものに対する抵抗感というのも悪魔を産む要因の一つとなっているのかもしれない。
ならばシンプルにこの本などでコードの理想形やアンチパターンを知ることでこのような惨状を防げるのではと思いきや、結構問題は複雑な模様。
会社の文化や仲間達の価値観といった環境によって悪魔が飼い慣らされる可能性もある。
これは「仲間を増やす本」である
「仲間を増やす本」というのは、zoomのコメントの中でとてもいいフレーズだなと思い、引用させていただいた。
組織内において、一人が設計に対して意欲的だったとしても他のメンバーが消極的ならあまり効果的ではない。ミノ駆動さんが昔社内で設計をもっと良くしていきたいという話をしたら「学者風情」などと罵られうまく話が進まなかったというようなお話しがあった。
これは設計を良くしていこうという仲間がいれば起きなかったはずである。
この本によって、エンジニア界全体に設計を浸透させていきたいという趣旨のお話もあった。
私も、この本でもっと勉強して「仲間」になれるように頑張りたい。
あなたには現状を打破する力がある
最近読んだ達人プログラマーから引用した。ミノ駆動さんのリファクタリングを反対された話をきいてパッとこのフレーズが思い浮かんだ。
リファクタリングによって開発スピードが落ちるというのも理解できる。
しかし、だからといって何もしないのではなく、どうしたらより良い設計やコーディングができるかを少しでも考える努力をすることが大事だと思った。
アプリケーションアーキテクト面白そう
個人的に、今後のキャリアパスの方向性の一つとしてアプリケーションアーキテクトを知ることができてとてもよかった。
技術的負債によって経済的損失が生まれる
2025年以降、技術的負債によって年間12兆円もの経済損失があるという。アーキテクトとして技術的負債をなくすべく働くこと自体に社会貢献性がある。
エンジニアとしての知識、経験といった持てる力の全てを設計に落とし込んでいくプロセスが楽しそう
本の最後の方でミノ駆動さんが設計にのめり込んでいった経緯が語られるところがある。
複雑で混乱したロジックがきれいに整頓されていく有様があまりにもおもしろかった
ということが書いてあって、とてもやりがいがありそうだなと思った。
負けず嫌いな性分が活きそう
ミノ駆動さんは自身が負けず嫌いだったからこそ悪しきコードたちと戦い続けることができたのではないだろうかとお話しされていた。
設計に対する意識が低い人たちや悪しきコードとの戦いは、一筋縄にはいかないと思う。それでも周囲の環境や、自分自身に負けたくないという気持ちを持って、逆境を乗り越えていくプロセスを楽しめるのだと思う。
そういったチャレンジングな日々を過ごしてみたいと心から思えた。