Mi in progress

研究者ではなく、エンジニアになることを決意した人のブログ。

2016 06 28 の学び - Ruby on Railsの設計哲学を理解する

今週は達成感のある仕事ができて、とても嬉しかったので、

時系列でやったことを覚書しておこうと思います。

 

【ミッション】CSVファイルのGUIインポート-エクスポートツールを作る

(1) 内容

ここに、指定されたcsvファイルに対して、「この列は残す、この列は消す」といったように様式を整え、新しいcsvファイルをアウトプットしてくれるシェルスクリプトファイルがあります。(仮にこのシェルスクリプトファイルを、sample.shとします)

このsample.shは、Terminalからアクセスして、sample.shが入っているディレクトリへ移動し、./sample.shコマンドを打つと、命令を実行してくれます。

 

...これをブラウザ上でできるようにするのが、今回のミッションです!!!

"ユーザーは「ファイルを選択する」ボタンを押すとファイル選択ウィンドウが出てきてファイルを選べる。CSVファイルを選択して、「アップロード」ボタンを押すと裏でsample.shが動き出し、様式の整った新しいCSVファイルが自動的にユーザーのPCへダウンロードされる。"

 

まさにGUIツールの開発です。

このミッションを聞いた私は正直申し上げると、

「マジか〜〜〜全く出来る気がしない〜〜〜」

となりました。いかんせん、GUIの意味も.shファイルの意味も知らなかった身です。

不安になりながらも、開発を始めることにしました。

 

(2) やってみたこと: Ruby on Railsで構築にチャレンジ

結論から言うと、やりたいことと使っている道具が全く噛み合ってないことに気付き、Ruby on Railsでの構築は辞めました。

ただ、先日会社HP作成を成し遂げた後に見たRuby on Railsの世界は、

何もわからずひたすら独学で学んでいたときに見た世界とガラリと変わったので、

ここにその感動を書き記したいと思います。

 

(3) 学んだこと: Ruby on Rails

(3-1) まず、Ruby on Railsってなんだ

初めて見た時: なんだろう...プログラミング言語かな?rails new projectコマンド押すと一杯フォルダが作られて怖い(;o;) MVCが全然覚えられない...

今: webアプリ構築に必要な道具が揃ってるし、それぞれフォルダにまとまってて見やすい!超便利!

Ruby on Railsは、オープンソースのwevアプリケーションフレームワークです。聞き慣れない言葉で未だにこの言い方はピンと来ないのですが、要するにwebアプリ構築に必要な道具が全部そろった道具箱なんですね。それは例えるなら、一人暮らしを始めることになって、デパートで布団・まくら・カバー付きセットを買うようなもんです。一つ一つを買うよりも、まとめて買ったほうが楽。そういう感覚です。

余談ですが、Ruby on Railsついに5が登場したんですね...!

どんどん進化しててすごいなぁ。

Riding Rails: Rails 5.0: Action Cable, API mode, and so much more

 

(3-2) Ruby on Railsの設計哲学

1) 設定より規定(Convention over Configuration) - - - webアプリケーションの作り方について、様々なオプションを用意して、開発者の自由に設定させるよりも、規定(すなわち、適切なデフォルトの設定)を用意しておく方がいい、という考え。

2) 繰り返しを避けよ(Don’t Repeat Yourself) - - - DRY原則とも。まったく同じかほとんど同じコードがプログラム中に複数登場するのは無駄なので、できるだけ避けるべきだ、とういう考え。 

 

この哲学、HP作成するまでさっぱりわからなかったのですが、今は共感できるようになりました。特に2に関しては、ヘッダーとフッターの内容を、htmlファイルを作るたびにコピペするの面倒臭い...無駄すぎる!と自分のスキルの無さを呪ったので、今後はDRY原則でサイト構築していきたいと思いました。 

 

(3-3) おまけ

プログラミング言語 擬人化でググったら、ものすごく可愛い擬人化を見つけました。

Java、C++、Python…プログラミング言語擬人化計画! - Tech総研

これを見て更にプログラミングが好きになりました。