読者です 読者をやめる 読者になる 読者になる

チラシ裏日記上等!!新館

オタクWebエンジニアの雑記ブログです。本や漫画や映画の感想なんかを主に書いています。最近は勉強会の感想とかも書いています。

Rails所感

はじめに

転職してRuby on Railsを使い始めた。仕事をはじめてからほぼ一ヶ月経ったのでRailsを使い始めた感想などを書いてみようと思う。

技術的なことというよりはかなりポエムよりなのであしからず(ところでポエムという言葉を使うにはちょっと抵抗がある。ポエムって詩だよね?なんでみんなポエムって言葉使うんだろう?でも共通言語っぽいのでポエムにする)。

 Rails所感

Railsを使い始めて得た感想が以下になる。

  • はじめるのが驚くほど楽
  • 規約に従うのがちょっと大変
  • Rubyを書いているというよりはRailsを書いている
  • View Helper便利(だが使うのがちょっと怖い)
  • Routesファイルがしんどい
はじめるのが驚くほど楽

はじめるのが驚くほど楽という印象。

rails new hogehoge

でもう雛形が出来上がる。これはこれからWebサービス作ろうという人にとってはかなり都合がいい。

Rubyの文化でGemもかなり至れり尽くせりな感じなので、Webサービスを作り始める土台はしっかりしている感じ。Javaなんかだとこう上手くは行かなそう。

JavaにはPlayFrameworkもあるから似たようなことはできそうだけど、sbtやらなんやらが結構面倒なのでそうサクッとははじめられないかな。

規約に従うのがちょっと大変

RailsにはRails Wayというものがあり、それに従う限りはそう間違ったことはしないとのこと。Rails Wayは先人が残していったレールなのだそうな。

ただ自分の知る限りRails Wayに関しての詳細な説明が見つけられなかったりする。Rails Wayの本はあるけれど2008年の本なのでこれに従っていいのかはよく分からない。

 

Rails Way (Professional Ruby Series)

Rails Way (Professional Ruby Series)

 

 たぶんRailsの技術書に書いてあることに従っていれば間違いはないのかなと今は思っている。あとはRailsコミュニティの常識をその場にいて体験するしかないのかもしれない。

このRails Wayというのがよく分からなくて最初はいろいろ戸惑った。MVCやRoutesファイルのことはなんとなくわかるが、命名規則とかアンダーバー区切りのメソッド名とかはちょっと戸惑う。JavaJavaScriptで仕事してきた自分はちょっとまだ慣れない。

だがこればかりはやっていくしかないのだなと思っている。日々精進しなくてはならないなぁと。

Rubyを書いているというよりはRailsを書いている

RailsDSLみたいだと、同時期に入社した同僚が言っていた。

たしかにRubyで仕事をしているというよりはRailsで仕事をしているような気がしてならない。

Rails Wayに従えば最悪Rubyを覚えなくてもいけるのではないかと思ってしまう。Railsの機能はかなり豊富なのでそれさえ覚えればある程度のことができてしまいそう。

まぁ実際そんなことはないはずなので、普通のRubyもちゃんとかけるようにならないといけないなと思う。

View Helper便利(だが使うのがちょっと怖い)

これはViewの実装の話だが、View Helperがかなり便利。

ちょこちょこ複雑なロジックもかけるので重宝しそう。

ただ、なんとなくViewをRubyでいじるというのが抵抗があったりする。こういうのはJavaScriptの領分なのではないだろうか?

コントローラやモデル、ビジネスロジックRubyで書いてViewは素のHTMLとJavaScriptで書いた方がフロントエンドとバックエンドの領分がハッキリと分かれていいように思えるのだろうけどどうなのだろうか?

とはいえRubyで書いてしまう方が安全だし楽なので、View Helperを使った方がいいのかもしれない。多分JavaScriptよりも早いだろうし。

Routesファイルがしんどい

今一番困っているのがRoutesファイルの編集。どういう風に書けばコントローラに渡してくれるのか戸惑うことが多い。

rake routes

で経路を確認しつつやればいいのだけど、その表示を読み解くのもまだちょっとおぼつかない。これもやはり慣れが必要だなぁと思う。

まだ調べてないけど、たぶんRoutesファイルは分割できそう。結局Rubyのファイルなわけだし。

まとめ

とにかくRailsの機能を覚えないといけないなと思うことばかりでした。フレームワークを学ぶには言語を学ぶのと同じぐらいの時間がかかりそう。

覚えるには仕事をしたり自分で書くしか方法はないので、地道に経験をつんでいかないことにははじまらない。

転職して一ヶ月経ったけど、まだスタートラインにちゃんと立てていない不安感がある。ちゃんと勉強して事業に貢献できるようにならなければ。

焦っても仕方がないので、できることを着実に積み上げていきたいと思う今日この頃です。