Submit Search
Upload
超高速アプリ開発法
•
0 likes
•
110 views
Keiichi SASAKI
Follow
Ruby on Railsのススメ
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 71
Download now
Download to read offline
Recommended
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
Why Kotlin?
Why Kotlin?
Dev Ogiwara
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
Yuuki Takezawa
serverless
serverless
Kohei Misu
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
Java使いにとっての関数
Java使いにとっての関数
amkt922
素人のための機械学習
素人のための機械学習
Takeuchi Yuichi
TypeScript超入門
TypeScript超入門
Narami Kiyokura
Recommended
おっさんES6/ES2015,React.jsを学ぶ
おっさんES6/ES2015,React.jsを学ぶ
dcubeio
Why Kotlin?
Why Kotlin?
Dev Ogiwara
PHP フィールドインジェクションに挑戦する PHP勉強会2014
PHP フィールドインジェクションに挑戦する PHP勉強会2014
Yuuki Takezawa
serverless
serverless
Kohei Misu
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
Asami Abe
Java使いにとっての関数
Java使いにとっての関数
amkt922
素人のための機械学習
素人のための機械学習
Takeuchi Yuichi
TypeScript超入門
TypeScript超入門
Narami Kiyokura
Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
Tomoharu ASAMI
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
Infrastructure as codeのススメ
Infrastructure as codeのススメ
kanji htmt
イルカになりたい(TokyoR #63 LT)
イルカになりたい(TokyoR #63 LT)
cancolle
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
Tomoharu ASAMI
Real World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
Xamarinとmvvm crossとf#と
Xamarinとmvvm crossとf#と
Masahiko Miyasaka
Tech fun rails_workshop
Tech fun rails_workshop
OMEGA (@equal_001)
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa
Tomoki Maeda
Web技術勉強会 第33回
Web技術勉強会 第33回
龍一 田中
Groovyコンファレンス
Groovyコンファレンス
Shinichiro Takezaki
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
Nobukazu Hanada
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
ao27
動的なILの生成と編集
動的なILの生成と編集
terurou
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
Metro#1
Metro#1
c-mitsuba
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
Ppl
Ppl
Seizan Shimazaki
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
terurou
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
simotin13 Miyazaki
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
More Related Content
What's hot
Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
Tomoharu ASAMI
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
Infrastructure as codeのススメ
Infrastructure as codeのススメ
kanji htmt
イルカになりたい(TokyoR #63 LT)
イルカになりたい(TokyoR #63 LT)
cancolle
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
Tomoharu ASAMI
Real World PHP in pixiv
Real World PHP in pixiv
Kenta USAMI
What's hot
(6)
Scalaz-StreamによるFunctional Reactive Programming
Scalaz-StreamによるFunctional Reactive Programming
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
Infrastructure as codeのススメ
Infrastructure as codeのススメ
イルカになりたい(TokyoR #63 LT)
イルカになりたい(TokyoR #63 LT)
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
Real World PHP in pixiv
Real World PHP in pixiv
Similar to 超高速アプリ開発法
Xamarinとmvvm crossとf#と
Xamarinとmvvm crossとf#と
Masahiko Miyasaka
Tech fun rails_workshop
Tech fun rails_workshop
OMEGA (@equal_001)
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa
Tomoki Maeda
Web技術勉強会 第33回
Web技術勉強会 第33回
龍一 田中
Groovyコンファレンス
Groovyコンファレンス
Shinichiro Takezaki
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
Nobukazu Hanada
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
ao27
動的なILの生成と編集
動的なILの生成と編集
terurou
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
Metro#1
Metro#1
c-mitsuba
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
takuma mori
Ppl
Ppl
Seizan Shimazaki
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
terurou
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
simotin13 Miyazaki
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
Java script関数コールの追跡
Java script関数コールの追跡
Keiichi Kobayashi
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Tokuhiro Matsuno
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno
Similar to 超高速アプリ開発法
(20)
Xamarinとmvvm crossとf#と
Xamarinとmvvm crossとf#と
Tech fun rails_workshop
Tech fun rails_workshop
090821 Ruby Sapporo Night Ruby Cocoa
090821 Ruby Sapporo Night Ruby Cocoa
Web技術勉強会 第33回
Web技術勉強会 第33回
Groovyコンファレンス
Groovyコンファレンス
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
現在のWebフロントエンドの現状と愚痴と、それに対するHaxeフロントエンドライブラリMageについて
TreeFrog Frameworkの紹介
TreeFrog Frameworkの紹介
動的なILの生成と編集
動的なILの生成と編集
.NETラボ2021年10月 .NETの過去と現在
.NETラボ2021年10月 .NETの過去と現在
Metro#1
Metro#1
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
RubyKaigi2009 - RubyをつかったiPhoneアプリケーション開発
Ppl
Ppl
Yet Another DLR for Silverlightの試作
Yet Another DLR for Silverlightの試作
C・C++用のコードカバレッジツールを自作してみた話
C・C++用のコードカバレッジツールを自作してみた話
Web制作勉強会 #2
Web制作勉強会 #2
Java script関数コールの追跡
Java script関数コールの追跡
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
More from Keiichi SASAKI
IFTTTで遊ぼう
IFTTTで遊ぼう
Keiichi SASAKI
見守リスクはどうやって動いているか?
見守リスクはどうやって動いているか?
Keiichi SASAKI
「見守リスク」を使ってみよう
「見守リスク」を使ってみよう
Keiichi SASAKI
コンピュータにできないこと
コンピュータにできないこと
Keiichi SASAKI
DDJJ 1996.9-1999休刊まで
DDJJ 1996.9-1999休刊まで
Keiichi SASAKI
どこでもボタン+利用ガイド
どこでもボタン+利用ガイド
Keiichi SASAKI
「どこでもボタン」を使ってみよう
「どこでもボタン」を使ってみよう
Keiichi SASAKI
「火吹山の魔法使い」を astah*で
「火吹山の魔法使い」を astah*で
Keiichi SASAKI
私のIT遍歴
私のIT遍歴
Keiichi SASAKI
Anonymous Inner Programmer
Anonymous Inner Programmer
Keiichi SASAKI
Live in a_periferal_world
Live in a_periferal_world
Keiichi SASAKI
Openthology256pub
Openthology256pub
Keiichi SASAKI
Hanawa256pub
Hanawa256pub
Keiichi SASAKI
More from Keiichi SASAKI
(13)
IFTTTで遊ぼう
IFTTTで遊ぼう
見守リスクはどうやって動いているか?
見守リスクはどうやって動いているか?
「見守リスク」を使ってみよう
「見守リスク」を使ってみよう
コンピュータにできないこと
コンピュータにできないこと
DDJJ 1996.9-1999休刊まで
DDJJ 1996.9-1999休刊まで
どこでもボタン+利用ガイド
どこでもボタン+利用ガイド
「どこでもボタン」を使ってみよう
「どこでもボタン」を使ってみよう
「火吹山の魔法使い」を astah*で
「火吹山の魔法使い」を astah*で
私のIT遍歴
私のIT遍歴
Anonymous Inner Programmer
Anonymous Inner Programmer
Live in a_periferal_world
Live in a_periferal_world
Openthology256pub
Openthology256pub
Hanawa256pub
Hanawa256pub
超高速アプリ開発法
1.
超高速アプリ開発法 Ruby On Railsを使ってみよう 智恵の和
x月月例会 2020.x.xx 佐々木IT粗物店
2.
デモ・動機 • 50歳ごろ、現場から解放されてバックエンドへ。すると業者か らの売り込みの電話が。時にはお墓はいかがとか、アパート経 営しませんか、なども。これを撃退し、ギャフンと言わせてや ろう・・・ • それには・・・電話着信記録が要るな •
記録したいのは、 • 会社名 • 電話してきた担当者名 • 要件メモ • 着信日時・・・これは自動設定されて、後で修正できるといいね • 「よし、Railsで作ろうっ」
3.
デモ・操作・・・実はこれだけ • rails new
sellingcall • HD上の適当なところで実行。これがフォルダ名になる • rails generate scaffold call ⇒ company:string person:string memo:text incoming:datetime • 着信記録なので情報名をcallとして、各項目の英名:属性の羅列する • rails db:migrate • データベースの生成 • rails server –b 0.0.0.0 • Webサーバの起動
4.
デモ・操作 • rails new
sellingcall • HD上の適当なところでコマンドプロンプトを開いて叩く • ここに新たにこの名前でアプリケーションを作る、と考えるとよい • 名前はフォルダ名となるので、OSのファイル名制約を受ける • 英名がよい • すると何やらごそごそやっている • 落ち着いたらそのフォルダへ。コマンドプロンプトで cd sellingcall • いろんなフォルダやファイルができている
5.
6.
7.
8.
9.
デモ・操作 • rails generate
scaffold call ⇒(改行しないで続けて打つ) company:string person:string memo:text incoming:datetime • railsに続くgenerateは生成せよ、scaffoldは足場、なので callの足場を生成せよ、ということ • 属性stringは短めの文字列・・・HTMLのinputタグ相当 • 属性textは長めの文字列・・・HTMLのtextareaタグ相当 • 着信日時は、年月日時分秒まで欲しいので、datetime
10.
11.
デモ・操作 • rails db:migrate •
migrateは移行する、ということ • rails generate scaffold で生成されたデータベース構築スクリプトに従って、 データベースを作る • 正しくはまず、db:createするのだがローカルPC上では省略可 • 以前はrakeコマンドだった • きっとmakeコマンドのRails版だったと思われる
12.
13.
デモ・操作 • rails server
–b 0.0.0.0 • Webサーバを起動する • 自機で使うだけなら、-b 0.0.0.0は不要 • -b 0.0.0.0はIPアドレスのバインディングを指定するもの 0.0.0.0 はネットワーク上のどこからでもアクセス可能という指定
14.
15.
デモ・ブラウザから接続してみる • ブラウザを立ち上げて、 • http://ホスト名またはIPアドレス:3000/calls •
ホスト名は、自機からアクセスするならlocalhost • ネットワーク上の別端末などからアクセスするときは、 • 名前を解決してくれるならその名前で • 解決できないときは、立ち上げているPCのIPアドレスで • 3000はRailsサーバーのデフォルトのポート番号 • callsは、生成したモデルの複数形・・・実は生成したデータベースで のテーブル名 • 今、このLANに参加している人はアクセス可能
16.
デモ・ブラウザを立ち上げて
17.
デモ・Railsサーバと接続
18.
デモ・他の端末から接続してみる • URLをQRコードで・・・ただしオンサイト開催のときだけ
19.
デモ・何件か追加してみる • callsで見えているのは、まだ空の一覧表 • 何件か、追加してみる •
匠ビジネスの萩本さん • 環境ステーションの大東さん
20.
デモ・一件目、追加中
21.
デモ・その確認
22.
デモ・一覧に戻る
23.
デモ・二件、追加してみた
24.
デモ・二件目を修正する(時刻を)
25.
デモ・一覧を再表示
26.
デモ・たった3行でアプリができた • 最後はサーバ起動操作なので、操作はほんとに3行 • できること •
一覧表示 read(all) • 新規追加 create • 照会 read(one) • 編集 update • 削除 delete • いわゆるCRUD・・・クラッド・・・ができている • データベース内にテーブルもできている • 同梱されているのはSQLite • ビュアーで見てみましょう
27.
デモ・SQLite用のビュアーを立ち上げる
28.
デモ・callsテーブルを指定して
29.
デモ・callsの内容を閲覧する
30.
デモ・終了
31.
自己紹介
32.
自己紹介 • 略歴 • 天文少年→ラジオ少年→電波少年 •
メインライン • 海上保安庁…1972.7-1975.9 • 庁内テレタイプ通信網…リレー(クロスバー)交換をコンピュータ(時分割)交換に • (株)ジャステック…1975.10-2017.11 • 制御系、金融系、業務基盤系…アセンブラ、FORTRAN,COBOL,PL/I,C++,Java • 教育担当…Java,XML,UML,CORBA,OOD/OOP,Hadoop,Spark,NoSQL • コンプライアンス、情報セキュリティ、生産性向上 • プログラミング教育講師…2016.4- • 佐々木IT粗物店…2019.1-
33.
自己紹介 • サイドライン • EJBコンソーシアム、XMLコンソーシアム •
価値開発研究会←要求開発アライアンス←ビジネスモデリング研究会 • ここで萩本さんに接近 • マルレク • 丸山不二夫先生…事務所支援 • JJUG:日本Javaユーザ会 • デブ〇〇 • Developers Summit • Dev Love • 鹿角きりたんぽFM…郷里のコミュニティFM局の無線従事者を受嘱 • 築地大沼会/築地大沼後援会 • 智恵の和
34.
さて、Webアプリケーション、とは?! 話せば長い・・・ので •MVC •O-Rマッピング についてだけ、とりあげます
35.
• 三層クライアントサーバが標準的になった • 単独PC内でもこの構成 •
各層はネットワーク (PC内イントラネット)で 繋がっている • 後で複数PCに棲み分かれるこ とになっても、アプリケー ションには影響がない(接続 するネットワークアドレス を変えるだけ) • データストアはここに置かず、 インターネット経由で接続 というのもあり
36.
• Webアプリケーションの基本は、 リクエストに対して回答(レスポンス)して終わる • リクエストがやってく ると、受け付けたビジ ネス層のプログラムが 必要があればデータデー タストアまでアクセス して結果を回答する。 例えば •
ログイン認証 • そのカテゴリの商品一覧 を取り出して回答 • そんなにこみいったことは そもそもできない • HTTPプロトコルには GET/POST/PUT/DELETE しかない
37.
• しかし一回のリクエスト/レスポンスで完結だと・・・ 毎回、私は誰だとか、 さっき選んだ商品はこ れだ、このカードで払 いたいなどを間違いな く入れ直さなくてはな らない。 • そこで通常、 セッションと呼ばれる 仕掛けをサーバ側で用 意し、クッキーをブラ ウザと受け渡して連携 させる。こうして複数 の連続したリクエスト/ レスポンスを一つの、 論理的な取引として組 み立てている。
38.
• どんな業務も、リクエスト/レスポンスを使った流れに分割し、 これをセッションで繋ぐようにしてしまえば、 • お買い物サイト •
銀行のオンライン取引(ファーム・バンキング:=>死語) • マイナペイ、などお役所の業務 みな同じ仕組みになるので、その仕組みをWebサーバに持たせれば、 個々のプログラマは、自身の業務の実装に専念できる
39.
MVC:モデル・ビュー・コントローラ • アプリケーション プログラムはMVCパターン で作られるのが主流 • ここでControllerは、 リクエストを受取り 担当の業務プログラム を呼び出して、その結果 として指定された画面 と表示すべきデータを 送り出す役目を果たす
40.
• そして業務ロジックはModelとViewで分担する • ビジネスロジック •
間違うとたいへん(ex.カートに入っている商品の税込額の合計に送料を加えた金額を、 指定されたクレジット会社に請求する) • ころころ変わることはあまりない • 画面表示 • 見た目が大事 • 会社の方針や最近の流行を受けて、よく変わる • けっこう煩雑 • 分離しないで作ってしまうと・・・ • 見た目だけを変更するはずが、ビジネスロジックを書き間違えたり • ビジネスロジックが画面編集に紛れているので、修正し漏れたり します
41.
• MVCでないと、こんなとき困ります • すみません、今度の月末はうるう秒を実施しま~す •
あのぉ、アナログ表示もしたいんですがぁ MVCな時計とそうでない時計
42.
• ということで、 Webアプリケーション プログラムは、 三層クライアント・ サーバ方式の上で、 MVCパターンで構成 されている ※MVCには諸説あります • 疎結合にして、分業も できるように
43.
O-R(オー・アール)マッピング • さて「データが先かロジックが先か?」 a. その業務やサービスを実現する手順がまずある。そ のためにデータをどう持つか、が導き出され行くも のである b.
いやいや業務やサービスを超えて、人が取り扱う情 報には構造と関係がある。処理手順はそれに従うも のである。 これが、OOD/P vs DCA
44.
• ほとんど宗教論争なので、深入りしないことに・・・ • オブジェクト指向では、ちかしいデータだけ数個保有し、その取扱い に責任を持つロジックをセットにし、これをオブジェクトと呼ぶ。 •
しかしオブジェクトはメモリ上にあるものなので、コンピュータの電 気が切れると消滅してしまう。 • それなら消えないようにデータベースに仕舞っておくとことにして(永 続化)、今、メモリにないオブジェクトを使うときは、データベースか ら取り出してくれて、変更したら保存しておいてくれるとありがたい。
45.
• それがなんで「O-R」なの • O:オブジェクト •
R:リレーショナル・・・リレーショナル・データベース を繋ぐから • オブジェクトのフィールドとテーブルカラムの相互変換 • RはRDBなので、結局はSQLを使って読み書きするしかない • 方式としては a. 直接(文字列として)SQL命令を発行する b. XMLやアノテーション(専用言語)を使って、SQLの生成方法を指示す る c. オブジェクトの項目を参照したり、それに代入があれば、 • 裏側で、適切に取り出したり、書きだしたりしてくれる
46.
よしっ、 じゃあO-Rマッピングして、 MVCパターンで作ろうっ ・・・では、 •O-Rマッパーは何にするのか決める •MVCを維持して作っていくための枠組みをど うするのか決める
47.
Java言語での開発では • MVCはフレームワークを利用する • フレームワーク、というのはOSとアプリケーションの間にいて、 •
アプリがまだなくても、基本的な機能を持っている。空回りしてくれる • アプリは1から全部を作る必要はなくて、フレームワークから呼ばれるように作 る • Javaのサーブレットという技術は、Controllerの役目を果たしてくれる • サーブレットを継承したプログラムを書けば、そこでModelもViewも書けるが • SpringMVC Frameworkを使うのが主流 • MVCに分割して配置し、そのルール通りに作ることが前提となっている • O-Rマッパー • Spring自身が持っているもの・・・SQLライクな文法で書く、など • MyBatis・・・マッピングをXMLで与える • オールインワンはないの?・・・あります • Spring Boot(2014)
48.
でも・・・ • オールインワン・フレームワークの火付け役と言えば・・・ ルビー・オン・レイルズ~
49.
50.
Ruby on Rails •
オールインワン・フレームワークの火付け役(2005) • 言語はRuby • まつもとひろゆき氏が開発した • 純粋オブジェクト指向言語(すべてがオブジェクト。提供クラスも拡張可能) • 読みやすい。楽しく、役に立つ言語 • Ruby on Rails • MVC構成のWebアプリケーション・フレームワーク • D.H.ハンソン氏(蘭)が開発した • Active Recordによる、O-Rマッピング • 二つの原則 • DRY: Don’t Repeat Yourself 同じことを繰り返さない • CoC: Convention over Configuration 設定より規約
51.
最初の二行で • rails new
sellingcall • rails generate scaffold call ⇒ company:string person:string memo:text incoming:datetime こんなフォルダと、 プログラム群ができています データベースを生成して、 サーバーを起動して、 ブラウザからリクエストを 飛ばすと、 コントローラが受け付けて、 モデルを使って情報を集め、 ビューにはめ込むデータを用意し てRailsに戻ると
52.
53.
もう少し詳しく プログラムをみると 一覧表がリクエスト されると、 indexメソッドが 呼ばれます (その仕掛はのちほど) Callレコードを 全件読んで、 ビューに渡す @callsに代入し て、戻る
54.
•実はモデルCallにはallどころか、まったくメソッド がない。 • < ApplicationRecord
というのは、継承している、とい うこと。つまり継承元で、基本的なメソッドはすべて 用意されているので、それが呼び出される
55.
ビューのために、テンプレートも基本形が用意されている。 Railsはコントローラから受け取ったデータを、 このテンプ レートに埋め 込んでブラウ ザに送り出し ている
56.
• リクエストと 処理するメソッドの 対応は/config/routes に置くのだが、これも 標準のものがある • 新規追加では2つのリクエ スト/レスポンスで構成さ れる ①new_callリクエストで、 GETでnewメソッドが呼ばれ、 そのレスポンスとして追加 画面が表示される。 ②ユーザが入力してボタン を押すと、POSTでcallsリ クエストが作られて、create メソッドが呼び出されて 新規追加処理が完結する。
57.
s • クラス図で 描くと・・・
58.
index xxxx xxxx xx
s e d xxxx xxxx xx s e d xxxx xxxx xx s e d new もう少しこまかく def index end def show end def new end def create end showへ show xxxx ______ xxxx ____.... xxxx __........ edit new xxxx □□□ xxxx □□.... xxxx □........ create コントローラ
59.
(つづき) def edit end def update end
showへ def destroy end indexへ edit xxxx ■■■ xxxx ■■.... xxxx ■........ update コントローラ
60.
Rails、すごいっ!!
61.
何か質問はありますか? • データベースにPostgreSQLとかMySQLを使えるか? • もちろん使えます •
プログラムを変更する必要はなく、プラグイン関係をま とめて指示するGemfileで指定します • Ruby言語やRailsをもっと学ばなくてよいのか? • 必要になったら、調べればよいでしょう。楽しく役に立 つ言語、なので(^_-) 例えば、 • 年月日時分秒の表記を変えたい • 電話記録後の経過を記録するのに、「コメント」情報を追加 したい
62.
何か質問はありますか?・・・つづき • フレームワークって難しいのでは? • はい、やはり見通しが悪いし、 •
その癖に従わねばなりません • インターネットにあげて使えるのか? • もちろんできます。今ならサーバを立ち上げるより、 • Heroku(ヘロク)などの、PaaS: Platform As A Serviceに プログラムをpushして使うの一般的です・・・・やって みましょう
63.
■智恵の和、定例会用の伝言板 • 準備するのは、 • 機能のポンチ絵 •
簡単なユースケース図 • クラス図
64.
機能のポンチ絵
65.
簡単なユースケース図
66.
クラス図
67.
• ごそごそごそ • うん、PC上で動いた。では、 •
これをHerokuに • デフォルトは無料 • 立ち上がりが少し遅い程度で、他には制約なし • しかもなんと、HTTPS接続(^_^)v
68.
• Herokuコンソールでアプリを作る • chieden •
Herokuアプリに PostgreSQLを追加 • heroku addons:add heroku-postgresql --app chieden • 接続 • heroku git:remote --app chieden • アプリのロード・・・PC上でもgitで管理している必要あり • git push heroku master • DB生成 • heroku run rake db:migrate --app chieden • 時刻を日本標準時でに • heroku config:add TZ=Asia/Tokyo --app chieden
69.
動いています https://chieden.herokuapp.com
70.
Ruby, Railsを勉強したい人は… http://techacademy.jp/magazine/7058 が親切 •
Ruby • Ruby本体はRubyInstallerがお手軽 • ダウンロードしてインストールするだけ • 開発キット、Development Kitも必要 • Rubyディレクトリ内にdevkitフォルダを作って • ダウンロードしたzipを展開し >ruby dk.rb init >ruby dk.rb install >gem install rails –no-ri –no-rdoc • Rails >gem install rails –v n.n ・・・利用するバージョンを指定
71.
ありがとうございました • 次回があれば、テーマは • Herokuにバンバン、アプリを上げよう •
「どこでもボタン+」はどうやって動いているのか • 新製品「みまもリスク(仮称)」登場 • RubyもPerlも磨けば光る
Download now