Musicプログラマー備忘録やお酒や音楽この広告は、90日以上更新していないブログに表示しています。アプリケーションプログラミング」という本を読んでみました。いいんですけど、この手の参考書高いしかさばるからあまり買いたくはなかったのですが必要経費ということで泣きながら買いました。ネットだと情報が一貫してないからどうしても本に頼るしかないんですよね。・豊富なのでビジネスロジックくらいしか頭使って書かなくていい・豊富すぎて覚えきらない・機能のほとんどが命名規則に依存したりするので何気ない一言で内部的に結構な処理してるので把握するのがつらい・Rubyも初心者なのでつらい、ただただ、つらいなので、きちんと(RubyもRailsも)覚えて使いこなせればすごい(いい意味で)手抜いて作れるなー、便利だなーと思いました。何に特化しているかというと、MCVパターンに沿ったRESTfulなアプリケーション作成に特化しています。アプリケーション開発に必要なテストも(JUnitみたいなの)サポートしており、Rails使えばオールインワンで開発が可能です。(フルスタックっていうそうです。)じゃあ、実際に開発していくときにどう開発していくの?ってところですが、MVCパターンを採用しているのでMとVとCをそれぞれ作っていきます。1.Viewの開発Viweは、実際に使う人(ユーザー)に対して何をどう見せるのかっていう見せるもののことです。一般的にHTMLのこと。使う人が他システムとかNativeアプリとかになるとViewがJSONやXMLになる場合もありますが、今回は考えません。Strutsとか利用して開発すると動的なHTMLを生成するためにJSPなどを使ったりします。Ruby)テンプレートっていうのを使います。ERBってのはHTMLにRubyスクリプトを埋め込めるような仕組みです。JSPでHTMLにJavaを埋め込めるのとほぼ同じです。この仕組みを使って、APサーバーで取得した値をクライアントへ動的に返すことができます。Strutsで言うとStrutsタグとかいうView生成で使うと便利なタグがあります。これと同じようなことをRailsではHelperという機能群を使って実現することができます。パスワード用のフィールドを定義できるpassword_fieldや日付入力用のdeta_fieldなんかです。Strutsだと<html:password>など。これを駆使して、最終的にデザイナーが上げたデザインと同じになるように画面を組み立てていくような感じになると思います。2.Modelの開発Modelは、ビジネスロジックの実装部分になります。ここの定義とか整理をあらかじめきちんとやっておかないとアプリケーションはできません。ここの特徴としてあらかじめDBとのO/Rマッピングがされております。Javaで言うとmyBatisのgeneratorで生成するDAOクラスが標準で搭載されている感じです。Modelでは何ができるかというと。・Migrationとかです。テーブル同士のリレーションは設計段階で必ずER図書くと思います。ここではその通りに記載するだけで勝手にリレーション張ることができます。Twitterとかで考えるとユーザーモデルとつぶやきモデルを作ります。ユーザーは何件もつぶやけるので関連性は1:Nになります。つぶやきは必ずユーザーに依存します。その設定をモデルにしてあげます。みたいな感じで指定したつぶやきのユーザー情報がとれたりします。ここがくそ楽にできるのでびっくりしました。あとは、Validation機能。これもStrutsでいうValidatorみたいなのが用意されています。個人的にここに書くのは「?」な気がしていますが、たぶんそれは理解しきれていないからなのでしょう。ちなみにModelの実装で一番メインになるのはもちろん実データへのアクセスです。byメソッドが用意されています。SQLを任意に発行することも可能です。3.Controllerの開発ControllerはViewとModelをつなぐ部分になります。クライアントからHTTPリクエストを受け取り、任意のModelを呼んで、HttpResponseをViewに返してあげる役割をしています。ここで、Modelから受け取った情報をどのViewに返すのか?とかどういったフォーマットで返すのか?とかどういったHttpStatusを返すのか?とかそういった情報の実装ができます。Filter機能や、Cookieやセッションの管理もここで行えます。4.ルーティングの設定Railsでいうルーティングとは、クライアントからHTTP受け取った際、どのコントローラーのどのアクションを呼んであげるかというのを定義するところです。外部に公開したくないリソースがあった場合とかここをいじってあげます。5.テストの実装RailsではSPECを使って以下のテストをサポートしています。・単体テスト(モジュール単位)・機能テスト(単一コントローラー)・結合テスト(複数コントローラー)JUnitでいうassertや、テストデータ作成機能なんかも搭載しているのでそれを使ってテストを実装していきます。以上が、Railsを使ったAP開発の最低限の流れになります。ほかにもSassやCoffeeScriptをサポートしていたり、GEMでRedis(メモリ上のDB)やSoler(全文検索エンジン)、Mandoril(JSでメールが送れるSMTPサーバー)なども使えたりするのでいろいろと拡張ができます。一通り把握したところで、とりあえず覚えるまでがつらい。次回はからはそろそろScaffolding使った実装をやっていこうとおもいます。(6)はてなブログをはじめよう!gwaan_soさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。