Node.jsで学生向けe-learningサイトを作った話

5,349 views
5,232 views

Published on

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

No Downloads
Views
Total views
5,349
On SlideShare
0
From Embeds
0
Number of Embeds
3,053
Actions
Shares
0
Downloads
12
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Node.jsで学生向けe-learningサイトを作った話

  1. 1. Node.jsで学生向け e-learningサイト を作った話 東京Node学園祭2013 2013/10/26 吉田徹生 @teyosh
  2. 2. 自己紹介 名前:吉田徹生 よしだ てっせい twitter:@teyosh facebook:https://www.facebook.com/teyosh 所属:(株)シンドバッド・インターナショナル 2013年7月からJOIN
  3. 3. アジェンダ ・サイト紹介 ・サーバ構成 ・利用しているパッケージ ・質疑応答
  4. 4. サイト紹介 スタディ・タウン 2012年10月23日公開 中学受験生向け過去問映像授業 http://chugakujuken.studytown.jp/
  5. 5. サイト紹介 首都圏110校 平成22年度〜平成25年度分の過去問 解説映像授業
  6. 6. 開発言語 PHPで作成 利用フレームワーク ・Fuel PHP
  7. 7. コンテンツを増やす!! 2013年8月24日 中学生、高校生向けコンテンツ開始 http://www.studytown.jp http://jh.studytown.jp http://hi.studytown.jp
  8. 8. サーバ構成 AWS ・EC2 ・RDS ・SES ・Elasticache ・S3 ・Route53 ・DynamoDB ・VPC ・VPN Gateway etc
  9. 9. サーバ Webサーバ スタティック及びProxy ・nginx ログ収集 ・Tresure Data node ・0.10.x
  10. 10. APサーバ まずはフレームワーク(ミドルウェア)を探す 候補として flatiron Matador express
  11. 11. flatiron http://flatironjs.org/ nodejitsu社で公開されている サーバ側とクライアント側で同一フレームワークで 作成 ・情報が少ない ・選定時はアップデートが頻繁だった
  12. 12. Matador http://obvious.github.io/matador/ Twitterを作成したObvious社が作成 Connect.jsを利用 ビューにはSoyNodeを利用している ・選定時は残念ながらベータだった
  13. 13. SoyNode Closure Templates GoogleのClosure toolsの一つ https://developers.google. com/closure/templates/
  14. 14. express ほぼ、デファクト・スタンダード 情報豊富で調べやすい ミドルウェアが豊富で設定しやすい ・expressで決定
  15. 15. 利用パッケージ mysql : "MySQLに接続" connect-memcached : "セッションをElasticacheで共有" connect-ltsv-logger : "connectのログをltsvで出力"
  16. 16. connect-ltsv-logger express2.xに最適化されている addressの取得で落ちる proxy利用のため、keep-aliveで対処 X-Forwarded-Forがres.getHeaderではなくてreq. getに変更
  17. 17. 利用パッケージ stream-file-archive : "ログの吐き出しをストリームでファイルに書き込み" winston : "ログ出力を制御" ejs : "View Templateをejsを利用"
  18. 18. stream-file-archive Logをstreamで吐き出して、それをファイルに書き 込んでいます logrotateができるようになる
  19. 19. 利用パッケージ validator : "入力バリデート用" config : "$NODE_ENVによりconfigファイルの読み替え" async : "非同期処理を簡単に扱います"
  20. 20. async callback地獄からの開放 DBへの接続がメインで利用 async.series(); async.each(); async.parallel();
  21. 21. 利用パッケージ dateformat : "日時のフォーマットを簡単に整形" moment : "日時のパースもできるスグレモノ" lodash : "ライブラリとして利用、9割配列処理で利用"
  22. 22. 利用パッケージ pm2 : "デーモン化、クラスタ起動もお手の物" browser : "クッキーを簡単に利用してくれるHTTPClient" node-uuid : "uuidを生成"
  23. 23. browser ・クッキーを利用しないといけない場合にとっても 便利 ・after();で順アクセスが簡単にできる
  24. 24. 利用パッケージ aws-sdk : "AWSを利用するため主にS3のSigned URL生成" ua-parser-js : "ユーザーエージェントでコードの出し分け" nodemailer : "SESでSMTPを利用"
  25. 25. nodemailer SMTP SES Sendmailで簡単に利用できる ・unicodeでの利用がメイン ・Shift_JISやJISで送信にはiconvでゴニョゴニョ
  26. 26. 利用パッケージ "email-templates" : "メール本文をejsでtemplate化" "ssh2" : "SFTPを簡単に利用" "csv" : "CSV読み込み"
  27. 27. ssh2 Pure JavaScriptのSSHクライアント SFTPの利用がNodeで簡単に!! ・keyもuser passも思いのまま ・rmdirはあるのにrmが無い・・・
  28. 28. フロントエンド バックオフィス系では AngularJSを利用 Yeomanでひな形作成
  29. 29. AngularJS ・Google主導で開発 ・双方向バインディング ・DI ・最近、人気急上昇中!! ・AngularJS Japan User Group募集中 https://groups.google.com/forum/#!forum/angularjs-jp
  30. 30. 新卒・中途採用のご案内 システム関連の仕事に興味がある方   下記までご連絡ください   Mail career-si@sindbad-int.com   TEL 03-5468-8835 採用担当 浜園まで 新卒採用イベントもやっております   『失敗しない就活術と人事の本音・裏側』 11/6(水)、11/9(土) 18:00~20:30 @当社 渋谷オフィス  ◎参加資格:現大学 3年生(15新卒採用生)  TEL 03-5468-8835 採用担当 浜園まで ©2013 SINDBAD INTERNATIONAL CO.,LTD. ALL Rights Reserved.

×