asterisc

技術ネタ中心にその他雑多なこと

東京Node学園祭2016に参加しました

2016年11月12, 13日と開催された東京Node学園祭に参加してきたので、その報告をします。

nodefest.jp

 

 

登壇したはなし

僕は初日にLTしました。発表資料はこれ。

speakerdeck.com

 

色々書いてありますが、

  1. Node.jsを始めとするJavascript界隈は特に言語の変化が激しい。
  2. 今書いているES2015やES2016だっていつかLegacyになるときがくる。そのときに、どうやって安全に移行しますか。
  3. 色々方法はあるけど、TDDで継続的リファクタの環境や土壌、文化を今から作っておくのは1個の正解じゃない?

っていうことが言いたかったことです。そう考えるとタイトルミスった感が。まあしょうがないね。

 

この話をしようと思った背景

2つあります。

1つめは、ここ半年くらい月1でとある著名な方とTDDのペアプロをさせていただく機会があり、色々と学んだこと、感じたことを一度言語化してまとめたかったからです。

2つめは、まさに今業務であまりメンテされてこなかったNode.jsのシステムをちくちくリファクタしつつ新しいNodeのバージョンに移行する作業をやっていて、そのときTDDの考え方に大分助けられている実感があり、それを共有したかったからです。

 

1つめに関しては、やりたいことは概ねやれたと思います。やっぱり言語化すると色々と知識が整理されて良いですね。正しく発表するために色々と調べるし。

2つめに関しては正直この問題に直面している人がどれくらいいるのかわからないので、なんとも感触がありません。。。

今回、業務で古いシステムをリファクタする際、真っ先に手をつけたことはテストが不安定もしくは壊れているコードの修正でした。とにかく正しいテストが正しく回る状況を作り出し、あとは単体テストに守られながらまずい切り方をしているAPIを直したり、サポートされなくなったnpmモジュールの置換などを行ったりしました。その方針はかなりうまくいっているかなと思っていて、現在のところスケジュールもまきで行けているし、大きな手戻りも発生していません。ココらへんの話はプロジェクトが終わったらまた別でできると良いですね。。

 

印象に残ったセッションのはなし

ひとつめ: Douglas CrockfordのKeynote

Seif Projectの話でした。

The Seif project - O'Reilly Media

構想自体は壮大すぎてもはやピンと来なかったレベルなんですが、

 

「WWWはドキュメントをdeliverするための仕組みであり、Applicationをdeliverする仕組みとしては必ずしも最適ではない」

という話はすごい共感できました。

特に、2日目午後にやったVue.jsとReact-Reduxの話を聞いてもった感想がこちら

 

ふたつめ: Boarding the tiny framework train by @yoshuawuyts

http://tacit-fly.surge.sh/

Yoshuaさんの話です。chooの開発裏話から、Yoshuaさんのvim力が卍解してたライブデモまであってとにかく楽しめた発表でした。

choo、チュートリアルだけやったことあるのですが、react-reduxをベースとしていながらもシンプルな作りで変なところで悩まないすごく好感が持てる作りでした。フロントエンドのFWが色々出てきている中で、流行るかどうかはわかんないですけど、積極的に使っていきたいなあと思います。なにせ書いてて楽しいし。

 

chooのリポジトリはこちら

github.com

 

みっつめ: How Do We Get Along With Static Types by @__gfx__

How Do We Get Along With Static Types // Speaker Deck

jsと静的型の話です。

jsと型の話は少し考えるところがあって、懇親会でも「jsは型は必要だと思うか?」みたいな質問をしたんですが。。。

懇親会で色々な人に話を聞いた結果、型になにを求めるかは人によって様々で、IDEでのリファクタやAutocompleteをより効率的にやるために型が欲しい人から、型によってよりプログラミングの表現力を向上させたい人まで、色々な幅がありました。まだjsに型をつける系のやつ全然触っていないので、Flowtypeあたりから試して見ようかなあ。。。

 

これ以外にもたくさんのセッションがあり、それぞれ実践的かつ濃い内容ばかりで、色々刺激を受けました!特に、Debugging Node.js Performance Issues in Productionで話していた内容はすぐに業務に活かせそう。

 

さいごに

国内外スピーカーとの調整や、当日の同時通訳など、限られた時間と予算の中で実行するのは大変に困難だったかと思います。運営の皆様の配慮とホスピタリティのお陰で、非常に楽しめた2日間になりました。

この場を借りてNode学園祭の運営の皆様にお礼を言いたいと思います、
本当にありがとうございました!

 

まとめ

Node学園祭でTDDのはなししてきた。リファクタがキマると気持ちいいです。

 

 

あ、あとCode and Learnでおくったパッチマージされるといいなあ。