InfoMessengerの開発に要した時間

大体、フルタイムに換算して、18カ月くらい。1年半。
そのほとんどは実は調査と思考に費やされた。
コードの書き直しや無駄になったコードは3割くらいか。

調査と思考が大量に必要になった最大の原因は情報不足である。

Webサービス一般の設計パタン、Webサービスのセキュリティ対策、
Websocketの設計パタン、チャットサービスの設計パタン、
Tomcatサーバーの設定方法、サーブレットAPIの機能、
HTML5、CSS3の新機能、レスポンシブデザインの設計パタン、
ファイルアップロードの設計パタン、メール送信の設計パタン、
DBのテーブル設計の設計パタン、など。

上記の情報が全て適切な正解案として最初に与えられた場合、どうだったか。
フルタイムで6カ月で完成するだろう。(もちろん1人月換算)

もっとも、近年になってやっと公開された情報も多い。
Qiita、書籍、などで一般公開された情報も多い。
それまではWebサービスの設計パタンの情報は企業機密で表に出ないのがほとんどだった。
OSSのWebサービスのコードは存在したが、そこから設計パタンを読み解くのは相当な労力がかかる。
実際に稼働しているWebサービスの設計がどうなっているのかは現在でも企業機密である。

Webフレームワークは実は設計パタンに関してはレイヤーが違うので役に立たない。
書籍も入門用がほとんどで、設計パタンを解説した本はほとんど存在しない。
というか全く存在していない。

つまり、公開可能なWebサービスを作るための設計パタンの情報は実は未だに一般化されていないのだ。
Qiita、開発者BLOG、書籍、などで部分的には明らかになっているものの、全体的なアーキテクチャや設計パタンとなると、全くの情報不足に陥る。
これが普通の開発者がWebサービスを作れない最大の理由である。

Ruby On Rails はそのままWebサービスとして公開可能なフレームワークに近いのかもしれない。
私には経験がないので推測になってしまうのだが、そのように見える。
しかし、正しい設計パタンの知識がなければ、RORがそのまま使えるのかどうかの判定もできない。

無論、私が正しい設計パタンを知っているのかというとその確証もない。
そもそも設計パタンの情報がほとんど表に出てきていないのだから、判定するための基準はない。
自分の知識と思考で最大限正しい可能性の高い設計パタンを選択するしかない。

いづれ、Webサービスの設計パタンの知識が流通するようになるだろう。
それは企業からではなく、個人開発者が書いた書籍かサイトが発信源になるはずだ。
欧米の個人開発者の可能性が極めて高い。
設計パタンの知識が一般化した後に、極めて優れたWebフレームワークが登場するだろう。
それがどのプログラム言語になるかは分からないが。