uehaj's blog

Grな日々 - GroovyとかGrailsとかElmとかRustとかHaskellとかReactとかFregeとかJavaとか -

ビューティフル・アーキテクチャ

ビューティフルアーキテクチャ

オライリージャパン
売り上げランキング: 87474
おすすめ度の平均: 4.0
4 1章が価値高い

この本買ってみました。
おもしろすぐるです。

たかだか、この十数年だと思うのですが、WEBやインターネットの隆盛の元で「3階層アーキテクチャ」「MVC2」といったWebアプリケーションを中心としたソフトウェアアーキテクチャが非常な人気を得ることとなり、普及してきています。

この状況下で、特にSIerとよばれるソフトウェア開発企業群は、Webアプリケーションを開発するための、組織としての効率化/自己最適化を行った結果、本来は多様であるはずのアーキテクチャを鍛えて練り上げ、作り上げる力を失ってきている場合もあるんじゃないでしょうか。ひょっとすると、「なんでもWebシステムにしておけ」的な雰囲気もある気がしています。この傾向は、Java開発をメインとする企業では特にそうかもしれません。イントラネット向け業務システムの開発が多い場合は特にそうかもしれません。OSSフレームワークを活用しようとすればするほどそうかもしれません。二次請け、三次請けと言った多階層の発注構造の元ではさらに特にそうかもしれません。オフショア開発とかだとさらに拍車がかかるかもしれません。短期開発だと(〃)受託開発だと(以下略)

効率化/コスト削減の美名の元になされた(それ自体は経済合理性の問題として間違いとは言えない)それらの数々の選択によって、アーキテクチャの多様さの可能性を捨て、同種同様のシステムを低スキルのメンバで受託開発し低コスト化を期するような開発組織体質を目指し過ぎてしまってたかもしれません。

しかしながら、本来、用途や目的に応じて多様なアーキテクチャが選択され構築されてきたのがソフトウェアの歴史上の常であり、むしろそれが本来の姿であり、個々の案件に特化した優れたアーキテクチャを発想し作りだす、という能力がエンジニアにとっておろそかにされてしまってきた傾向があったかもしれません(いや、どこが、とかじゃ無くて、あくまで一般論として・・。)。

Web+DBの3階層モデルもRDBMSも無期限に続くものでもないし、当然万能でもないし、そろそろほころびや限界を迎えつつある、と見てもおかしくありません。なのにそれに過剰に適応しすぎたことが、職業プログラマSIerと呼ばれる企業群の技術力を蝕み退化させる要素があったかもしれません。来るべきアーキテクチャ激動の時代を乗り越えるためには、アーキテクチャにフォーカスを置くべき。見直すべき。

とか熱い人なら言い出しかねぬ*1、この一冊。

いやこれはソフトウェア開発に愛着を持つ人なら目次見るだけでくらくらと脊髄反射で買うでしょうという本でした。読み終わるのがもったいない*2

目次からちょっと抜粋すると

  • 4章 メモリーを作る - Michael Nygard
  • 7章 Xenと仮想化の美 - Derek Murray/ Keir Fraser
  • 9章 JPC:ピュアJavax86 PCエミュレータ - Rhys Newman/ Christopher Dennis
  • 10章 Jikes RVM:メタサーキュラーな仮想マシンの威力 - Ian Rogers/ Dave Grove
  • 11章 GNU Emacs:漸進的機能追加方式が持つ力 - Jim Blandy

どうですか!(と言っても困ると思うけど)
はい、これだけで3千円出しますーと私は思った。安くていいですね。出版社も売れると見てるのでしょう。

*1:水を差すために皮肉な見方として言うと、これって「ソフト開発の神髄の一番面白いところ」を苦労無しでつまみ食いでエンターテイメントとして読めるってことなんですよね。「いいなーこういう開発したいなー」と思って読む。「タイガーウッズのプレーを見て喜ぶ一般ゴルファー」ってところか。そんな見方をすると悲しいけども、実際に役に立つ気が、する・・ような。

*2:実は、今日昼休みに買って、ちょい飛ばし読みで読んでまだ7章までしか読んでないのです。本当は読み終わってから感想書くべきなんでしょうが、経験上、読み終わってからだと、エントリ書く気力が薄れることが多いんですよね。読んでる途中の方が「この感想を誰かに伝えたい!!」という気分が高まる。だから読み終わる前に書いております。ご了承を。