岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

これが私の考える「アーキテクチャ」だ

アーキテクチャ」という言葉を下記のように理解してかまわないのでしょうか。

たとえば Ruby on Rails が、Merb でも Sinatra でもない、現在の Ruby on Rails のような形になるにあたって下されたであろう設計判断の総体、および「現在の Ruby on Rails のような形」という言葉をきいた開発者の脳裏に浮かぶであろう構造、それらを合わせて「Ruby on Railsアーキテクチャ」とよぶ。

簡単にいえば「設計思想+構造」となるのでしょうが、それだけだとイメージしにくいので、もう少し分かりやすく定義してみたつもりです。

アーキテクチャ」の定義について考えはじめたきっかけは、前々回の日記にいただいた、id:yoheiさんのコメントでした。

Smalltalkアーキテクチャじゃなくてプログラミング言語です

私は Smalltalkアーキテクチャの一種だと思っていたんですね。いや、もちろんプログラミング言語であることは知っていますが、アーキテクチャとよんでも差しつかえないと思っていたわけです。

「じゃあアーキテクチャって何なの?」と、定義がずばり書かれているらしい「ソフトウェアアーキテクチャって何なの?(前編) (1/3) - ITmedia エンタープライズ」を読んでみたんですが、難解な哲学書みたいで、さっぱり理解できませんでした。同様の感想が「アーキテクチャとは何であろう - ぼそっと」という記事に書かれているので、似たような方も多いのではないかと思います。

ほかにも定義を探してみたんですが、結局いちばん理解しやすかったのは、IT用語辞典バイナリによるものでした。

アーキテクチャとは、あくまでも設計思想、設計方式、基本設計、構築様式などを指す言葉であり、個別具体的な実装そのものや、個々の規約を指すものではない。このため、例えば通信の個別の規約(HTTP等)については、プロトコルのような他の語を用いる。

アーキテクチャとは (architecture): - IT用語辞典バイナリ

で、これを私なりに言い換えると、冒頭に掲げた定義になります。例によって間違っているかもしれませんので、お気づきの方はご指摘いただけると幸いです。