devlog

主に web 開発とかプログラミングについて書きます

関西Node学園 3時限目 で「AWS Serverless Express 入門」というLTの登壇をしてきました

f:id:nkgr:20180805012451p:plain開始30分後からの参加だったので最初のお二人の登壇が聞けなかったのが残念だった。 京都なら避けられないだろうなー。

概要 📄

  • 関西Node学園 主催のNode.js に関する勉強会 3回目

nodejs.connpass.com

  • 参加者は24人 登壇者は4人
  • 日時:2018/08/03 19:00
  • 場所: LINE KYOTOオフィス 京都府京都市下京区四条通麸屋町西入る立売東町28番地 SAKIZO PLAZA B1F
  • 隠れ家的イベントスペースだった

成果物 🎉

スライド: AWS Serverless Express 入門

他の登壇者の方のスライドなど 🎉

www.slideshare.net

github.com

speakerdeck.com

感想 🗒

自分のLTに関して

  • 参加者の方から「よい刺激を受けた」と言ってもらえたのは本当に嬉しかった
  • 登壇しているときに参加者の方が真剣に聞いてくれいる感じがしてありがたかった。割とすぐに使えて実用性のあるライブラリだったからかな。
  • 勉強会は登壇したほうが得るものが大きい。
  • Twitterの フォロアーが増えた🤣
  • 懇親会の時にスライドがおしゃれと言ってもらえたのが嬉しかった(こなみかん)

スライドについてはフリーでダウンロードできる keynote のテンプレートを利用した

slidesmash.com

時間の関係上唯一聞けた「LINEで馬券を購入する」 のLTについて

  • 次の自分のLTの準備してたらか話半分しか聞けなかった...
  • 雑に説明すると Line の Bot に馬券情報を送り、馬券を購入するというもの
  • 実際の作りはLine Messaging API を利用して AWS Lambda 上のHeadless Chrome を動かして JRA の Webサイトに情報を入力しながら馬券購入を行うというもの
  • 実際に作るときのハマりポイントも紹介
  • タイトルがキャッチー。結構笑いの多いLTになってたのが印象だった
  • 登壇者の方と話をしたが、画像の権利関係には気をつけていたのでいらすとやを使ったそう。いらすとや最強。

ファミコン + 電話線で馬券を購入できた

  • ドリキャスがネット対戦を本格導入した初のハードだったことを考えると、ファミコンで馬券が買えたというのはかなり当時でも珍しかったのでないだろうか。まあ世代じゃないから知らんけど

最終的に実現したいサービス作りのために、実現すべき技術的な課題を解決していく課程が明確

  1. 馬券購入アプリを作りたいがJRAにはAPIがない → なければ作る
  2. HeadlessChromeのブラウザ自動実行でAPI化して購入する → Macではなくサーバーで動かしたい
  3. Lambda で実現する → Lambda のコンソールで動かすのではなく外部API化したい 
  4. API GateWay → LineでAPIを叩く

自分のやってることをちゃんと人に説明できる人のスライドって感じ。

「どんなWebサービスでもAPI化できる」というパワーワード

確かにHeadless Chromeを使うとChromeでアクセスできるWebの操作はほぼ可能になる。 ただし、スクレイピングと同じ問題でWebサイトの変更の 事前検知 が難しい。

変更検知はdomのElementを探してなかったらエラーにするとかで実現できるだろうけど、それはアプリケーションがエラーを吐いて初めて開発者が気づく。 サービスの性質によるけど、お金取って顧客提供するようなサービスではさすがに使えないよなーと思う。

Selenium vs puppeteer

参加者質問で Selenium とどう違うか?みたいな質問が出ていた。

ブラウザの自動実行をサポート実現するという点では同じ。 どちらも windows / mac / linux で使える

Selenium

  • Java / Python / Ruby / Node.js など言語から利用できる各種ライブラリが出ている
  • Selenium にブラウザは含まれないのでブラウザ毎のドライバーのダウンロードとPATHが通った場所への配置が必要
  • ブラウザのユーザー操作を記録して再実行 / プログラムからの利用ができる Selenium IDEというブラウザ拡張機能がある

puppeteer

  • 基本 Node.js がメイン
  • npm install するとすぐ使える(node_modulesにlocal_chromium が入ってる)
  • local_chromium のダウンロードはスキップしてpuppeteer.executablePath() で特定のパスを指定してChromeを実行できるのでApplication フォルダの Chromeも選べる

その他参加者の方や運営の方と話したこと

  • 普段何の開発しているか?(Frontend ? Backend ? インフラ?) → 全部やってるという人がいてフルスタックかよ、すげーってなった。
  • 業種は自社サービス?受託? → 両方いらっしゃってそれぞれ、辛みとか楽しさを語ってもらえてよかった。
  • 他にどんな技術スタックに興味があるか? →  Vue.js やってるって方がいて、VueはやっぱHotだなと。
  • Node学園は Nodeがメインだけど、そろそろ フロントエンドの話があってもいいのでは?と思った。Node.js をバックエンドでガチで使って運用している企業は比較的に少ない印象。Node.js の利用用途はフロントエンドの開発環境構築の方が使う人多いと思うので、フロントエンドのLTとかあると参加者の間口が広がりそう。
  • さくらインターネットはコンソール画面のリニューアルでフロントエンド募集しているらしい。
  • 運営の方がめっちゃ低姿勢だし、色々サポートしてもらったので登壇者として本当にやりやすかった。いつかこういう勉強会の運営にも携わりたい。

  • Lineのエンジニアミートアップがある。さっき見たらもう埋まってたけど、抽選みたい。ちょうど出産予定日前後だから無理だなー。行きたいけど。

line.connpass.com

参加されたされた方々のブログ