SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
すごい Yesod
たのしく学ぼう!
ふつうの人が
すごい Haskell を使って
ふつうに
Webプログラミングする
自己紹介
• 名前:島崎清山     (@seizans) �
• 勤務:ワークスアプリケーションズ(ERPパッケージ)
• 仕事:AWS とか・・・セキュリティとか・・・雑用?
• 生まれ:ファミコンやディズニーランドと同年
• エンジニア歴:3年
• Haskell歴:1年
• ふつうのプログラマ
• こいつがわしを育てた
  • 書籍「プログラミングHaskell」
  • Haskell初心者勉強会
  • スタートHaskell
Haskell はじめたきっかけ
• @mayahjp   氏(今日は来てない)に聞きました。

 私�「プログラミングできるようになるためには
 ������どうすればいいですか?」

 @mayahjp 「では関数型言語をやってください」

 私�「どれをやるといいですか?」

 @mayahjp 「Haskellをやってください」
Yesod はじめたきっかけ
• 結婚することが決まったので(式は来週)


「じゃあ Haskell の Yesod でWebサイトを作ろう!」
Yesod で作ってみました
• 結婚式二次会用サイト:happiage
• ソース:https://github.com/seizans/happiage
• Mighty:ハイパフォーマンスWebサーバ、Haskell製
• Angel:daemontoolsクローン、簡単で便利、Haskell製
• MongoDB:ドキュメント指向DB:カラムにリストを持てる
• (実はApacheも使用・・・SSLのために)


• 開発者:@dekosuke、@rf0444、@shokos、@seizans
• デザイン:同僚の人2人


 結婚予定のHaskellerの方はよろしければお使いください!
Yesod の紹介
• は既に結構されている
• @tanakh   さん(2011年5月)
  • http://www.slideshare.net/tanakh/yesod�
• @cutsea110 さん(2011年12月)
  • http://www.asahi-net.or.jp/~gi3k-itu/Yesod-
    Intro.pdf�
• @mr_konn さん(2012年2月)
  • http://blog.konn-san.com/article/20120324/
    yesod-technology-techtalk�
• @kazu_yamamoto さん(2012年3月)
  • http://www.mew.org/~kazu/material/2012-
    yesod.pdf�
Yesod の感触
• ふつうにフルスタックWebアプリケーション・フレームワーク
• プラスYesod(Haskell)の特徴によるメリット
 • 次のスライドで
• マイナスまだ不足しているものがあるデメリット
 • ドキュメント
 • 型が難しくてコンパイルエラーの意味を読むが難しい
 • デプロイ
Yesod の特徴
• 意識せずに書いてデフォルトで安全な感じになる
• コンパイル時の型チェックで実行時エラー削減
 • リンク切れが無い(アプリ内リソースに対して)
 • 通信エラー等の実行時エラーは残る
• セキュリティ系の対策
 • XSS、CSRF、SQLI、に対してふつうに対策
 • セッションハイジャックもデフォルトで防ぐ(IP確認)
• スケーラブル
 • スティッキーでないセッション
  • セッションは適切に処理してCookieに全部格納
Yesod の情報源
• 環境構築や動作確認
  • http://www.yesodweb.com/page/quickstart
  • http://www.mew.org/~kazu/material/2012-mighty-
    yesod.pdf
• あとは調べるために下(およびHayoo!(Hoogleは使えない...))
  • YesodBook http://www.yesodweb.com/book
  • ライブラリ
    • Database.Persist:DBアクセスする関数いろいろ
      http://hackage.haskell.org/packages/archive/
      persistent/latest/doc/html/Database-Persist.html
    • Yesod.Form.Field:Form部品いろいろ
      http://hackage.haskell.org/packages/archive/yesod-
      form/latest/doc/html/Yesod-Form-Fields.html
ライブコーディング
• 目的
 • ふつうの人がYesodを使ってふつうにWebプログラミング
    できそうだと感じてもらう
• twitterや肉声でフォローしてください!
  • 説明不足な感じになると思うので説明とか
  • そこはこう書いた方が良いよ! とか
• 今度Yesodハッカソンをやろうと思います
  • Yesodやってみようという人はそちらもどうぞ
  • そのときではゆっくり説明します
• ネタは以下
  https://github.com/seizans/todo
簡単なCRUDページを作る
• cabal install yesod は割愛(結構時間かかる)
• yesod init と cabal-dev install
• Model定義する
  • config/models
• ルーティングとハンドラとhamletを書いてページを作ろう
  • config/routes
  • Handler/Homu.hs
  • template/mado.hamlet
