Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Node.jsで学生向け
e-learningサイト
を作った話
東京Node学園祭2013
2013/10/26

吉田徹生 @teyosh
自己紹介
名前:吉田徹生 よしだ てっせい
twitter:@teyosh
facebook:https://www.facebook.com/teyosh
所属:(株)シンドバッド・インターナショナル
2013年7月からJOIN
アジェンダ
・サイト紹介
・サーバ構成
・利用しているパッケージ
・質疑応答
サイト紹介
スタディ・タウン
2012年10月23日公開
中学受験生向け過去問映像授業
http://chugakujuken.studytown.jp/
サイト紹介
首都圏110校
平成22年度〜平成25年度分の過去問
解説映像授業
開発言語
PHPで作成
利用フレームワーク
・Fuel PHP
コンテンツを増やす!!
2013年8月24日
中学生、高校生向けコンテンツ開始
http://www.studytown.jp
http://jh.studytown.jp
http://hi.studytown.jp
サーバ構成 AWS
・EC2
・RDS
・SES
・Elasticache
・S3

・Route53
・DynamoDB
・VPC
・VPN Gateway
etc
サーバ
Webサーバ スタティック及びProxy
・nginx
ログ収集
・Tresure Data
node
・0.10.x
APサーバ
まずはフレームワーク(ミドルウェア)を探す
候補として
flatiron
Matador
express
flatiron
http://flatironjs.org/
nodejitsu社で公開されている
サーバ側とクライアント側で同一フレームワークで
作成
・情報が少ない
・選定時はアップデートが頻繁だった
Matador
http://obvious.github.io/matador/
Twitterを作成したObvious社が作成
Connect.jsを利用
ビューにはSoyNodeを利用している
・選定時は残念ながらベータだった
SoyNode
Closure Templates
GoogleのClosure toolsの一つ
https://developers.google.
com/closure/templates/
express
ほぼ、デファクト・スタンダード
情報豊富で調べやすい
ミドルウェアが豊富で設定しやすい
・expressで決定
利用パッケージ
mysql :
"MySQLに接続"
connect-memcached :
"セッションをElasticacheで共有"
connect-ltsv-logger :
"connectのログをltsvで出力"
connect-ltsv-logger
express2.xに最適化されている
addressの取得で落ちる
proxy利用のため、keep-aliveで対処
X-Forwarded-Forがres.getHeaderではなくてreq.
get...
利用パッケージ
stream-file-archive :
"ログの吐き出しをストリームでファイルに書き込み"
winston :
"ログ出力を制御"
ejs :
"View Templateをejsを利用"
stream-file-archive
Logをstreamで吐き出して、それをファイルに書き
込んでいます
logrotateができるようになる
利用パッケージ
validator :
"入力バリデート用"
config :
"$NODE_ENVによりconfigファイルの読み替え"
async :
"非同期処理を簡単に扱います"
async
callback地獄からの開放
DBへの接続がメインで利用
async.series();
async.each();
async.parallel();
利用パッケージ
dateformat :
"日時のフォーマットを簡単に整形"
moment :
"日時のパースもできるスグレモノ"
lodash :
"ライブラリとして利用、9割配列処理で利用"
利用パッケージ
pm2 :
"デーモン化、クラスタ起動もお手の物"
browser :
"クッキーを簡単に利用してくれるHTTPClient"
node-uuid :
"uuidを生成"
browser
・クッキーを利用しないといけない場合にとっても
便利
・after();で順アクセスが簡単にできる
利用パッケージ
aws-sdk :
"AWSを利用するため主にS3のSigned URL生成"
ua-parser-js :
"ユーザーエージェントでコードの出し分け"
nodemailer :
"SESでSMTPを利用"
nodemailer
SMTP
SES
Sendmailで簡単に利用できる
・unicodeでの利用がメイン
・Shift_JISやJISで送信にはiconvでゴニョゴニョ
利用パッケージ
"email-templates" :
"メール本文をejsでtemplate化"
"ssh2" :
"SFTPを簡単に利用"
"csv" :
"CSV読み込み"
ssh2
Pure JavaScriptのSSHクライアント
SFTPの利用がNodeで簡単に!!
・keyもuser passも思いのまま
・rmdirはあるのにrmが無い・・・
フロントエンド
バックオフィス系では
AngularJSを利用
Yeomanでひな形作成
AngularJS
・Google主導で開発
・双方向バインディング
・DI
・最近、人気急上昇中!!
・AngularJS Japan User Group募集中
https://groups.google.com/forum/#!forum...
新卒・中途採用のご案内
システム関連の仕事に興味がある方
  下記までご連絡ください

  Mail career-si@sindbad-int.com
  TEL 03-5468-8835 採用担当 浜園まで
新卒採用イベントもやっております...
Node.jsで学生向けe-learningサイトを作った話
Node.jsで学生向けe-learningサイトを作った話
Node.jsで学生向けe-learningサイトを作った話
Node.jsで学生向けe-learningサイトを作った話
Node.jsで学生向けe-learningサイトを作った話
Node.jsで学生向けe-learningサイトを作った話
Upcoming SlideShare
Loading in …5
×

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

5,831 views

Published on

Published in: Technology
  • Be the first to comment

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.

×