PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

【Ruby on Rails】Ruby on Railsとは?

いつもご覧いただきありがとうございます。
 本日は「Ruby on Rails」について



 初学者なりに学習した内容を書いていきます。


Ruby on Railsとは

 プログラミング言語であるRubyを使用してWebアプリケーションを構築するフレームワーク(枠組み)の一つです。フレームワークには、先人の知恵と経験が凝縮されています。特にRailsは、Rubyオブジェクト指向の考えを踏襲し、非常に洗練されたアプリケーション開発の仕組みを提供してくれます。

 一般的に、一からWebアプリケーションを構築する場合には、さまざまな課題をすべて自分で解決しなければなりません。しかしRailsフレームワークは、誰でもどこでも必要とする「基本的で標準的な機能の枠組み」を、自由に、かつ効果的に利用できるようにしています。経験の長い優れたエンジニアが「こうありたい」と願う仕組みをことごとく現実のものにしている、といっても良いでしょう。

 したがって、初めてWebアプリケーションの開発に携わる方でも、その仕組みを正しく理解して実践できれば、先人たちの考えた優れたスマートで洗練された仕組みを素早く取り込むことができます。その結果、わかりやすい、品質の高いWebアプリケーションを素早く柔軟に構築でき、構築したあとの機能の拡張や改善を含むアプリケーションの保守・運用管理も容易になるはずです。

 Railsは簡単にWebアプリケーションを構築できるツールを提供し、Webアプリケーション構築の初心者でも一気に高みに連れて行ってくれます。しかし、前述したようにさまざまな先人の優れた考え方、仕組みを取り込んでいるため、その仕組み・意義をしっかりと理解しなければ、効率的で現実的に優れたアプリケーションを構築することはできません。

Ruby on Railsの歴史

 Rubyは、日本人のまつもとゆきひろ氏が作成したプログラミング言語です。また、現在、日本発の言語としては唯一、国際標準規格に認定された言語でもあります。

 Railsは、Rubyプログラム言語の良さにほれ込んだデンマーク人のDavid Heinemeier Hansson氏(通称:DHH氏)によってRubyを使って作成された、RubyによるWebアプリケーションのためのフレームワークです。

 2016年にリリースされたRails バージョン5には、WebSocket通信を利用したサーバー・クライアント間の双方向通信(チャットなど)が可能になるActionCableや、モデルの属性の持ち方を大きく拡張するAttributes API、タイプオブジェクトなどが追加されました。さらに、マイナーバージョンといえるRails 5.2には、ActiveStorageなどの新しい機能も追加されました。これらは近い将来予定されている、Rails 6以降におけるフロントエンド周りの機能拡張の布石と考えられます。他にもRails 6では、メール受信をよりスマートに実現させる機能やスケーラビリティ(規模拡張)を支援する機能が組み込まれる予定です。このように、Railsはより高度な機能を取り込みながら、使いやすい形に進化を続けています。

Railsの理念

 Railsは、長年の経験による最良の開発方法を推進するために、Rails流(the Rails way)というべき次のような理念が存在します。また、その理念に従って、あらゆるものが構成され、またそれに従って開発を行うことが最良の開発であることを推奨しています。

同じことを繰り返すな(Don't Repeat Yourself: DRY)

 当たり前ともいえるのですが、一般的なソフトウェア開発では、やむを得ない事情によって、あるいは意図せずに、多くの重複するようなコードや仕組みが至るところに積み重なるリスクを負っています。その結果、効率的な改善を阻む要因となります。

 「システムを構成するあらゆる部品は、常におのおの重複することなく1つであり、明確であり、信頼できる形で表現されていなければならない」のが本来あるべき姿です。その指針に従って、同じプログラムコードを繰り返し書くことを徹底的に避け、プログラムコードを保守しやすく、容易に拡張でき、バグ(隠れた不具合)をとにかく減らすことを目指しましょう。

Ruby on Rails」についてかんたんにまとめさせていただきました。

最後までご覧いただきありがとうございました。