こまぶろ

技術のこととか仕事のこととか。

7/27 WEBエンジニア勉強会 #08 でNode.jsについてLTした

7/27に渋谷で開催されたWEBエンジニア勉強会 #08で、LT(5分)登壇をしてきました。6/26の「カイゼン・ジャーニー・ライトニングトークス」に続いて2回目のLT登壇でした。

web-engineer-meetup.connpass.com

ky-yk-d.hatenablog.com

WEBエンジニア勉強会について

WEBエンジニア勉強会は、OSCA(@engineer_osca)さんが主催している勉強会で、「初心者でも参加できる勉強会」というコンセプトで運営されています。今回で8回目となる勉強会ですが、僕は前回(#07)に聴く側で参加したのが初参加でした。

twitter.com

techblog.oscasierra.net

OSCAさんとは、前回のときの懇親会の他に、別のイベントでもお話をする機会があり、登壇ウェルカムと言っていただいていました。また、アウトプットメンターのカカカカック(@kakakakakku)さんからも、「WEBエンジニア勉強会参加したんですね、次回は発表しませんか?」と義務付けられ提案されていたので、今回の登壇につながりました。

LTについて

スライド資料

テーマ

テーマは悩んだものの、AWS Lambdaを通じて少しずつ触るようになっているNode.jsについて話すことにしました。具体的な題材としてhttpモジュールを選ぶことで、「WEBエンジニア」勉強会という場にもふさわしいものにできるとも考えました。

内容としては、Node.jsのhttpモジュールの基本的なコードを読み解いていき、Node.jsの特徴を垣間見ることができれば、と考えました。httpsモジュールのサンプルコードをPromiseで書き換えるという前々回の記事の内容を掘り下げて、Node.jsの仕組みを理解し、それを共有することを目標としていました。

ky-yk-d.hatenablog.com

準備をする際に参考にした資料

準備としては、基本的にはNode.jsのAPIリファレンスを読んでいました。このリファレンスはあくまでAPIリファレンスなので、内部の実装がどうなっているかはわかりにくかったため、補う意味でGitHub上のソースコードも読むようにしていました。

github.com

また、ネット上の記事も多く参照しました。調査が難航したこともあり、非常にたくさんの記事を読んだので、全てを挙げることはできませんが、一部を下記に示しておきます。

書籍としては、下記のものを参照しました。古い本ですが、Node.jsの仕組みやコアモジュールについて記述が充実していたので非常に勉強になりました。

サーバサイドJavaScript Node.js入門 (アスキー書籍)

サーバサイドJavaScript Node.js入門 (アスキー書籍)

課題と反省点

内容について(技術ネタとして)

調査をしている中で、libuvというどうやらNode.jsにとって極めて重要らしい存在にまで辿り着きました。イベントループがNode.jsの基礎にあるのですが、これを担っているのがlibuvというC言語のライブラリというわけです。となると、これを理解することはNode.jsについてより深く理解することにつながるはずだったのですが、一筋縄ではいかず、満足に調査することができませんでした。

github.com

また、httpモジュールの理解という側面ではTCP、ソケットについても多少なりとも理解できればよかったのですが、これもまともに取り組むことができませんでした。ネットワークについては基礎的な部分もきちんと理解しておきたいと思いながらも、後回しにしてしまっています。さっさと『マスタリングTCP/IP』を読まねば……

マスタリングTCP/IP 入門編 第5版

マスタリングTCP/IP 入門編 第5版

形式について(アウトプットとして)

学生症候群の一言に尽きます。

今回、登壇する日程は1ヶ月前から決まっていました。準備に費やす時間はたくさんあったにも拘わらず、(技術面でのつまずきもあったものの)集中することができずに時間が経ってしまい、当日まで直し続けることになりました。

特に、発表としての準備に時間を割くことができなかったのは反省です。構成ももう少し練ることができたと思いますし、5分間という時間の制約への対応も不十分で、スーパー早口&時間オーバーとなってしまいました。

総括

正直に言って、今回のLTは、僕にとってはかなり苦い経験になりました。技術知識の伝達としても、発表としてもクオリティが低かったことを認めざるを得ません。聴き手のみなさんには申し訳ない気持ちでいっぱいです。

とはいえ、これで懲りてやめてしまっては、それこそ申し訳が立たないので、また機会を見つけて発表をしたいです。次回は、内容の固定を早期に仕上げることを意識しようと思います。

最後に

僕自身もそうですが、知識・経験に自信を持てず、「自分が人前で発表するなんて・・・」と思っている人は少なくないのではないでしょうか。しかし、「そういった人でも気軽に登壇にチャレンジできる会にしたい」というOSCAさんの思いで運営されているのがこの勉強会だと思いますので、興味が少しでもある方は登壇してみてはいかがでしょうか。

そして、最後の最後になりますが、登壇という機会を与えてくださったOSCAさん、運営に携わっていた方々、それにLTを聴いてくださったみなさん、ありがとうございました!

サーバサイドJavaScript Node.js入門 (アスキー書籍)

サーバサイドJavaScript Node.js入門 (アスキー書籍)

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル