Webアプリケーション設計・実装のためのフレームワーク活用の技術(1)

Webアプリケーション設計・実装のためのフレームワーク活用の技術

フレームワークの勉強中。


色々なところで耳にする言葉だとおもいます。
特に良く聞くのは「良いところは便利すぎるところ、悪いところは(便利すぎて)開発スキルが身につかなくなるところ」ということ。利便性とその代償が取り沙汰されている気がしました。


最近まで読んでいた「プロになるためのWeb技術入門」でも、Javaフレームワークとして有名なStrutsの活用例が紹介されていました。標準的なフレームワークなので、これ使って雰囲気感じ取ってよ、という意味合いです。


「プロに〜」を読んで分かった気になったものの、会社で使う予定のSeasar2というフレームワークを調べてみたらDIコンテナやAOPなど、意味不明な言葉が多すぎたために、根本的に勉強してみようと思い立ちました。


■本書の立ち位置

フレームワークを使えば簡単にアプリを作れる。
⇒そのせいか基礎的な学習を怠りがちな人が増えた。
フレームワークは万能の利器ではない。構造的な長所・欠点がある。
⇒内部処理を詳細に記すことで、何を便利にしているのか表す。
⇒基礎的な学習を学ばせる。
⇒エンジニアの技術水準を上げる。


フレームワークは通常のプログラムで書けることを簡単な記述で省略している。でも場合によっては省いちゃいけないものまで省いている。状況ごとの使い分けが下手だとフレームワークを使うことが逆効果となりかねない。
じゃあ状況の使い分けはどうやってするのか。それは内部処理を理解し、状況と対策の見極めをすることで。
そのあとにやっと対策にあったフレームワークを選定する、ということをみんなにできるようになってほしいのが著者の望みだと思いました。


■一章はここまで
一章はフレームワーク概要というより、フレームワークをもちいらざるを得ないソフトウェア業界の現状に主眼を置いています。
内部処理まで見ないでアプリを作れることが、内部処理への興味を失わせた。非常に納得できる言葉でした(といっても現場を見て言ったわけじゃないんですが……)。
上記のとおり、一章は本書の立ち位置を説明することに終始していると言っていいでしょう。必要性を説明されて、モチベーションが上がりましたので良い出だしだと思います。


■慢性的な人材不足
一章ではフレームワークだけでなく、IT業界が慢性的に抱えている「人材不足」という問題を絡めて話を進められますが、何度も言うように強調されるのは「エンジニアに必要なのは基礎知識」ということです。


Java(C,C++,Ruby,etc...)という技術を必要十分に使えるというのであれば、その技術の前提となる技術についても理解しなければなりません。言語ごとの技術と言語を支える技術は別になっています。
開発者にその基礎技術(オブジェクト指向アルゴリズム、HTTPプロトコル,etc...)が備わっているかは現場で評価しづらいことが、適材適所を不能にし、人材不足ともつながるようです。
基礎技術はスポーツでいうと基礎筋力のようなもので、野球するにしろサッカーするにしろ必要な共通的な能力と似ていると思いました。
つまり、小手先がうまくても基礎がなければ応用もできないのでいつか問題となる、ということです。この基礎技術の不足が評価しづらいので、現場では危機感は覚えにくいかもしれないが、現状を正確に把握して技術の向上に励んでほしい、というのが著者の訴えるところだと思います。


というわけでたゆまず勉強しましょう。