• フォーム雛形からwidgetを作ってhamletに入れ込もう
• フォームをPOSTに変えて、POSTリクエストを受けよう
• DB処理を書いて動作確認をしよう
  • runDB でDBトランザクションを記述
簡単なCRUDページを作る
• ハンドラを別ファイルに分割しよう
 • Application.hsがHandlerを読んでいる
 • ExitFailure11にご注意
• UPDATEフォームを作ろう
 • 初期表示値を       Maybe Tag 型で受け取ろう
• リストビューページを作ろう
  • 各行からUPDATEフォームへのリンクを作ろう
• リストビューにページングを実装しよう
  • selectList に渡す option list
• DefaultLayoutを変更しよう
  • template/default-layout-wrapper.hamlet
TodoのCRUDを作る(できれば)
• Todo定義
 • Dayフィールドや、Boolフィールドを作ってみる
• Todo新規作成ページ
• Todo更新ページ
• Todoリストビューページ
次回予告
• YesodHackathon やる予定(希望者がいれば)
 • デプロイ
 • 認証周り
 • メールと連携
 • REST対応
 • とか?


• Yesod書いてみたい人は下記に参加登録してみてください
 Yesod Hackathon(仮)
 http://bit.ly/KR7v32
聴いてくれて
ありがとう!

Mais conteúdo relacionado

Destaque

Haskell勉強会 in ie
Haskell勉強会 in ieHaskell勉強会 in ie
Haskell勉強会 in iemaeken2010
 
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ HaskellKazkuki Oakamoto
 
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad悠滋 山本
 
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」Kazkuki Oakamoto
 
すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!Haruka Nakajima
 
Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜aiya000
 

Destaque (9)

Yesod and Auth
Yesod and AuthYesod and Auth
Yesod and Auth
 
Haskell勉強会 in ie
Haskell勉強会 in ieHaskell勉強会 in ie
Haskell勉強会 in ie
 
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
 
Yesod(at FPM2012)
Yesod(at FPM2012)Yesod(at FPM2012)
Yesod(at FPM2012)
 
Haskell Lecture 2
Haskell Lecture 2Haskell Lecture 2
Haskell Lecture 2
 
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
 
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
 
すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!
 
Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜
 

Semelhante a 20120527yesod

Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13hanachin
 
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTScala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTpocketberserker
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?Shinichi Nishikawa
 
elasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるelasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるKatsushi Yamashita
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているpocketberserker
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座Shinichi Nishikawa
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料Takashi Aoe
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミングYusuke Sakurai
 
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介Ruby StyleStatsの紹介
Ruby StyleStatsの紹介Toshihiro Gotou
 
Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!Masaya Taji
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門Masaya Dake
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Shingo Furuyama
 
とあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たこととあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たことkamiyam .
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1Nishida Kansuke
 

Semelhante a 20120527yesod (15)

Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTScala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LT
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
elasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるelasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみる
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミング
 
Ppl
PplPpl
Ppl
 
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介Ruby StyleStatsの紹介
Ruby StyleStatsの紹介
 
Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 
とあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たこととあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たこと
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
 

Mais de Seizan Shimazaki

一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)Seizan Shimazaki
 
メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)Seizan Shimazaki
 

Mais de Seizan Shimazaki (6)

PFDS8.1
PFDS8.1PFDS8.1
PFDS8.1
 
Pfds20120304
Pfds20120304Pfds20120304
Pfds20120304
 
Cryptography
CryptographyCryptography
Cryptography
 
Digital Signature and PKI
Digital Signature and PKIDigital Signature and PKI
Digital Signature and PKI
 
一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)
 
メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)
 

Último

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (7)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

