ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

エンジニャーコミュのNode学園祭2014

  • mixiチェック
  • このエントリーをはてなブックマークに追加
東京Node学園祭2014で聞いた各sessionの所感をまとめてみる

2014-11-15(土) 10:00~19:00@サイバーエージェントセミナールーム

コメント(8)

朝 10:25~12:00

workshop - socket.io v1.0
@TonyKovanen @nkzawa

socket.ioを使ってチャットルームを作るところから、最終的にはFPSゲームを作るまでをライブコーディングでやりますというなかなか気骨のあるsessionだった。
部屋を作って入るところまで作って時間がなくなり、いきなりゲームができたところまでジャンプした。ちょっと残念だったけど、まぁ時間が決まってるライブコーディングなんてそんなもんかな。
わりとしっかりFPSゲームが仕上がっていてびっくりした。socket.ioだけでここまでできるってすごい(小並感)。ただ途中でTonyに変わってから英語になって全然聞き取れなくなってしまった(Tonyはsocket.ioのCommitter)。

個人的にはJSの楽しさが伝わってきてよかった。

https://github.com/rase-/socket.io-workshop-full
の各Commitを参照
URL貼り忘れてた

Node学園祭2014
http://nodefest.jp/2014/
昼休憩
企業Javascript飯
登壇者のかたがたが普段会社でどのようにJSを使って開発をしているのかということを聞いて答えるというのを勝手にやっていたらしい。
僕は松屋で牛丼を食べていたので見れなかった。下の和幸とかで弁当買って食えばよかった。


13:00頃~14:10頃

基調講演
@rauchg

socket.io作者氏(超イケメン)による、ファイルアップロードモジュールについての公演
HTTPってファイルアップロード用に作られたものじゃないよね、かといってFTPも一時停止とかできないし回線が切れたら最初からアップロードしなおしでイケてない。そこでXHR2というバイナリサポートをしている技術(?)を使って、自分でファイルアップロードに最適化したモジュールを作ってしまおう!ということでPartyというモジュールを開発中とのことでした。
BitTorrentみたく分割してアップロードができる・一時停止にも対応しているらしい。
まだ開発中なのでこうご期待。もう少ししたらgithubで公開するとのこと
https://github.com/Automattic

寝不足なのと食後なのと英語なのとで半分くらい寝てしまったorz
これたった1000円で聴けるのやばいな
14:30頃~15:00頃
node.js for beginners, grunt gulp browserify webpack bower
@ahomu

サイバーエージェントのあほむさんによる現代のJS開発手法についての発表。初心者向けによくまとまっていた。だいたいもう知ってるけど同じ時間にやってるもう1つのほうが英語で寝てしまいそうなのでこっちに来た。 (What’s coming in Node, Express & LoopBack @ijroth)

まずはnpmとbowerについて。
- npm...node.jsで動く、サーバー側で使うモジュールを依存関係含めコマンド一発でインストールしてくれる便利なやつ
- bower...node.jsで動く、クライアント側で使うモジュールを依存関係含めコマンド一発でインストールしてくれる便利なやつ
jQueryとかはnpmでもインストールできたと思う。個人的には基本的にはnpmで事足りる印象。ただそれでもbowerでインストールしないといけない場合もあるらしく、そうするとnpmとbowerでそれぞれconfigファイルができてしまってあまりイケてない。今、「configファイルをnpmで全てまとめよう!」みたいな動きが出てきているらしく、もしかすると数年後にはbowerのいらない世界がやってくるかもしれないとのこと。

