【初心者向け】RubyのフレームワークRuby on Railsって?

Not image

「Webアプリケーションを作りたい!」そんな方におすすめがあります。

みなさんはRubyのフレームワークRuby on Railsを知っていますか?

Ruby on Railsを使うことでWebアプリケーションの生産スピードは格段に上がります。

今回の記事では、「そもそもフレームワークって?」「Ruby on Railsとはなにか?」「Ruby on Railsがどのような思想で作られているのか?」ということを初心者に向けて、Ruby on Railsの魅力を伝えられたらなと思います。

そもそもフレームワークって?

フレームワークとは、「様々な便利機能+仕組み」ということができます。

フレームワークと言われる所以は、仕組みを持っているというところにあります。仕組みというのは、共通化できる部分をまとめて、簡単に実装できるというものです。

プログラムには、だいたい同じ流れで開発するというものがあり、共通部分はフレームワークで実装して、そのプログラム独自の部分だけ個別にカスタマイズすることで、独自部分により力を入れることができます。

共通部分を作らなくていいことで、工数の削減が可能で、工数が削減できることで、開発スピードを上げることがでます。

他にも、フレームワーク化されていることからプログラムのメンテナンスが楽になったりメリットを上げればキリがないほど、魅力が詰まっているものです。

Ruby on Railsとは?

Ruby on Railsとは、プログラミング言語Rubyのフレームワークです。開発者は、デンマークのプログラマDavid Heinemeier Hansson氏です。

Ruby on Railsというのは、フレームワークの中でも、Webアプリケーションフレームワークというもので、その名の通りWebアプリケーションを作成するのをサポートしてくれます。

Ruby on Railsは、世界的に人気があり世界が認めたフレームワークです。プログラミング言語Rubyが広がったのもRuby on Railsの貢献も大きいと考えられています。

それほど、Ruby on RailsのWebアプリケーションフレームワークは強力です。それ故、深く知るにはかなり広い範囲の知識が必要になるので、そこは覚悟して使っていかなくてはいけません。

Ruby on Railsの代表的な思想

DRY(Don’t Repeat Yourself)

同じことを繰り返さいない」という思想になります。この思想は言葉の意味そのままですが、同じ処理をするプログラムを何度も書かないということです。

この思想に乗ることで、もし変更することが出てきたときなどに修正するところを最小限に抑えることができるのです。よってメンテナンス性が向上するのです。

表面的にはこのようなメリットがありますが、私個人的にはメンテナンス向上のDRYを意識して書いていると、「他のコードもメンテナンスしやすい良いものを書こう!」という感情が出てくるのでそれも副産物的なメリットではないかと考えています。

CoC(Convention over Configuration)

これも英語の意味から「設定より規約」という思想になります。

Ruby on Railsを最初に触ったときに、「コントローラ設定コマンドやモデル設定コマンドなどの命名規則がかなり細かいな。こんなに細かく指定しないといけないのか?」というものを感じました。

今振り返ると、このような命名規則などもRailsの「設定より規則」の規則の部分なのだと思っています。

厳しく規則を設けることで得られるメリットとしては、エンジニア独自の思想がシステムに入ることが避けられ、共通化した開発ができる。すると、本質的なサービスのシステムの開発などに集中することができます。

調べたところによると、従来のアプリケーションフレームワークではこのような思想がなかったことで、巨大な設定ファイルが必要で、混沌とした状況が生まれたそうです。

まとめ:Railsで効率的なWebアプリ開発を!

今回紹介したように初心者でもRuby on Railsという巨人の肩に乗ることによって、自分の力以上の力を出すことができます。

これは、初心者にとってはメリットでもありデメリットでもあるのかもしれません。

あまりに広い範囲を網羅的にサポートしてくれているRailsは、深く知るためにはそれだけ広い範囲の勉強が必要になります。

そうは言ってもWeb開発をするにはRailsが超絶おすすめですし、使わない手はないです。

ならば、覚悟を決めていろいろな範囲に挑戦するしかないですね。頑張りましょう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です