WEBエンジニア勉強会 #06に参加してきた
勉強会に参加してきたので復習用メモです。
web-engineer-meetup.connpass.com
WEBエンジニア勉強会の特徴
- 若手エンジニア向けに役立つ内容
- 言語に偏らない汎用的な技術について学べる
- 発表初心者でも登壇しやすい雰囲気
ハッシュタグはこちら↓
#WEBエンジニア勉強会06 hashtag on Twitter
またこの勉強会の主催者がどんな思いで勉強会を始めたのか、しがないラジオのsp.6a, bで聞くことができます。
今回の会場は渋谷にあるココラブルさんのオフィスです。 勉強会はまるで秘密基地のようなかっこいい部屋で行われました。
アイスブレイクは会場を提供して頂いた@ariarijpさん
@ariarijpさんはRedashのコミッター兼Redash Meetupの運営者でもあり、 この勉強会の事前アンケート結果もRedashで表示して見せてくれました。
発表とメモ
CSVと戦うためのPandas by @ariarijpさん
一発目の発表は引き続き@ariarijpさん
「Redashで扱うDB用データの前処理をPandasでやってみたよ」というお話でした
PandasはCSVなどのデータソースをデータフレームにして使う
->行や列の抽出、各要素への関数適用など、Pandasを使うとデータ分析に必要な前処理などが簡単にできる。
今AidemyでPandasを触ってるんですが、前職でエクセルで前処理していたのを思い出すと泣きそうになるくらい便利です 笑
はじめてのサーバーレス関数 by @engineer_oscaさん
サーバーレスとは?
作成したアプリをデプロイすると、サーバーの存在を意識せずにいい感じに動かしてくれる
- サーバーを管理する労力を削減できる
- 負荷に応じていい感じにスケーリングしてくれる
- アクセス量だけのミリ秒レベルの課金
サーバーレス"関数”とは?
サーバーレスの仕組みの上で動かす、入力と出力が明確な小さな機能のこと。APIやトリガーなどに利用
サービス例
- Azure -> Azure functions
- AWS -> Lambda
- GCP -> Cloud functions
特徴
ものにより使用言語、課金単位、時間制限が異なる
時間制限があることから、バッチ処理は想定していない
どんなときに使う?
- HTTPリクエスト
- タイマー起動
- DBの更新トリガー
- ファイルストレージの更新トリガー
- GitHub webhook
OSCAさんの個人プロジェクト:WEBクローラ関数の実装
->指定したURLのサマリを取得する関数をデプロイ
->個人ニュースサイト製作に利用
デプロイツールはApache Mavenを利用
メリット
無料枠が大きい、越えてもやすい、コード書くだけ
注意点
PCが動いた分だけ課金される。間隔を開けるとPCの起動時間が必要になり、初動に時間がかかる
まとめ
クラウド移行のファーストステップとしてどうでしょう?
API仕様管理フレームワーク「Swagger」 by @ykaganoさん
SwaggerをREST APIのお仕事が楽になるよ、というお話でした
使い方
- Swagger editorを利用
- yaml形式でAPIの仕様を書く
swagger yamlにかけること
- メタデータとサーバー情報の記述
- エンドポイントの記述
- モデル定義の記述
.
- APIのモックをオンラインで作るのはセキュリティ的に不安
->オフライン版があるよ
- レスポンスを変えるには?
->yamlを編集 or serviceフォルダのjsを編集
さらに
REST APIのソースコードにアノテーションを記述して ソース=ドキュメントを作ったりできるが、yamlでそこまでやると運用コストがでかいので状況とご相談
WEBエンジニアのための転職術 〜転職と採用の経験から〜 by @yuhei_kondoさん
30歳まで未経験からIT業界のキャリアをスタートして色々経験した上で思ったこと、というお話でした。
採用者目線での話もあり、転職活動する上でこういうこと気を付けるべき注意点が参考になりました。
- 自走して技術を身に着ける
- 一つの現場に依存しすぎない
- 受ける会社からみて自分に価値があることを示せるか
ゼロから始めるPWA入門 by @__syumaiさん
PWAを使って色々やってみたよ、というお話でした。遊び心があるデモ付きで、聞いてて楽しい発表でした^^
PWAとは?
- ウェブの良いところ
手軽、更新が楽、データが軽い
- アプリの利点
オフライン可能、プッシュ通知、動作が軽い
->PWAならアプリの利点をウェブで実現できる
事例
Twitter lite, Instagram(画像のフィルターをすべてJSで作っている!)
PWAの構成要素
- Service worker (一番大事)
- Cache Storage
- Web App Manifest
開発ツールについて
- Chrome Dev Toolが最強
Youtubeに詳しい動画がある!(Google社員がアップ) Totally Tooling Tips with Addy Osmani & Matt Gaunt - YouTube
- Lighthouse(Chrome拡張)
表も裏もTypeScriptでWebサイトをリニューアルした話(タイトル変更) by @zuckey_17さん
しがないラジオパーソナリティずっきーさんの発表でした。
SPAで作っていたしがないラジオWebページをサーバサイド/フロントともにTypeScriptで書き直したときの経験をシェア、というお話
なぜやったの?
- OGPタグのみSSR
- 音声マネージド・サービスからの脱却
参考ブログ↓
watch_severもwatch_clientで変更を検知
type.d.ts:型定義を共通化
->実はサーバサイドとフロントで使いたい型が違い、結局分けた
全リソースぶっ壊し回避のためのterraform構成 by @3s_hvさん
しがないラジオsp.17aに出演されていたWeb系インフラエンジニアのVTRyoさんの発表
この一年Terraformを触ってきて感じた便利な点や大変だったことのお話でした。
Terraformとは?
AWSなどのリソースをコード管理できるツール
コード化されたインフラのメリット
- 人為的ミス回避
- 工数削減
- インスタンス落とし忘れ回避
大変だったところ
- 書ける人が少ない
インフラ寄りの人はあまりコードを書かない
- リソースが再作成
tfstateファイルの管理ミス。。
->terraform.tfstateファイルは重要!
- 元々管理しづらいディレクトリ構成になっていた
メンテしやすくしたよ!
まだテーブル定義書をエクセルで書いて消耗してるの? by @nabedgeさん
タイトルは煽り系ですが、最終的にはイイ話に収束していました 笑
テーブル定義書を自動生成して運用コストを下げたよ、というお話 (Dockerはイイぞ、というお話も)
- DBフルートを利用(JavaのORM)
変わるものと変わらないものを見極めてツールをチョイスしよう
- RDBSはあまりかわらない
- ”CREATE TABLE HOGEGOGE”は変わらない
- ツールは変わる
テーブル定義書はある方がいい
- インデックスと外部キー制約、ユニーク制約の存在までわかるやつ
- ER図もあるほうがいいけど、なくてもいい
->ShemaSpyっていうER図作成ツールもあるけど。。
Docker / docker-composeは覚えておくと良い
- 異なる言語環境を必要とするツールをどう扱うか?
- すべてdockerコマンドで動かせるようにしておけば、どこでも動く
- ローカル環境としての利用
- 使いたいものに合わせて公式イメージを探そう
OSCAさんコメント: 最初はエクセルでDB定義するが、 運用になったら実DBをマスターとして管理をするなどフェーズにより使い分けた方が良い
打ち上げ
近くの飯屋にて。コミュニティ運営の話とか色々
次回
5/18 (金) Yahoo! Lodgeにて