contentTrailBlazer概要まとめてみたRailsGem初心者TrailblazerTrailBlazerを使う機会がありました。日本語のリソースが少なかったので、軽くではありますがまとめておこうと思います。理解が若干ふわふわしているので、誤りなどあればご指摘いただけると幸いです!Trailblazerとは?Rubyのフレームワークに抽象レイヤーを提供するGemの集まりです。Sinatram等にも対応。Sutterer氏がRailsのMVC抽象レイヤーのあり方に疑問を持ったこと。Railsの手軽さを認める一方、ModelやControllerの肥大カオス化により、のちの保守性が下がることを問題視されたそうです(Nickさんの本意訳)。Railsの設計思想の特徴ゆえに、迷子になりがちだったビジネスロジックの行き場をModelやController以外の場所に持ってくることができます。Trailblazerを構成する主なGemTrailBlazerは、Operation・Reform・Cells・Representableという主に4つのGemから構成されています。Nickさん自身も述べていらっしゃいますが、すべてのGemを用いる必要はありません。「いつ」「どれくらい」「どの」要素を用いたいかに基づいて、部分的に各Gemを導入できるため、比較的容易に既存アプリケーションと併用することができます。Operationコントローラーに代わってビジネスロジックを担当するGemです。stepによる簡潔な処理フローを強みとしています。Contract::Persist()endTrailBlazerにおけるModelの役割は、RailsのModelの役割と基本的に同じです。Controllerから指示を受けてデータのやり取りを行うか、Operationからの指示を受けるかというほどの違いで、永続化したいデータをDBに保存したり、その値を取得するポータルを提供することがメインのお仕事です。以下のように、associationやscopeを記載します。}end上記の例ではRailsのActiveRecordを使用していますが、Datamapperなど、ほかのORMでも問題ありません。Mapping(オブジェクト関係マッピング)のこと。オブジェクト指向と関係データベースをつなぐことで、関係DBのレコードをオブジェクトとして認識し、直感的な操作を可能にしてくれる。Reformフォームオブジェクトを作るためのGemです。ValidationやPersisting(saveかsync)をメインに、フォーム関連の処理をModelに代わって引き受けます。contractは、Reform::Fromクラスを継承しており、必要項目のpropertyやvalidates内容の定義を行う役割を持ちます。v2.0以降であれば、dry-validationなども選択可能です。ActiveModelに関しては将来的に廃止を予定しているとのことです。Cellsビューモデル作成用のGemです。表示関連の処理をModelに代わって引き受け、UIパーツを表現します。別名「テンプレート・レンダリング」担当。endendRepresentableシリアライズ(デシリアライズ)用のGemです。受け取ったオブジェクトをJSONやXML、YAMLに変換するほか、JSONからオブジェクトへの変換も可能です。Operationの中に記述するほか、別ファイルに専用クラスを定義する方法があります。requestStockLike3@Y_eurekaFollow株式会社SORICHSORICHはWebシステム開発を主軸に、デザイン・Web制作・アプリ開発・IoTまで、クライアントの幅広いニーズに対応する技術者集団です。upLoginユーザーは見つかりませんでした。