More Related Content
Similar to 20120527yesod (15)
More from Seizan Shimazaki
More from Seizan Shimazaki (6)
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�
- 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