20120527yesod

  • 3. 自己紹介 • 名前:島崎清山 (@seizans) � • 勤務:ワークスアプリケーションズ(ERPパッケージ) • 仕事:AWS とか・・・セキュリティとか・・・雑用? • 生まれ:ファミコンやディズニーランドと同年 • エンジニア歴:3年 • Haskell歴:1年 • ふつうのプログラマ • こいつがわしを育てた • 書籍「プログラミングHaskell」 • Haskell初心者勉強会 • スタートHaskell
  • 4. Haskell はじめたきっかけ • @mayahjp 氏(今日は来てない)に聞きました。 私�「プログラミングできるようになるためには ������どうすればいいですか?」 @mayahjp 「では関数型言語をやってください」 私�「どれをやるといいですか?」 @mayahjp 「Haskellをやってください」
  • 6. Yesod で作ってみました • 結婚式二次会用サイト:happiage • ソース:https://github.com/seizans/happiage • Mighty:ハイパフォーマンスWebサーバ、Haskell製 • Angel:daemontoolsクローン、簡単で便利、Haskell製 • MongoDB:ドキュメント指向DB:カラムにリストを持てる • (実はApacheも使用・・・SSLのために) • 開発者:@dekosuke、@rf0444、@shokos、@seizans • デザイン:同僚の人2人 結婚予定のHaskellerの方はよろしければお使いください!
  • 7. Yesod の紹介 • は既に結構されている • @tanakh さん(2011年5月) • http://www.slideshare.net/tanakh/yesod� • @cutsea110 さん(2011年12月) • http://www.asahi-net.or.jp/~gi3k-itu/Yesod- Intro.pdf� • @mr_konn さん(2012年2月) • http://blog.konn-san.com/article/20120324/ yesod-technology-techtalk� • @kazu_yamamoto さん(2012年3月) • http://www.mew.org/~kazu/material/2012- yesod.pdf�
  • 8. Yesod の感触 • ふつうにフルスタックWebアプリケーション・フレームワーク • プラスYesod(Haskell)の特徴によるメリット • 次のスライドで • マイナスまだ不足しているものがあるデメリット • ドキュメント • 型が難しくてコンパイルエラーの意味を読むが難しい • デプロイ
  • 9. Yesod の特徴 • 意識せずに書いてデフォルトで安全な感じになる • コンパイル時の型チェックで実行時エラー削減 • リンク切れが無い(アプリ内リソースに対して) • 通信エラー等の実行時エラーは残る • セキュリティ系の対策 • XSS、CSRF、SQLI、に対してふつうに対策 • セッションハイジャックもデフォルトで防ぐ(IP確認) • スケーラブル • スティッキーでないセッション • セッションは適切に処理してCookieに全部格納
  • 10. Yesod の情報源 • 環境構築や動作確認 • http://www.yesodweb.com/page/quickstart • http://www.mew.org/~kazu/material/2012-mighty- yesod.pdf • あとは調べるために下(およびHayoo!(Hoogleは使えない...)) • YesodBook http://www.yesodweb.com/book • ライブラリ • Database.Persist:DBアクセスする関数いろいろ http://hackage.haskell.org/packages/archive/ persistent/latest/doc/html/Database-Persist.html • Yesod.Form.Field:Form部品いろいろ http://hackage.haskell.org/packages/archive/yesod- form/latest/doc/html/Yesod-Form-Fields.html
  • 11. ライブコーディング • 目的 • ふつうの人がYesodを使ってふつうにWebプログラミング できそうだと感じてもらう • twitterや肉声でフォローしてください! • 説明不足な感じになると思うので説明とか • そこはこう書いた方が良いよ! とか • 今度Yesodハッカソンをやろうと思います • Yesodやってみようという人はそちらもどうぞ • そのときではゆっくり説明します • ネタは以下 https://github.com/seizans/todo
  • 12. 簡単なCRUDページを作る • cabal install yesod は割愛(結構時間かかる) • yesod init と cabal-dev install • Model定義する • config/models • ルーティングとハンドラとhamletを書いてページを作ろう • config/routes • Handler/Homu.hs • template/mado.hamlet • フォーム雛形からwidgetを作ってhamletに入れ込もう • フォームをPOSTに変えて、POSTリクエストを受けよう • DB処理を書いて動作確認をしよう • runDB でDBトランザクションを記述
  • 13. 簡単なCRUDページを作る • ハンドラを別ファイルに分割しよう • Application.hsがHandlerを読んでいる • ExitFailure11にご注意 • UPDATEフォームを作ろう • 初期表示値を Maybe Tag 型で受け取ろう • リストビューページを作ろう • 各行からUPDATEフォームへのリンクを作ろう • リストビューにページングを実装しよう • selectList に渡す option list • DefaultLayoutを変更しよう • template/default-layout-wrapper.hamlet
  • 14. TodoのCRUDを作る(できれば) • Todo定義 • Dayフィールドや、Boolフィールドを作ってみる • Todo新規作成ページ • Todo更新ページ • Todoリストビューページ
  • 15. 次回予告 • YesodHackathon やる予定(希望者がいれば) • デプロイ • 認証周り • メールと連携 • REST対応 • とか? • Yesod書いてみたい人は下記に参加登録してみてください Yesod Hackathon(仮) http://bit.ly/KR7v32