すごい Yesodたのしく学ぼう!
ふつうの人がすごい Haskell を使ってふつうにWebプログラミングする
自己紹介• 名前:島崎清山     (@seizans) �• 勤務:ワークスアプリケーションズ(ERPパッケージ)• 仕事:AWS とか・・・セキュリティとか・・・雑用?• 生まれ:ファミコンやディズニーランドと同年• エンジニア歴:3年• ...
Haskell はじめたきっかけ• @mayahjp   氏(今日は来てない)に聞きました。 私�「プログラミングできるようになるためには ������どうすればいいですか?」 @mayahjp 「では関数型言語をやってください」 私�「どれを...
Yesod はじめたきっかけ• 結婚することが決まったので(式は来週)「じゃあ Haskell の Yesod でWebサイトを作ろう!」
Yesod で作ってみました• 結婚式二次会用サイト:happiage• ソース:https://github.com/seizans/happiage• Mighty:ハイパフォーマンスWebサーバ、Haskell製• Angel:daemo...
Yesod の紹介• は既に結構されている• @tanakh   さん(2011年5月)  • http://www.slideshare.net/tanakh/yesod�• @cutsea110 さん(2011年12月)  • http:/...
Yesod の感触• ふつうにフルスタックWebアプリケーション・フレームワーク• プラスYesod(Haskell)の特徴によるメリット • 次のスライドで• マイナスまだ不足しているものがあるデメリット • ドキュメント • 型が難しくてコ...
Yesod の特徴• 意識せずに書いてデフォルトで安全な感じになる• コンパイル時の型チェックで実行時エラー削減 • リンク切れが無い(アプリ内リソースに対して) • 通信エラー等の実行時エラーは残る• セキュリティ系の対策 • XSS、CSR...
Yesod の情報源• 環境構築や動作確認  • http://www.yesodweb.com/page/quickstart  • http://www.mew.org/~kazu/material/2012-mighty-    yeso...
ライブコーディング• 目的 • ふつうの人がYesodを使ってふつうにWebプログラミング    できそうだと感じてもらう• twitterや肉声でフォローしてください!  • 説明不足な感じになると思うので説明とか  • そこはこう書いた方が...
簡単なCRUDページを作る• cabal install yesod は割愛(結構時間かかる)• yesod init と cabal-dev install• Model定義する  • config/models• ルーティングとハンドラとh...
簡単なCRUDページを作る• ハンドラを別ファイルに分割しよう • Application.hsがHandlerを読んでいる • ExitFailure11にご注意• UPDATEフォームを作ろう • 初期表示値を       Maybe Ta...
TodoのCRUDを作る(できれば)• Todo定義 • Dayフィールドや、Boolフィールドを作ってみる• Todo新規作成ページ• Todo更新ページ• Todoリストビューページ
次回予告• YesodHackathon やる予定(希望者がいれば) • デプロイ • 認証周り • メールと連携 • REST対応 • とか?• Yesod書いてみたい人は下記に参加登録してみてください Yesod Hackathon(仮) ...
聴いてくれてありがとう!
Upcoming SlideShare
Loading in …5
×

20120527yesod

3,067
-1

Published on

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,067
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
21
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

20120527yesod

  1. 1. すごい Yesodたのしく学ぼう!
  2. 2. ふつうの人がすごい Haskell を使ってふつうにWebプログラミングする
  3. 3. 自己紹介• 名前:島崎清山 (@seizans) �• 勤務:ワークスアプリケーションズ(ERPパッケージ)• 仕事:AWS とか・・・セキュリティとか・・・雑用?• 生まれ:ファミコンやディズニーランドと同年• エンジニア歴:3年• Haskell歴:1年• ふつうのプログラマ• こいつがわしを育てた • 書籍「プログラミングHaskell」 • Haskell初心者勉強会 • スタートHaskell
  4. 4. Haskell はじめたきっかけ• @mayahjp 氏(今日は来てない)に聞きました。 私�「プログラミングできるようになるためには ������どうすればいいですか?」 @mayahjp 「では関数型言語をやってください」 私�「どれをやるといいですか?」 @mayahjp 「Haskellをやってください」
  5. 5. Yesod はじめたきっかけ• 結婚することが決まったので(式は来週)「じゃあ Haskell の Yesod でWebサイトを作ろう!」
  6. 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. 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. 8. Yesod の感触• ふつうにフルスタックWebアプリケーション・フレームワーク• プラスYesod(Haskell)の特徴によるメリット • 次のスライドで• マイナスまだ不足しているものがあるデメリット • ドキュメント • 型が難しくてコンパイルエラーの意味を読むが難しい • デプロイ
  9. 9. Yesod の特徴• 意識せずに書いてデフォルトで安全な感じになる• コンパイル時の型チェックで実行時エラー削減 • リンク切れが無い(アプリ内リソースに対して) • 通信エラー等の実行時エラーは残る• セキュリティ系の対策 • XSS、CSRF、SQLI、に対してふつうに対策 • セッションハイジャックもデフォルトで防ぐ(IP確認)• スケーラブル • スティッキーでないセッション • セッションは適切に処理してCookieに全部格納
  10. 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. 11. ライブコーディング• 目的 • ふつうの人がYesodを使ってふつうにWebプログラミング できそうだと感じてもらう• twitterや肉声でフォローしてください! • 説明不足な感じになると思うので説明とか • そこはこう書いた方が良いよ! とか• 今度Yesodハッカソンをやろうと思います • Yesodやってみようという人はそちらもどうぞ • そのときではゆっくり説明します• ネタは以下 https://github.com/seizans/todo
  12. 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. 13. 簡単なCRUDページを作る• ハンドラを別ファイルに分割しよう • Application.hsがHandlerを読んでいる • ExitFailure11にご注意• UPDATEフォームを作ろう • 初期表示値を Maybe Tag 型で受け取ろう• リストビューページを作ろう • 各行からUPDATEフォームへのリンクを作ろう• リストビューにページングを実装しよう • selectList に渡す option list• DefaultLayoutを変更しよう • template/default-layout-wrapper.hamlet
  14. 14. TodoのCRUDを作る(できれば)• Todo定義 • Dayフィールドや、Boolフィールドを作ってみる• Todo新規作成ページ• Todo更新ページ• Todoリストビューページ
  15. 15. 次回予告• YesodHackathon やる予定(希望者がいれば) • デプロイ • 認証周り • メールと連携 • REST対応 • とか?• Yesod書いてみたい人は下記に参加登録してみてください Yesod Hackathon(仮) http://bit.ly/KR7v32
  16. 16. 聴いてくれてありがとう!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×