パーフェクトRailsで俺が書いた所について思うこといくつか

既に大きい書店の店頭には並んでいる所もあるようで、自分もアキバの書泉で現物を見てきました。
立ち読みして、ほほーうとやってる著者の図って感じです。

献本させていただいた方にも、既に届いていて読んだよーって言ってくれてる方がちらほら。
参考になったと言っていただけて、とても嬉しく思っています。

さて、今回はちょっと自分の担当した部分と思ってた事について少し書いてみたいと思います。

私が担当したのは、3章のアセットについてと4章のlibディレクトリ周り+Railsのロードパスについて、そして9章のモデル実践編みたいな所です。
一応それぞれありますが、主に言いたいのは9章についてですw

3章について

CoffeeとSassについて、どの程度解説するか非常に悩みました。
実際、書くとなるとリファレンスマニュアルを日本語で解説する、以上の事はページ数的にできない。
かといって、昨今のRailsアプリケーションでは欠かせない要素なので、解説しない訳にもいかない。
RubyとJS以外の他の言語から入ったって人は使ってないって話も聞くので、それなりに書いておいた方が良いとは思ったけど、ちょっとページ使い過ぎたのでは、と思っていたりします。


Sprocketsについては多少詳しく書いたつもり。
特にRailsの中の一要素ではなくて、アセットを管理するRackアプリであることを意識した書き方をしています。
いざアセット管理の詳しい所を更に突っ込んで知りたい場合、どこに当たるのが良いか、ということが伝わるといいなと思っています。
本当は、コンパイルエンジンが実際に何やってるのかとか書きたい気持ちもあったんですが、流石にそれ書いてどーすんだって感じでした。

4章について

一つの章にするにはコンパクト過ぎたような気もする。
しかし、実際仕事で書いたりしてると、ファイルの置き場所に非常に悩むような代物がしばしば登場してきます。
そういう時に取れる選択肢を解説しておきたかったので、1章分の形にしました。
この辺りのテクニックは、実は濫用するような状態になると結構負けフラグなのですが、かといって知らないとそれはそれでもっと辛い事になるかもしれませんので……。

9章について

ここを書くのが、私の中でメインの仕事だったと思っています。
Railsの肝はモデルを如何に上手く作るか、という所にかかっています。
しかし油断して、大丈夫だろーと思ってるとActiveRecordが肥大化して辛いことになる、というのもよくある話だと思います。
この章は、そういう事態を少しでもマシにするための選択肢を紹介する章です。
既に読んでくれた方からもらった感想によると、フルボディのワインのようなどっしりとしたマニアックさらしいですw


私なりに、役に立った知識や上手くいった事をいくつか書いたつもりですが、これが全て正しいのか、というとそんなことは全く無いと思っています。
Railsで取り得る選択肢の一つでしかないし、もっとハイレベルな人から見れば、何言ってんだこいつ?みたいな話もあるかもしれません。
もし、この本を読んでくれて、そして物申したいことがある人は、是非それをブログなどに書いて欲しいと思っています。
そうやって、色々な人が実際に取り組んでるやり方や考え方が、もっと世の中に広がっていってくれればいいなと思います。
そういう意見があれば、そこから私自身も更に勉強していきたい所存です。
なので、マサカリ投げたい人は遠慮なく投げてください。一応喰らう覚悟はしてますんで……。(ダメージを受け流せるわけではない)


そもそもRailsは、最近あちこちで使われてる割に、実際に仕事で開発するような中規模以上のアプリケーションになると、業務内容に直結してしまうので外に出せない情報が多いのですよ。しかも、コンテキストが共有できていない設計の断片は共有しようがない。
(Gemfileの情報交換するだけでも、すげー参考になるぐらい)
そういう理由もあって、書く内容の具体性を出すのに非常に苦労しました。サンプルコードとか理屈の通った説明をするのが、もうめっちゃ辛かった……。


自分自身もまだ試行錯誤段階を脱し切れていないので、勉強会で話す、とかならできるけど本に書くには勇気が出なかった内容とかもあります。
Refinementの活用とか、コレクションオブジェクトとValidatorの組み合わせとか。
というか実際、この章書くの、表向きはちゃんと自信持って書いてますよ、ってポーズを取るのが著者の責任ってものだろうとは思うんですが、実際の所、なんて言うかアレですよ……。
まあ、この日記読むような人は、多少気持ちを分かってくれると思います……。


というわけで、色々と思う所ありながら書いてたわけですが、実際私が書いてみたかったのは9章みたいな話だったので、何とか書けて良かったなーって所です。
他に売ってるRailsの入門系の本とは違う差別化要因になってるはずですが、これが吉となるか凶となるか……bkbkしながらTwitterを眺めています。