RailsユーザーからRailsエンジニアへ

最近、Railsを使い始めた。 前回のエントリーでも書いた通り、Railsはそこらのフルスタックフレームワークよりもフルスタックで、学習コストが高いと思う。

railsコマンドによるコードの自動生成や、多くのrakeタスク、存在価値がわからないViewHelperなど、DHH氏の考えたWebアプリケーション開発をするレールが敷かれている。 DHH氏曰く、「Rails is omakase」で、"Railsユーザー"は氏の考えに文句を言ってはいけない(嫌なら使わなければいい)。

Railsアプリを自分好みに作りこんでいく、DHH氏の手の上で踊らないようにするにはどうすればいいか。

最終的にはRailsソースコードを読むところに行き着くが、そのためにはRubyの言語仕様とRackについての理解を深めるべきだと思う。そりゃそうか。

Rubyの言語仕様を勉強するのは当たり前として、Rack(というかWSGI)の思想や概念を知って、Rackアプリケーションやミドルウェアがどう定義されているのかを理解すべきである。 この図が何を示しているいるのかがわかるぐらいには。また、RubyGemsには多くの便利なライブラリ、ツールが登録されていて、それらの実装を見てみるといいと思う。

Railsを含めRubyフレームワークは、Rackとgemのおかげでカスタマイズしやすいと思っている。 PHPの場合だと、PHPはWebアプリ開発に特化した言語であり、言語レベルで専用の機能(スーパーグローバル変数等)を持っているため、Webサーバーとの間にミドルウェアを挟みにくい。また、Composer+Packagistもgemと比べて貧弱なように思う。

なんか偉そうなことを書いたけど、自分自身まだまだ勉強不足なので精進していきたい。

コンテンツ消費者から技術者へ

RailsユーザーからRailsエンジニアへ、というタイトルだが、これはどんな技術についても言うことができる。 僕がぱっと思いついたのは、僕のまわりにいるiOSAndroid等のスマホエンジニアだ。

彼らは、XcodeEclipseの使い方に習熟していてGUIの操作でViewを組み立てるし、SDKにも詳しい。 僕はネイティブのフロントを書けないので、本当に尊敬している。 でも、彼らを見て思うのが(学生だからだと思うけど)、IDESDKの機能にはないことができないということだ。

彼らはXcodeというツールを使っている、コンテンツを消費しているだけの人で、モノを作ることはできるけど、技術者ではないように思える。クリエイターっていう表現の方が近い。

別にそれがいけないことだとは全く思ってないけど、なんだかもやもやして、ウッってなったから書いた。

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)