別にしんどくないブログ

技術のことや読書メモを書いています

関西Node学園 8時限目を開催しました。 #kng8

nodejs.connpass.com

サイボウズ(株)大阪オフィスにて開催しました。 Node.js v12がLTSになり、v13がリリースされたタイミングに合わせて開催しました。

当日の様子です。

togetter.com

登壇内容

Node.js v12のES Modules / @shimataro999

t.co

Node.js v12でES Modulesを使う方法や、CommonJSとES Modulesでの相互運用の話、importするファイルの拡張子の補完などについて話をしていただきました。

Node.jsではES Modulesを実験的にサポートしています。従来Node.jsはCommonJSというモジュールシステムを採用してきましたが、ここ数年Node.jsはWebの仕様に合わせていこうとしています。従来のCommonJSでのモジュール解決を破壊してしまうとnpmパッケージの多くが使えなくなる可能性があります。そのためNode.jsとしてもなかなかES ModulesをNode.jsでサポートするのに時間がかかっています。

資料中にも出てきましたが、以下の記事がNode.jsのES Modulesについて詳しく書かれています。

medium.com

Node.js v13の気になる変更点 / @shisama_

speakerdeck.com

10/22にリリースされたNode.js v13について話をしました。
内容は以下のブログに書いた内容と重複するので割愛します。

shisama.hatenablog.com

AmazonAPIGatewayのLambdaAuthorizerでJWTを検証するLambdaをServerlessFrameworkでデプロイする / @is_ryo

docs.google.com

API Gateway Authorizersで使えるLambda AuthorizerでのJWT(JSON Web Token)の検証を行う話をしていただきました。
JWKやjsonwebtokenを使ったJWTの検証、ServerlessFrameworkを使ったLambdaにAuthorizerをデプロイする方法について紹介してくれました。

serverless.com

私個人としてはこの辺はかなり弱いので、「そんなものがあるのか」と初めて知ることばかりでした。

今回紹介していただいた内容を踏まえたサンプルも用意していてもらっています。

github.com

Cloud Storage for Firebaseとセキュリティルール / @mochiya98

docs.google.com

FirebaseのCloud Storageにファイルを保存するときにメタデータに紐付かないファイルはアップロードを制限する方法について話をしていただきました。
Cloud Storageにはメタデータを付与してアップロードすることができます。しかし、クライアントが任意にメタデータを付与できてしまいます。任意ではなく、決まったメタデータ(例えば有効期限やパスワード)を必ず付与したい場合直接のファイルアップロードを禁止にします。ファイルのメタデータはFirestoreに保存しておき、アップロードはCloud FunctionsでAdminSDKから書き込みを行うことでファイルとメタデータの紐付けを担保するという方法を紹介していただきました。

Trying State Manegemant without Redux(updated) / @nkgrnkgr

speakerdeck.com

Reduxを使わずにReact HooksとContextで状態管理を行う話をしていただきました。
Reduxはコードが冗長になり、教育コストが高めということでReduxを使わずにReactだけでやってみようとしたとのことです。 ContextとuseStateを使うことでグローバルな状態管理を行うことができます。Contextを使いたいときはuseContextでContextを取り出すことができます。
また、useReducerを使うことでReduxと同じようにactionが発行するtypeによって処理を分岐させるreducer関数を書くことはできます。しかし、この場合はReduxの冗長さは解決できません。
また、Reduxはredux-thunkやredux-sagaなどのミドルウェアが便利なので使っているという方は多いのではないでしょうか。しかし、Reduxを使わないことでJSのファイルのサイズを抑えることができたり、冗長さを回避するように書くことができるメリットはあります。

asyncQuerySelector / @salamander_jp

docs.google.com

MutationObserverを使ったライブラリでターゲットのDOMが標示されるまで待つことができます。

デモページを用意してもらっています。

https://codepen.io/04/pen/ZEEKVyz?editors=1010

また、同様のことが可能なライブラリがあります。asyncQuerySelectorはこのライブラリを参考に作ったとのことです。

github.com

最後に

今回はNode.jsの発表もあり、LambdaやCloud Functions、フロントエンドの話など多彩な内容だったのが良かったと思います。
私も知らないことが多かったので勉強になりました。

今回、参加者(登壇者含む)が35名だったのに対してキャンセルが30名も発生してしまいました。プレミアムフライデーということもあってタイミングが良くなかったのかも知れません。
また、当日キャンセルせずに来られなかった方が6名ほどいました。

他の勉強会の主催者からも金曜日は避けた方がいいというアドバイスをいただいているのもあり、当日参加していただいた方々に何曜日が都合悪いかアンケートを取ってみました。 その結果、火曜と水曜がほぼ手が上がらなかったので、火曜と水曜に開催してみようかなと思いました。

関西Node学園では開場提供をしていただける方やJavaScriptやNode.jsに関わる発表をしていただける方を通年募集しています。
もし、興味がございましたらTwitterやshisama07@gmail.com宛にメールをしていただけると幸いです。

最後までお読みいただきありがとうございました。