Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@quvox

アーキテクチャってなんだろう

More than 1 year has passed since last update.

つい最近、何かの集まりかなにかで、「このシステムのアーキテクチャがどうのこうの、、、」みたいな話を聞きました。なんだか違和感を感じたのと、そういえば自分も昔いろいろ言われたことがあったなと思い出したので、コンセプチュアルになってしまいますが記事を書いてみます。

違和感は何だったか

システムアーキテクチャをシステム設計みたいな言葉と同義で使われていた気がしたのです。

アーキテクチャは設計(デザイン)では無いはずです。

アーキテクチャは、何ができて(得意で)、何ができないか(不得意か)、ということを表し、そういう特性を持つものはこういう考え方で作られるべきである、という指針を与えるものです(ITシステム以外の、例えば建築の分野でも全く同じ解釈ができるかわからないのですが)。

つまり、アーキテクチャが示す指針に基づいてシステムを設計する、ということになります。指針と設計がバラバラだとイケてないシステムが出来上がります。

ちょっと古い例になりますが、マイクロサービスアーキテクチャで行こうと決めたのに、機能の粒度や分割方法(つまり設計)がまずくて地獄が待っていた、とかでしょうか。こういう例の場合、そもそもアーキテクチャの選択を間違ったのか、その後の設計がまずかったのか、なんとも言えません。なんでもできる万能のアーキテクチャというのは普通はありえなくて、あるアーキテクチャを選択すると、何かができない、または不得意になります。テクノロジーの進化で不得意度合いが軽減されることはありますが、できない/不得意なことをちゃんと認識することが、まずはじめに大事なことだと思います。

まとめ

改めて言われるまでもない、と怒られるかもしれませんね。。また、これがわかったら何か良いことがあるかと言われると、悪いことは無いはずだ、という程度のものかもしれません。それと、ここに書くことが絶対の答えでもないとは思っています。

ただ、システムの作りを階層的に俯瞰するときに、最上位にくるものがきっとアーキテクチャになるので、理解は深まりそうな気がします。

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
quvox
通信会社研究所での研究&同事業部でのプロマネを経て研究開発系スタートアップを創業しました
zettant
ブロックチェーン、セキュリティ、ネットワークなどに関連する技術の研究開発・サービス開発を行うスタートアップ

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?