次にgulp, gruntのこと。
- grunt...ファイルのuglifyやjshintなどの操作をコマンド一発でまとめて行えるようにする、いわゆるタスクランナーと呼ばれるやつ。
- gulp...gruntだと設定ファイルが冗長になりがちなので、そこを修正すべく後発で開発されたタスクランナー。あほむさんはどちらかというとビルドシステムと呼んでいた。ちなみに弊社で使ってるのはgulpのほう。
gruntのほうが利用できるプラグインは多いが、gulpでもよく使うものはほぼ用意されているので特に凝ったことをするのでないならどちらもプラグインについてはほぼ問題にならない。両者で違いが大きいのはconfigファイルの書き方。gruntはuglifyの設定はこう、jshintの設定はこう、と1つ1つ別々に記述していかないといけないが、JSON形式で書くので比較的わかりやすい。gulpはまとめて設定をかけるので短く書くことができる。普通にjsで書く。

最後にモジュールシステムのこと。
冗長なレガシーコード群をメンテナンスしやすくするやつ。依存関係を解決したり、ファイル分割・結合などをしやすくする。4つほど紹介していた。ちなみにぼくはモジュールシステムを触ったこともなければJSのレガシーコードをどうにかしたこともないので、ありがたみがよくわからなかった。
- Browserify...commonjsをブラウザで実行できるようにするやつ。インストールや設定が簡単で導入ハードルが低い。
- Require.js...AMDというらしい。設定をちゃんと書かないといけないらしく、それがけっこう重い。
- webpack...導入ハードルは高め。でも大きなアプリケーションになるとかなり心強い頼りになる。
- Duo...githubからコードを引っ張ってきてビルドしてくれるらしい。どうやってるのかだいぶ気になった。すごいけど、相当マイナーなものを使うとかじゃない限りは無利子て使うこともないのではと思った。
あほむさん的には、最初はBrowserifyがおすすめで、大きいアプリケーションになってきたらwebpackへの移行がおすすめらしい。(Browserify→webpackの移行はかなり簡単らしい)流行ってきたらDuoを思い出してみるといいかも。


https://speakerdeck.com/ahomu/front-end-with-node-dot-js-tools
gruntとgulpについてなんかあったので共有。Javascriptエンジニア養成読本にわりと詳しく書かれてたな。
http://qiita.com/cognitom/items/db88babebeb869a4a198
午後2つめ
テスト用ライブラリ power-assert, その開発で学んだ npm モジュール設計の勘所 - @t_wada
http://www.slideshare.net/t_wada/power-assert-nodefest-2014

みんな大好きt-wadaさん登場。(テスト駆動開発の神です)
http://twitpic.com/dzgwk8
power-assertの紹介とデモに始まり、npmモジュールを設計するときのマインドとか哲学について。power-assertは個人的にクソお世話になってる。ちなみに弊社slackでテスト書きたくないって言うとbotが↑を流してくれる。超どうでもいいですね。

まずはpower-assertの紹介とデモ
jsのテストモジュールってassertとかchaiとかあったけど、英語での自然言語での記述に最適化しすぎてコードが冗長だったり、テストに失敗してもfalseとしか出なかったりで使いにくい。そこでpower-assertができました。
- シンプルにテストが記述できる
- 失敗したときはnoisyにエラーを吐く
↑これUNIXの考え方らしい。ここで名著を紹介。ちなみに僕はまだ読んでいない。http://www.amazon.co.jp/dp/4274064069

power-assertの内部構造について
1.コードを受け取る
2. コードをesprimaでASTに変換(ここでエラー表示に必要な情報を持つ)
3. estraverseでASTを変更
4. escodegenでコードに戻す
どうしてこうしているのかは僕にはまだ理解できなかった。
ただここで重要なのは、それぞれの機能をそれぞれのモジュールに分けていること。

次第にモジュール設計の哲学について(超ためになった)
- 機能は1つにしぼってシンプルに作る。(1つのことをうまくやれ(UNIX哲学))
- 関連する機能はまた別のモジュールに分けることで、必要なモジュールだけをインストールできるようにする。そうするといろいろな組み合わせを人々が試すので世の中が便利になる。
- Easy is not simple


最後がクソかっこよかった。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

エンジニャー 更新情報

  • 最新のトピック

  • 最新のイベント

    • まだ何もありません

  • 最新のアンケート

    • まだ何もありません

エンジニャーのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング