Lo-Fi Memories

酒と音楽と技術

on Railsニキ

俺PHPerなんだが。いずれ対峙するとは感じていたが、まさかこんなに早いとは…
ゼロ知識でも勝手にアサインのがインターンの良いところ。社員だったら責任重く感じてフレキシブルにできないと思う。

Railsチュートリアルをやる

何かと有名なこのサイト。1週間くらいで全章やってみた。
全部やれば「Twitterモドキ」がつくれる。

railstutorial.jp

ことはじめ

ローカル環境にApacheは立ってるので、Railsを動かすにはApacheにPassengerモジュール突っ込めばいいっぽい。
でもせっかくだし、Vagrant使ってローカル汚さず仮想環境でやってみた。結果むしろめんどい感じになったがvagrantに慣れるという意味ではよかったと思う(思いたい)。

いい感じに環境設定できてるBOXを探す。あった。

GitHub - rails/rails-dev-box: A virtual machine for Ruby on Rails core development

rbenvがなかったので、apt-getとかでinstallして2.3系に変更。ちなみにrailsの最新は5系らしいが、チュートリアルだと4系の解説だったので、そちらで行なった。

サーバーはrailsに入ってるやつ(WEBrick)

rails server -b 0.0.0.0

バインドオプションつけて、ブラウザから http://localhost:3000 にて確認しろーってチュートリアルにはあるが、いちいち面倒なので、.bashrcのaliasesあたりに

alias s='rails s -b 0.0.0.0'

エイリアス登録⇨sourceコマンドで有効。s打っただけで鯖が立ち上がるようズボラ設定にした。
-dでdaemon起動もできるが、vagrantがたまに暴走するとプロセス強制終了したりしないといけなかったので、手動にしといた。

編集するのにいちいちFTPソフトでいじるのは面倒、vagrantfile直下がデフォルトで共有なので、rails本体はそこにインストール。

たまにherokuデプロイやgitの解説があったが、そこは読み飛ばし。git管理はしたがherokuはやってない。

所感

これってTDDチュートリアルじゃね

TDDについて
  • 恥ずかしながらインターン含め、テストを書いたことがなかった(興味はあったが)のでやってよかった。
  • 特に結合テストの流れを体感したのがよかった。次のプロジェクトではTDDではないかもしれんが、しっかりテスト書きたい。
  • セッション周りのデバッグを手動で行なってたのがアホらしい。
Ruby/railsについて
  • Ruby言語自体は、大学の授業で"Hello World"レベルだったのでほぼ初心者。シンボルとかあったきがする(遠い目)
  • すごくオブジェクト指向だった(10.minutes.agoとか)
  • MVCのFWはLaravelやCodeigniterを触れているので、ディレクトリ構造に違和感なくできた。
  • 変数どこで宣言してるのかわからんね。
  • 関数呼び出しに()括弧を省略できるのが違和感ある。
  • たまに命名が単数なのか複数なのかわからなくなる。
  • ActiveRecordで分からなくなったらConsoleで試す。
  • 命名して宣言しているのか、railsの機能で予約語みたいになっているのかがまだ分からない。
  • railsが意図を汲み取ってくれるあたり、親切だが気持ち悪さも感じる。

こんな感じ。「railsは慣れれば楽で、他のFWが触れなくなる」ってのもなんとなく理解できた。
何回か会員サイトを作ったことがあるが、今回のチュートリアルのようにお手本がなかったのでかなり参考になったと思う。

チュートリアルの内容は結構膨大で、後半あたりコードはコピペばっかりだったが、RESTFulなサービスを作ることになったらまた見返したい。