40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

エンタープライズRails

自分は、ITエンジニアの求職者向けに仕事を紹介する立場の人間なので、実際に開発する立場ではないですが、実際読み終えて感じたのは、BtoCだろうが、BtoBだろうが、小規模ではないWebアプリケーション開発にかかわる人が必要とするであろうスキルというのが垣間見えた感じがします。

小規模なWebアプリとエンタープライズなWebアプリ

何を持って小規模とするかは、明確な定義がないと思いますが、ひとまず

  • Webアプリを使う人
  • そのサイトの開発側の人(Webアプリの開発をしたエンジニア、サイトデザインを担当したWebデザイナー

という立場の人が関わるWebアプリを小規模なものと仮定します。

こういうWebアプリであれば、一定の技術スキルを持った人がいればある程度すばやく開発する事ができると思いますし、実際世の中で稼動しているWebアプリにはこれに該当するものがあるかと思います。

ところが何らかの理由によって、Webアプリを使う人とそのサイトの開発側の人に加えて

  • 営業・マーケティング的な立場の人
  • 経営的な立場の人
  • Webアプリのサーバ管理をするサーバエンジニアな人

というような人が関与してくるようになると

「お客さん向けの提案資料にしっかりとした数字を盛り込みたいので、アクセス解析機能が欲しい」
ISMSの対応を考えると、データの完全性、機密性なんかはどうなの?」
「障害発生時のことを考えると、アプリケーション部分なのか、ミドルウェア部分なのか、OSに起因するものなのか的確に切り分けしたいので、アプリ側でもログを吐くようにしてほしい」

っていうような話がきっと出てくると思います。

最初作り始めたWebアプリで、こういう事を想定して作っているケースというのは想像するにあまり無いのかと思いますし、実際こういう要望が出てから頭を悩ますということになるのかと思います

こうなると、すでに小規模なWebアプリではなくなり、エンタープライズなWebアプリと考え始めても決して間違いではないのかなと本書を読み終えて漠然と思いました。

砦としてのデータベース

どのRDBMSが良い・悪いというのは無く教科書的に言えば全ては適材適所だと思いますが、本書を読み終えて少なくとも1つ思ったのは、エンタープライズな規模のWebアプリのRDBMSとしてPostgreSQLってマッチするんだなということ。

何故そう思ったのかというと、

エンタープライズレベルのアプリケーションには、参照整合性と完成度の高いRDBMSなら利用可能なたくさんの機能(例えば、ビュー、トランザクション、トリガー、独立性など)が不可欠なので、MySQLはバージョン5.0でこれらの機能を追加した。そのため、MySQLにないからといって、それが不要だという主張はもう通らない。今のMySQLには、その機能がある。なぜならば、それが必要だったからだ。

という個所を読んだから。

小規模なWebアプリの場合、別にRDBMS固有の機能についてそこまで深く考えなくても良さそうな気がしますが、エンタープライズなWebアプリになってくると、アプリケーションレベルで実装するよりは、RDBMS側で処理したほうが良いことっていうのもあるでしょうし上記引用したような機能というのは無いと困るという状況になるんでしょうね(たぶん)

そう考えると、求人情報で漠然とですが「RDBMS詳しい人」っていうのは、具体的にこういう機能がどういう状況下で必要とされているのかを判断できる人なのかなと感じました。