07:00RubyのWebアプリケーション開発用フレームワークといえばRails。Rails』を6月19日に発売しました。今回、本書からRailsのベースとなる考え方を紹介。どのような思想で成り立っているフレームワークなのかを理解することで、より効率的に学ぶことができるのではないでしょうか。Rails概要」から抜粋したものです。掲載にあたり、一部を編集しています。Rails)とは、プログラミング言語であるRubyを使用してWebアプリケーションを構築するフレームワーク(枠組み)の一つです。フレームワークには、先人の知恵と経験が凝縮されています。Railsは、Rubyのオブジェクト指向の考えを踏襲し、非常に洗練されたアプリケーション開発の仕組みを提供してくれます。一般的に、一からWebアプリケーションを構築する場合には、さまざまな課題をすべて自分で解決しなければなりません。Railsのフレームワークは、誰でもどこでも必要とする「基本的で標準的な機能の枠組み」を、自由に、かつ効果的に利用できるようにしています。経験の長い優れたエンジニアが「こうありたい」と願う仕組みをことごとく現実のものにしている、といっても良いでしょう。したがって、初めてWebアプリケーションの開発に携わる方でも、その仕組みを正しく理解して実践できれば、先人たちの考えた優れたスマートで洗練された仕組みを素早く取り込むことができます。その結果、わかりやすい、品質の高いWebアプリケーションを素早く柔軟に構築でき、構築したあとの機能の拡張や改善を含むアプリケーションの保守・運用管理も容易になるはずです。Railsは簡単にWebアプリケーションを構築できるツールを提供し、Webアプリケーション構築の初心者でも一気に高みに連れて行ってくれます。前述したようにさまざまな先人の優れた考え方、仕組みを取り込んでいるため、その仕組み・意義をしっかりと理解しなければ、効率的で現実的に優れたアプリケーションを構築することはできません。それらの仕組みや意義を理解することは決してやさしいことではありませんが、今後、開発環境がどのように変遷したとしても、一度学んだ技術やノウハウは決して無駄になりません。5)を使ってRailsの仕組みを正しく理解し、より良いWebアプリケーションを構築できるよう、本書はその導入口になることを大きな目的としています。Rails誕生の経緯Rubyは、日本人のまつもとゆきひろ氏が作成したプログラミング言語です。認定された言語でもあります。Hansson氏(通称:DHH氏)によってRubyを使って作成された、RubyによるWebアプリケーションのためのフレームワークです。API、タイプオブジェクトなどが追加されました。5.2には、ActiveStorageなどの新しい機能も追加されました。6以降におけるフロントエンド周りの機能拡張の布石と考えられます。6では、メール受信をよりスマートに実現させる機能やスケーラビリティ(規模拡張)を支援する機能が組み込まれる予定です。このように、Railsはより高度な機能を取り込みながら、使いやすい形に進化を続けています。日本国内では、Rubyの資格認定制度として、シルバー/ゴールドという2種があります(https://www.ruby.or.jp/ja/certification/examination/)。Railsについても、Railsブロンズ/シルバーという認定制度があり、さらにRailsゴールド資格もRailsシルバー資格取得者向けに用意されています。Railsは、今後もより使いやすく便利に、よりフレキシブルな最先端のアプリケーション開発ツールとして大きな可能性を与えていくでしょう。way)というべき次のような理念が存在します。その理念に従って、あらゆるものが構成され、またそれに従って開発を行うことが最良の開発であることを推奨しています。DRY)当たり前ともいえるのですが、一般的なソフトウェア開発では、やむを得ない事情によって、あるいは意図せずに、多くの重複するようなコードや仕組みが至るところに積み重なるリスクを負っています。その結果、効率的な改善を阻む要因となります。「システムを構成するあらゆる部品は、常におのおの重複することなく1つであり、明確であり、信頼できる形で表現されていなければならない」のが本来あるべき姿です(図1.1)。その指針に従って、同じプログラムコードを繰り返し書くことを徹底的に避け、プログラムコードを保守しやすく、容易に拡張でき、バグ(隠れた不具合)をとにかく減らすことを目指しましょう。Configuration:CoC)Railsでは、Webアプリケーションで行われるさまざまなことを実現するための最善の方法を、過去の経験や慣習に基づいて明確に描き出し、Webアプリケーションにおいて最適と考えられるものを規約としてデフォルト(あらかじめ決められた)設定にしています。これは一見、開発者の自由を奪うようですが、反面、優秀な開発者が誰でも当たり前に行う部分をルール化し、それ以外の創造的な作業に集中できる環境を作っているともいえます。言葉を変えると、Railsの規約に従うことは、開発者自らが当たり前の準備に時間を割くことから解放され、より高機能で、自由な開発環境を手に入れられることだといえます(図1.2)。ルールに従うと楽ができるRailsフレームワークのベースとなる3つの考え方Railsのフレームワークは、長年蓄積された洗練された考え方に基づいており、次の3つの柱を軸に構成されています。(1)リソースフルルーティングリソースフルとは、リソース(データ資源)を満たす、あるいはリソースを中心とするという意味だと考えてください。ルーティングは、ここでは、リソースに対するアクセス(やり取り)の道筋を決めることを意味します。CRUD操作と標準装備のメソッド」で解説します)。本書では、リソースの意味をより明確にするため、データリソースという言葉を多用しています。リソースフルな操作(2)オブジェクト指向ベース言語であるRubyが持つオブジェクト指向性を活用して、フレームワークは、洗練された各オブジェクト(対象物)で構成されています。開発者は、このフレームワークをベースに個別のオブジェクトを生成していきます。その際、個々のリソースは、舞台に立つ役者のようにオブジェクトとして表現されます。2で説明していきます。(3)MVCモデルRailsは、アプリケーション内部の処理内容に基づいて、3つの役割を担うモデル、ビュー、コントローラーから構成されるMVCモデルをフレームワークの基礎にしています。図1.4に、MVCモデルの概要を示します。MVCモデルとはRailsは、これら3本の柱を軸にして図1.5のようなフレームワークを構成しています。図に示すように、1つのRailsフレームワークの中には複数の機能が実装されます。Railsフレームワークの構成Railsフレームワークでは、ブラウザーからリソースへの要求は、リソースフルルーティングというものを経由してまとめて扱われます。その要求に応じて、コントローラー(C)というオブジェクトを司令塔とするMVCモデルで処理が行われます。データベースのリソースは、モデル(M)を通してオブジェクトとして扱われます。発売日:2019年6月19日(水)価格:3,888円(税込)本書についてRailsを自力で使えるようになるまで、基礎から一通り学べる本格入門書。実際に教えている著者による、オブジェクト指向からMVCモデルまでしっかりじっくり学べる一冊です。タクヤ)翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。圧縮・解凍UNIX基本講座@CodeZine『CodeZine(コードジン)』の公式アカウントです。【NEW】デブスト2019デブサミ2019福岡・関西デブサミ2019夏デブスト関西デブサミ2019×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。