この1年間で俺のRuby力はどれくらい伸びただろうか?

昨年のkawasaki.rb LT大会で、タイトルのようなテーマで発表をした人がいた。

 

ここ1年くらいのRubyに関わる話

昨年春 kawarsaki.rb 初参加。

 

夏~秋、ソースコードの改修にRubyを使用。

文字コードが統一されていない大量のソースファイルに対し

特定の項目を抽出、置換など。出力時はUTF-8で統一。

 

この頃のソースが・・・まあひどいこと。

ファイル名や設定をハードコーディングしていたり、

多数のメソッドがずらずらと書いてる

「前世紀のC言語の教科書に書いてありそうな内容」だった。

 

その場ではよいものの、応用が利かず・・・

何度も書き直していた。

 

秋:Railsのブートキャンプに参加

Railsに関しては「どこでどういう挙動をしているのか分からない」ので、なんとなく抵抗があった。

 

それを一気にぶち破るべく、11月の三連休にELITES CAMP に参加。

3日でRubyのコード作成からMVCモデルの生成、デプロイして公開まで一通り体験。

 

ただし・・・その場で全ての動作をマスターすることはできず、

この場では、ドライビングスクールというよりはスキースクールと化してしまった。*1

 

この時点ではscaffoldで必要なものを生成し、少しカスタマイズする程度。

 

このブートキャンプでは、gem同士の干渉が原因のトラブルでてこずったので、

macの開発環境ではBndler使ってgemを個別に管理するようにしました。

 

冬:Railsで社内向けアプリケーションの作成を開始

 

などと言ってたら、社内で業務補助ツール開発の話が出てきた。

使用言語などの細かい指定がなかったので、Ruby on Rails の利用決定。*2

 

一つ一つは簡単だけど、あわせ技になると厄介

 

CSVから必要な列だけとってきて、DBの形式にそろえて投入する」というと簡単に実装できそうですが・・・。

 

少し掘り下げると、文字コードや表記ぶれなどの、自動化するにはややこしい問題が多数。

 

さらに・・・Railsプロジェクトを作っては捨ててみたいなことをしていたので、

macのディレクトリが汚い状態に。

 

春:良い型が大事と気づく

 

将来の開発、運用を考えると一通りのものがそろった仮想環境を用意して開発や試験を実施したいとか、取らぬ狸の皮算用を考えつつVagrantに手を伸ばす。

 

そこで関連書籍を読んだら「Vagrant道」なる記述があり、一定の作法にのっとれば

いつでもどこでも同じ環境を得られるとのこと。

 

そして・・・これに触発され?合気道を始める。*3

ここで「洗練された、合理的な動作」が大事だと感じる。

 

 そして・・・。

 

今までのコードが見ていられなくなる。

Railsだと、受け取ったデータをいろいろ加工してDBに書き込むような処理を

すべてコントローラーに書いていたり、やたらに多くのメソッドが存在し、引数だらけになっている。

ビューに大量のコメントアウトやDB参照があったり。

 

 

ただし、過去に書いたコードが恥ずかしく感じるのは成長した証拠ともいいますので・・・。*4

 

 

 

*1:一通りのことは体験できたが、どうやればいいかを噛み砕き、モノにしたとは言いがたい。

*2:社内にエンジニアは俺一人。

*3:ガチ勢だらけ。

*4:上記LT大会の発表より