こんにちは。LAPRASのシニアエンジニアの@denzowillです。久々に筆をとりました。今回は先日配信していたモブプロ生配信の振り返り記事です。
アドベントカレンダーから始まった企画
9月から10月に掛けて「4時間でRedashにSQLを投げてみる」というテーマで@to_ryo_endo、@Chan_moroと三人でモブプロ生配信を行いました。もともとLAPRASでは、定期的にモブプロ生配信を行っており今回はその5回目の企画でした。
モブプロ生配信は参加メンバー毎の個性を元にテーマを決めています。私はDBAをキャリアの出発点にしており、社内でも開発以外にデータ整備を行っているため、DBに関連するテーマでということになりました。そこで、2020年のアドベントカレンダーで書いたこの企画を元にすることにしました。
社内でデータ分析基盤として使っているRedashにCLIでクエリを投げるツールを作ることにしました。名前はRedashにSQLをなげるのでRedaSQLにしました。ちなみに上の記事は間に合せで書いており、実際のコードもハリボテでその後1年近く何も見てなかったので開発は完全にゼロからのスタートでした。
4時間という制限
モブプロは毎回手を動かせる時間を4時間に制限しています。4時間で一つのツールを使えるレベルまで作り上げ、企画をちゃんと終了させる必要があります。また、視聴者が飽きないように山場を作る必要もあるという中々厳しいディレクター(nagasako)からの要望もありました。
そこで以下の対応をすることにしました。
- 4時間で一定の完成を目指すためには
- →終わらなくてもいいじゃないかという行きあたりばったり方式を採用
- 視聴者を飽きさせないためには
- →毎回メガネを変えてビジュアル面で驚きを与える
- →毎回メガネを変えてビジュアル面で驚きを与える
特にメガネについては都合5回の配信があったため用意するのが大変でしたが、最後は会社から試験的に支給されているOculus Quest2を使ってVR内からの配信(ヘッドセットをかぶっている私が見えるだけ)をお送りすることができました。
視聴者との一体感
今回は内容的にRedashユーザー以外を全て置き去りにするマニアックなテーマでした。実際モブプロ中もRedash自体のソースコードを確認しながら進めたりと興味がなければ誰得な部分も多かったです。
しかし、Redashに興味がある方・詳しい方には好評いただき、また配信中にTwitterで頂いたアドバイスを活かすこともできました。
これまでのモブプロより、一層視聴者とともに作り上げるコンテンツに意図せず仕上がったかなと思います。
出来上がったもの
配信の4時間がおわった時点でここまで到達しました。
https://github.com/denzow/redasql/tree/32d3675ad0!1500f6f!3800bf47d0693fd9f56fe3b
実際に以下の事ができるようになりました。
- 任意のredash serverへの接続
- 対話型でのSQL実行
- 実行結果の整形
- テーブル情報の参照
そういった意味では、当初予定してた実際に使えるツールとしての体裁は整えることができたと思います。最終回でも無事に達成感を持って皆で祝いながらエンディングを迎えることができたのでコンテンツとしての区切りもちょうどよかったと思います。
また、三人のラフなやりとりは普段の開発風景そのままであり、LAPRASのエンジニアチームの雰囲気も少しはお伝えできたかなと思っています。
その後
無事にツールの体裁を整えて終わらせることはできましたが、やりきれなかったところもたくさん有りました。
- 速度優先で型等が不十分
- READMEの整備ができていない
- 入力補完が未実装
- PyPIに未登録
- テスト+CI環境が未整備
- Proxy対応
- Redash version 9以上への対応
書き出すと結構ありますね。10/20の配信の後に個人的に開発を進めて上述の課題は一応解決することができました。見た目はそレほど変わっていませんが、補完周りや表示形式の拡張が行われているのがわかるかと思います。
内部的にはAPIのレスポンスの大半にDataclassで型をつけており、またGitHub Actionsを使用しPyPIへのアップロードとテストを回すことができる環境も整備することができているので、今後いろいろな改修がしやすい状況になっています。。配信終了後からのdiffはかなりのサイズになっています。もはやコードとしては別物に近いですが、それでも配信で作成した軸があるこその改善でした。
ある程度、粗も出し終わったのでPyPIへの登録も完了しています。
おわりに
配信を見てくださった皆様のおかげもあって、4時間でRedaSQLを完成させることができ、そのおかげで更にブラッシュアップした形で公開することもできました。中々人と状況を選ぶツールではありますが、興味がある方は是非RedaSQLを試してみてください。
今回のモブプロ生配信の4時間分を1つにまとめた動画もありますので、イッキ見したい!という方はぜひこちらもご視聴ください。
最後になりましたが、LAPRAS では私たちと一緒に開発をしていただけるエンジニアを募集しています!私たちの会社やチームに興味を持っていただいた方はぜひご連絡ください。
Senior Software Engineer, Backend
Senior Software Engineer, Frontend
Software Engineer, Backend
Software Engineer, Frontend