Create  Edit  Diff  FrontPage  Index  Search  Changes  History  Source  RSS  Note  wikifarm  Login

Rails' Wiki - RailsMeetingKansai-0005 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

! 第 5 回 [[RailsMeetingKansai]](運営:[[Ruby 関西|http://jp.rubyist.net/?RubyKansai]])

!! 勉強会
:日時:2006 年 8 月 19 日 (土) 13:00〜17:00 (受付開始 12:50)
:場所:[[大阪府立女性総合センター(ドーンセンター)|http://www.dawncenter.or.jp/]] 大会議室 2
:費用:学生の方 女性社会人の方 500円・男性社会人の方1000円(予定:会場代、講師の交通費、配布物の印刷代等の実費負担です)
:定員:72 名

!! 懇親会
:日時:2006 年 8 月 19 日 (土) 17:30〜
:場所:[[うまいもの処 くねんぼ|http://www.kunenbo.co.jp/]]
// :コース:予算は、満腹コース 2,000円 + ドリンク飲み放題で 3,000円。
:会費:およそ社会人:学生 = 2:1 の比率でご負担ください。
:締切:2006 年 8 月 18 日 (金) 17:00 まで

!! 勉強会のお題

!!!「アジャイルにデータモデリング」by 渡辺幸三さん
:セッション概要:Railsのようなフレームワークを使えば、ちょっとしたECサイトは手軽に開発できます。しかし、本格的な業務システムの場合、データベースにはテーブルが何十、何百と含まれます。テーブル数が10個を超えるようであれば、複雑なデータベース構造を曖昧にしたままで実装を始めれば、どんなに気の利いたフレームワークを使っても失敗するでしょう。本格的な業務システムを相手にするために「データモデリング」を学びましょう。
:プロフィール:大阪府在住のシステムエンジニア・プログラマ。著書「業務システムモデリング練習帳」(日経BP社,2006)、「業務システムのための上流工程入門」(日本実業出版社,2003)など。ブログ「設計者の発言」http://watanabek.cocolog-nifty.com/


!!! 「Rails Chat の仕組みを読み解く」by moriq さん
:セッション概要:Flash を使ってリアルタイム通信を実現する Rails プラグイン Juggernaut と、これを使ったアプリである Rails Chat の仕組みを見ていきます。
:プロフィール:高松市のプログラマー(いまここ)。著書「{{isbn('4797335750','ライド・オン・Rails Ruby on Railsを徹底攻略')}}」(共著) など。WEB+DB PRESS 誌に連載中 (with 高橋さん)。http://www.moriq.com/
:発表資料:http://www.moriq.com/ruby/RailsMeetingKansai-0005/

!!! 「Rails 環境セットアップ」by いまいさん
:セッション概要:あまり手広くサポートは出来ないかもしれませんが、当日ノート PC などを持参して、Rails が使える環境を作るのを支援して欲しいという人がいれば。対象となるプラットフォームは後日お知らせします。CD-ROM か USB メモリが読めれば何とかなると思います。
:プロフィール:おもに Debian 方面で活動しています。ふだんは大阪湾に浮かぶ有人島でプログラムを書いてます。

!!! 「Rails 初心者レッスン第 2 回 − ActiveRecord 入門」by かずひこさん・あゆさん
:セッション概要:O/R マッピングツールであるAcriveRecord をつかってテーブル操作の基本命令であるCRUD操作( INSERT, SELECT, UPDATE, DELETE )をご紹介します。
:プロフィール(かずひこ):建築の学生 → グラフィック・デザイナー → オープンソース・プログラマー(いまここ)。著書「{{isbn('4756147739', 'はじめよう Ruby on Rails')}}」がようやく出版されました。http://www.fdiary.net/
:プロフィール(あゆ):女子大の学生 → ビーズ屋さん店員 → システムエンジニア? (いまここ)。萌え系プログラマー目指してがんばってます。
:配布資料:{{attach_anchor('print.pdf')}}

!! レポート
!!!「アジャイルにデータモデリング」by 渡辺幸三さん(レポート:かめだ)
業務システムとは
* 企業の基幹システム
* 業務を助けるシステム

具体的に言うと
* 財務会計システム
* 人事給与システム
* 営業管理(事業管理)システム

業務システムの特徴
*DBが中心にある
*社会的なひろがりを持っている(人間を含んだシステム)

業務システムに関わるにあたって身につけておくべきスキル
*簿記
**業務システムの基本
**簿記は3級を取れば十分
**簿記が分かってないと、業務システムの話がちんぷんかんぷんなので、勉強しておくべき
*モデリング
*個々の業務知識

簿記と財務システムのかかわりは、似てるようで似てない
*それを分かるためにも簿記を理解しておく必要がある
*財務システムが分かってないと、営業管理などはとうてい扱えない

モデリングされるものは3つある
*DB
*アプリケーション
*組織体制(ユーザ)

今日話すのはモデリングのうちの、DBのモデリングについて

業務システムはテーブル数、プログラム数ともに膨大になる。少ないテーブル数で開発しているときとは複雑さが段違い


*モデリング
**モデリングとは、論理要件のこと
**業務システムの実装を得るために、論理要件をまとめる作業
**実装は、論理要件と、物理制約の影響を受けている
**手順としては、モデリングして、制約にぶつけて、実装をつくり出す

*実装、モデリング、物理制約の関係について
**実装には業務実装、機能実装、データ実装がある。
**モデルには、業務モデル、機能モデル、データモデルがある
**業務モデルは機能モデルしかあつかえず、機能モデルはデータモデルを扱う
**決定する順序としては、業務モデルとデータモデルが先に決まり、機能モデルが最後にできる


''アジャイルデータモデリング''
*モデリングするときは紙上モデリングするのでは無く、お客さんとかと話合いながらその場で修正していくアジャイルな作業で行う。
*モデリングツールでモデリングするのでは無く、お客さんの前でモデリングを行う。
*そうでないと、現実的でないくらい生産性が悪い。


''モデルの関連について''
||会員No||会員名
||123||"スズキイチロー"
||124||"マツイカズキ"
||...||...
||256||"スズキイチロー"
*会員Noが決まれば会員名が決まるが、逆はあてはまらない。この関係を「''関数従属性''」と呼ぶ
**リレーショナルDBとは、この関数従属性の膨大な保管庫とみなせる
**項目間の関係は関数従属性として表現できる
**モデル間の関係は関数従属性として表現できる
**上の例で言うと、会員Noを「''識別子''」、会員名を「''従属子''」と呼ぶ。
*あるモデルが別のモデルの識別子を従属子として含んでいるとき、これらのモデルの関係を「''参照関係''」と呼ぶ
**あるモデルからあるモデルへの参照関係の数を「''多重度''」と呼ぶ
*複数の項目の関係に対して一意な意味が定まる関係(複合キー)を、「''親子関係''」と呼ぶ
**親子関係になっているモデル間は、一つのモデルの識別子が、もう一方のモデルの識別子の一部になっている
*あるモデルに関連するレコードが、もう一方のモデルにあるかもしれないしないかもしれない関係を「''派生関係''」と呼ぶ。それぞれのモデルをスーパータイプ、サブタイプと呼ぶ

''RailsのActiveRecordがサポートしている関連''
*has_one : select文の最初の一件に引っかかった項目を取ってくる命令。
*n対nの関連はよくわからないルールになっている


''まとめ''
*業務システムの開発のうち、DBのモデリングについて話をしました
*モデリングはお客さんとの話し合いの中で、その場でモデリングしましょう
*Railsでテーブルの関連を扱う部分は鬼門です。例えばhas_oneをモデルに指定していても、実際に参照データが最大1件になるかどうかは保証されません。
*業務システムを扱うなら、日商簿記3級を取りましょう


!!!「Rails 初心者レッスン第 2 回 − ActiveRecord 入門」by かずひこさん・あゆさん(レポート:ふくやま)

発表の概要
*ActiveRecordって何?
*ActiveRecordの命名規約
*アプリケーション、データベースの設定
*Personモデル、テーブルの作成
*ActiveRecordでCRUD


発表のポイント
*前回は講義のスピードが速くて不評だったが、今回も加速中
*ActiveRecordはRailsにおけるMVCのM
*オブジェクト(モデル)は単数形、テーブルは複数形、プライマリキーは"id"
*日本に生まれた人は、手形はtegatasテーブルになってしまうが諦める。
*規約は絶対ではないが、フレームワークは郷に入れば郷に従え
*Railsリファレンスはgem_serverを起動して見よう
*トロトロしてたら10分でRailsなんか作れないので急げ

*Create
**update_at,create_atは何もしなくても日付が入るので便利
**createはインスタンスを作成し、同時に保存
**newはインスタンスを作成、saveメソッドで保存

*Read
**基本はfind、find(:first)は1件だけ、find(:all)は全てが配列で返ってくる。
**find_by_フィールド名、find_all_by_フィールド名というメソッドも使える
**複雑な場合はfine_by_sqlでSQLを記述

*Update
**update_attributeはひとつのフィールドだけが対象で、validationはなし
**update_attributesは複数のフィールドの変更、validationあり
**全てのフールドが更新されるので、大きなデータを保持している場合は注意

*Delete
**destroyは、作成したインスタンスのdestroyメソッドで消せる
**destroyで削除したインスタンスは変更できない
**destroyであれば、before_saveなどで削除時メールを飛ばすとかできる
**deleteはインスタンスを作成せずに削除

*findのオプションが色々ある。
*readonlyでfindしたインスタンスは変更できるがsaveの段階で例外が発生する
*readonlyはdestroyでインスタンスを変更したときのタイミングとは違うことに注目

まとめ
**今回はActiveRecordの基本中の基本
**Railsのドキュメントを見ることになれるといい

感想
*前回同様、かなりのスピード。でも復習前提でこのペースでいいような気がします。
*createとnew等、比較して説明してもらったのはわかりやすかった。
*いつも親切丁寧にありがとうございます。



!!! 「Rails Chat の仕組みを読み解く」by moriq さん(レポート よしだあつし)

発表の概要
** Rails Chat開発歴史
** Rails Chatの動作原理

Rails Chatの歴史

*Flash XMLSocketを使ったリアルタイム通信を行うプラグインが開発される
** Flash Socket Plugin(by Alex君)
   ↓
** Jaggernaut(by Alex君)
   ↓
** Tigerbaumkuchen(by artonさん)

*負荷の実験のためにRails Chatが作られる
*オフレコモードやruby-code-modeなど次々と改良中

Rails Chatの動作原理
**クライアントサイドではAjax+Flash
**サーバーサイドではpushサーバーとrails

***クライアント-サーバー間はpushサーバーとFlashによる通信が行われる。
***pushサーバーを用いることでリアルタイムであるにもかかわらずサーバーの負荷が軽い
***デザインがかっこいい

まとめ
**詳しくは発表資料のほうを見ていただいたほうがよさげ。
**実際のRails Chat は http://andworkspace.net/

感想
**moriqさんの丁寧な解説が素敵だった。
**開発現場のドラマチックな展開が想像できてちょっとドキドキした。
**拙い文章ですいません。

!! コメント
*2006-08-20 (日) 13:21:26 小波 : データモデルをバブルチャートにその場で書き下ろして,それをテーブル設計に使うという流れはとても新鮮でした。

*2006-08-23 (水) 02:10:23 わたなべこうぞう : 複合主キーが使えない問題を回避するプラグインがあるようです。さすがRailsですね。http://compositekeys.rubyforge.org/ 太田さん、情報ありがとうございました。
{{comment}}

!! 反応リンク集
* http://d.hatena.ne.jp/iR3/20060819#1155970025
* http://d.hatena.ne.jp/noamister/20060820
* http://d.hatena.ne.jp/iR3/20060820#1156065707
* http://pub.ne.jp/hanakuma/?entry_id=286923
* http://d.hatena.ne.jp/omochist/20060820/1156062496
* http://znz.s1.xrea.com/t/?date=20060819#p01

{{trackback}}

* trackback : [[diazepam tablets ( diazepam 5 mg)|http://www.wesleyan.edu/admission/cardinalkey/_discussion/000003f5.htm]] (2007-05-05 (Sat) 14:02:35)
""uqaware ub

* trackback : [[cheap generic cialis ( cialis)|http://academic.missouriwestern.edu/MGT418-01/_disc1/0000025e.htm]] (2007-05-05 (Sat) 13:20:55)
""acaja usosuho

* trackback : [[celexa ( celexa 20mg)|http://courses.csusm.edu/vsar305kd_discussion/_disc1/0000020a.htm]] (2007-05-05 (Sat) 12:19:46)
""usunoz ajobi

* trackback : [[cheap carisoprodol ( carisoprodol)|http://www.belkcollege.uncc.edu/fhfabian/Oldstuff/_discThurs/00000307.htm]] (2007-05-05 (Sat) 10:54:52)
""aqayoh qsaaxu

* trackback : [[butalbital drug ( butalbital)|http://personalweb.smcvt.edu/gsl520/_discussion1/00000293.htm]] (2007-05-05 (Sat) 10:07:31)
""uawp ufe

* trackback : [[ativan pill ( ativan online)|http://www.atl.devry.edu/GenEd/_disc2/0000143e.htm]] (2007-05-05 (Sat) 09:30:31)
""cqaeqeju oejy

* trackback : [[ambien ( buy ambien)|http://departments.weber.edu/charo2/_disc2/00002a49.htm]] (2007-05-05 (Sat) 08:22:45)
""ahir kiaviqew

* trackback : [[alprazolam 1 mg ( alprazolam)|http://www.msubillings.edu/BusinessFaculty/Leonard/_disc310/00000100.htm]] (2007-05-05 (Sat) 07:34:02)
""ha hiaxu

* trackback : [[adipex weight loss ( adipex)|http://www.coe.ohio-state.edu/mmerryfield/638%20Discussion%201/_disc1/000001fc.htm]] (2007-05-05 (Sat) 05:58:00)
""aecilc uefirm

* trackback : [[acyclovir 800 ( acyclovir)|http://ritelink3.dsu.edu/_discussion2002/00002ac0.htm]] (2007-05-05 (Sat) 05:19:22)
""ourulig qii

* trackback : [[valium ( valium)|http://industech.mccneb.edu/jgencarelli/_disc1/000001a9.htm]] (2007-05-05 (Sat) 03:23:36)
""keos uog

* trackback : [[ultram ( ultram prescription)|http://e-courses.cerritos.edu/mbalmages/_disc140/00000120.htm]] (2007-05-05 (Sat) 02:24:24)
""oagq re

* trackback : [[tramadol ( tramadol buy)|http://faculty.oxy.edu/yuhas/arth160/discussion/_disc1/00000297.htm]] (2007-05-05 (Sat) 01:44:58)
""eviaw al

* trackback : [[tadalafil ( tadalafil tablet)|http://intra.som.umass.edu/mannino/_disc1/00000a99.htm]] (2007-05-05 (Sat) 00:29:52)
""laaqum xa

* trackback : [[drugs soma ( soma)|http://www.wvutech.edu/sga/_reqdis/0000529d.htm]] (2007-05-04 (Fri) 23:23:24)
""uv yaax

* trackback : [[antidepressant prozac ( prozac)|http://coehp.boisestate.edu/compass/_disc9/0000021b.htm]] (2007-05-04 (Fri) 22:24:21)
""otog ogo

* trackback : [[propecia ( hair loss propecia)|http://farmmanagement.aers.psu.edu/discuss/_disc4/0000007a.htm]] (2007-05-04 (Fri) 21:40:49)
""maumanec uki

* trackback : [[paxil ( paxil)|http://spider.georgetowncollege.edu/english/burch/Eng479/discussion/_disc1/00000294.htm]] (2007-05-04 (Fri) 20:30:52)
""jpouli ntaihio

* trackback : [[meridia ( meridia order)|http://www.dscc.edu/Farley/_disc2/00003c0d.htm]] (2007-05-04 (Fri) 19:45:31)
""uqoen iisadurq

* trackback : [[levitra ( levitra sale)|http://math.colstate.edu/jyates/_disc2/000001fe.htm]] (2007-05-04 (Fri) 18:30:16)
""vuiton ysuoye

* trackback : [[buy hydrocodone online ( hydrocodone)|http://www.wesleyan.edu/admission/cardinalkey/_discussion/000003e0.htm]] (2007-05-04 (Fri) 17:41:02)
""eap imimijir

* trackback : [[fioricet ( fioricet)|http://academic.missouriwestern.edu/MGT418-01/_disc1/00000194.htm]] (2007-05-04 (Fri) 17:01:17)
""fuunamuv ocic

* trackback : [[diazepam 5 mg ( diazepam)|http://courses.csusm.edu/vsar305kd_discussion/_disc1/000001fe.htm]] (2007-05-04 (Fri) 15:52:11)
""evupuv djeuze

* trackback : [[buy cheap cialis ( cialis)|http://www.belkcollege.uncc.edu/fhfabian/Oldstuff/_discThurs/000002fb.htm]] (2007-05-04 (Fri) 14:52:21)
""eewak ualh

* trackback : [[celexa ( celexa antidepressant)|http://personalweb.smcvt.edu/gsl520/_discussion1/00000287.htm]] (2007-05-04 (Fri) 13:58:19)
""beevune jii

* trackback : [[watson carisoprodol ( carisoprodol no prescription)|http://www.atl.devry.edu/GenEd/_disc2/00001417.htm]] (2007-05-04 (Fri) 12:56:20)
""iap dvoedupe

* trackback : [[[Ruby] 第5回Rails勉強会@関西 (趣味的にっき)|http://d.hatena.ne.jp/ha-tan/20060819/1155961001]] (2006-08-22 (Tue) 06:35:50)
"" 久しぶりのRubyの話題です。Rails勉強会は初めてです。というか自分のPCにもRailsインストールしてなかったりします。積読もぜんぜん減ってないし… とりあえず自分用のメモを残します。素人なんでよくない記述が多そうです。 アジャイルにデータモデリング by 渡辺幸三さん

* trackback : [[Rails 勉強会@関西 第5回 (Nov's daily? report)|http://nov.tdiary.net/20060819.html#p01]] (2006-08-21 (Mon) 12:34:39)
""今回はスタッフとして初参加、つか、いきなりプロデューサっす。
""未決だった司会者とかタイムキーパーとかも、自発的に決まったのでよかったです。
""ご協力頂いたすべての人に感謝します。

* trackback : [[勉強会@関西 第5回に行ってきました。 (:ValueSide => "陽のあたる方へ")|http://blog.steprize.com/articles/2006/08/21/railskansai-005]] (2006-08-21 (Mon) 11:01:36)
""Rails 勉強会@関西 第5回に行ってきた。
""Rubyとあわせて3回目の参加。今回もとても楽しかった。

* trackback : [[Rails 勉強会@関西 - 5 (ふぇみにん日記)|http://kazuhiko.tdiary.net/20060819.html#p01]] (2006-08-21 (Mon) 00:20:07)
""前回は、「予定よりもかなり少ない時間だったので焦ってぐだぐだになった」という感じでしたが、今回は「予定どおり少ない時間だったので速めにサクサク進んだ」という感じにできたと思います。
""全体的なストーリーはかなりの部分をあゆさんが担当してくださいましたし、実際の進行もあゆさんがメインでとても楽しくペア・プレゼンテーションできました。

* trackback : [[Rails 勉強会@関西 第 5 回参加 (SmallStyle)|http://www.smallstyle.com/20060819.html#p01]] (2006-08-20 (Sun) 23:40:30)
""Rails 勉強会@関西 第 5 回に参加してきました

* trackback : [[「第5回 Rails 勉強会@関西」にいってきた (端っこなひとの備忘録)|http://animemo.seesaa.net/article/22599597.html]] (2006-08-20 (Sun) 23:21:14)
""8月19日(土)の「第5回 Rails 勉強会@関西」に行ってきた。  Railsはおろか、Rubyすら出来ないのだけども楽しそうな噂を聞いていたのでいってみた。  勉強会も宴会もいい雰囲気で楽しかった。 宴会の料理の量はすごかったなあ。  いろいろと勉強になった。Railsで何かを作..

* trackback : [[第5回 Rails勉強会@関西に行ってきたよ (itoshi.tv - Weblog)|http://itoshi.tv/d/?date=20060820#p01]] (2006-08-20 (Sun) 20:36:19)
""最初のRails環境セットアップは聞けず. でも目的だった ActiveRecord 入門と「アジャイルにデータモデリング」が聞けたので満足だった.

* trackback : [[[Ruby][勉強会]Rails 勉強会@関西 第5回に参加してきた (だらだらやるよ。)|http://d.hatena.ne.jp/nagakura_eil/20060820/1156063752]] (2006-08-20 (Sun) 17:49:25)
"" またまたパソコン持たずにふらりと遊びに行ってきましたよっと だってうちの子重いんですもの。。。 メモとるのは紙のほうが使いやすいしねー てなわけで軽くれぽれぽ どれも楽しめたのですが、個人的なヒットは渡辺さんの「アジャイルにデータモデリング」ですねー といっ

* trackback : [[[Ruby]on Rails : 第5回Rails勉強会@関西 (もち)|http://d.hatena.ne.jp/omochist/20060820/1156062495]] (2006-08-20 (Sun) 17:28:19)
"" ちょっとした個人的なまとめ.録音したい.だれかポッドキャストしてくれないかな.他力本願過ぎて泣ける. アジャイルにデータモデリング 業務システムに使用するには,Railsには不十分なとこがあるよね 業務システムはこーゆーもんだからこーゆー風に改善して欲しいな,み

* trackback : [[【感想】RubyOnRails 勉強会@関西とデータモデリング (プログラマの思索)|http://forza.cocolog-nifty.com/blog/2006/08/rubyonrails__2087.html]] (2006-08-20 (Sun) 16:59:23)
""デスマーチ・プロジェクトに束の間の休日ができたので、RubyOnRails 勉強

* trackback : [[[ruby]第5回rails勉強会@関西のログ (jetの日記)|http://d.hatena.ne.jp/rudeboyjet/20060820/p2]] (2006-08-20 (Sun) 13:44:26)
"" 言ってきました第5回rails勉強会@関西。 そしてまたもやロガーになってしまった! ってことでログ。 僕の担当はmoriqさんによる「Rails Chat の仕組みを読み解く」。 railsを使う上でのネックはやっぱりrubyが重いってところでこれも一種の負荷軽減の仕組み(なんやと思う)。

* trackback : [[Ruby関西Rails勉強会 (プログラミング日誌)|http://www.tokoi.org/program/2006/08/rubyrails.html]] (2006-08-20 (Sun) 07:16:49)
""Ruby関西Rails勉強会行って来ました。 メインのセッションでは、渡辺先生の...

// !! 持ってきてほしいもの
// * ノート PC(あれば)
// * 名札(あれば)
// * ケーブルタップ。二股等。(電源コンセントは大量に足りないと予想されるので、多めに持ってきてください)
// * USBメモリ(あれば)

// !! 参加登録

// 参加を希望される方は、以下の手順でお願いします。

// # [[Rubyist SNS|http://jp.rubyist.net/sns/]] にアカウントを作成してログインする。
// # 「[[Ruby関西|http://jp.rubyist.net/sns/?m=pc&a=page_c_home&target_c_commu_id=1]]」というコミュニティに参加する。
// # 「Ruby関西」コミュニティに、「[[Rails 勉強会@関西 第5回|http://jp.rubyist.net/sns/?a=page_c_event_detail&target_c_commu_topic_id=13]]」と「[[Rails 勉強会@関西 第5回 懇親会|http://jp.rubyist.net/sns/?a=page_c_event_detail&target_c_commu_topic_id=15]]」という二つのイベントがあるので、それぞれに参加登録をする('''勉強会と懇親会は別イベントでの登録です''')。

// '''Rubyist SNS への参加や Ruby 関西コミュニティへの参加だけではイベント登録は完了していませんのでご注意ください。'''

// なお、この Rubyist SNS は、とりあえずイベントの参加登録を主目的に暫定的に運用しているものです。
// 2006年秋頃までに、有志が Rails で頑張って別システムを作成して置き換えられたらいいなぁ、と思っています。:)