tsyama記

プログラミングとそのほか

タガヤス その13 に行ってきた #タガヤス

はじめに

tagayas.connpass.com

タイムラインで、仙台に「タガヤス」という勉強会があることを知り、行ってみることにしました。
全然知らなかったんですがもう13回目なんですね…。自分の情報収集能力の無さがつらい。

まなび

今回の勉強会はインフィニットループの方4名のセッション + LT2名といった構成でした。
発表ベースで紹介していくのは冗長になりそうなので、今回得た学びをメモしていきます。

Amazon Athena

ログ出力の話で出てきたやつです。CloudWatchのログを食わせることでSQLのクエリを使えるらしい。超魅力。やってみたい。
ただちょっとクセがあるらしく、食わせるまでに色々処理を噛ませないといけないみたいです。インフィニットループさんではS3に吐いたCloudWatchのログをLambdaでちょこちょこ整形してやってからAWS Glueを通してAthenaで扱うようです。
ログをフル活用するような運用って面白そうでいいなーと思います。やりたい。やりたい。

Amazon CloudWatch Logs Insights

これもログ周りの技術で、簡単なログのビジュアライズができるらしいんですが、本当に簡単なやつしかできないとか、現状ログの検索結果を1000件までしか引っ張ってこれないらしいのでAthenaの方に軍配が上がるのかなという感じでした。

JSON形式のログ

上記の関連で、JSON形式のログ出力をおすすめされました。なんとなくJSONのログって見づらそう…っていうことで敬遠してましたが、そもそも生ログを目視で見ることがguiltyだし、各種サービスとの食い合わせよさそうだし、ひとつひとつのログを構造化できるのって無限の可能性が秘められていそうなのですぐにやりたいと思いました。

ADR

ソフトウェアアーキテクチャパターンのひとつで、MVCから派生したようなもの。どこかの偉い人が提唱したらしいです。
(Action - Domain - Responder)の略で、ざっくり言ってしまうと

  • Action → Controller
  • Domain → Model
  • Responder → View

みたいな対応関係。MVCのControllerと違ってひとつのActionに対してひとつのクラスを作るとかMVCと違うところは色々あるんですが、特に重要な違いはResponderの部分らしく、MVCのViewはテンプレートの部分のみを担当するという印象が強いけど、ResponderはHTTPレスポンスにかかわるところをまとめて扱う。
具体的に言うと、MVCのControllerはViewがレンダリングしたHTTPレスポンスのbody部分を受け取って、Controller側がレスポンスを返すけど、ADRではActionはResponderに対してDomainから受け取ったデータを渡すのみで、レスポンスを作ったり返したりするのはまるごとResponderの役目になるようです。

具体例がREST APIだったのでがっつりのビューを返すときはどんな感じになるんだろうなーとは思いつつ、MVCAPIのレスポンスを作ってるとControllerとViewがごっちゃになって気持ちわるい!と思うことはままあったので、ADRにはしっくりくるところも大いにありました。ただ1 Class 1 Actionっていうのはどうなんだろうなー。ちょっと扱いづらそう。

VS Code Remote Development

基本的にはPHPStorm派閥なんですが、VS Codeも使うことがあるので気になる機能です。Windowsで開発してるとだいたいVagrant的な仮想環境は必須なのですが、IDEで使えるxdebugとかの機能をフル活用するにはWindowsにもPHPとかxdebugを入れなきゃいけなくてなんかベストプラクティスじゃないなーという思いがあったんですが、この機能を使えば解決できそうな気がします。とりあえずやってみよう。
ただ、僕はWindows -> Vagrant -> Dockerっていう三段活用をしてるのでそういう場合でもちゃんと動くのかなーっていうのは心配です。要検証ですね。あとはPHPStormにこの機能が欲しい。あるんですかね。調べてみよう。

9/29追記

Twitterで教えてもらいました。やっぱりPHPStormにもあるみたいですね。やってみよう。

暗黒Shellからエンジニアを守る党

暗黒Shellからエンジニアを守る党 -bashをぶっ壊す- - Speaker Deck

暗エン党のファンになりました。投票します。

というネタ的な側面を置いても面白いLTでした。開発環境のカスタマイズ(Shellを使いやすいようにいろいろいじるとかそういうレイヤ)についてはまるっきり疎いので新しいことを色々覚えました。とりあえずスライドにあったやつ丸ごと導入してみたい。もちろん趣味案件で。

おわりに

ぶっちゃけたところ地方の勉強会って東京の勉強会とかガチのカンファレンスと比べてどうなのかなーって思ってたんですが、めちゃめちゃ学びがありました。今度からちゃんとconnpass追っかけます…。
タガヤスは2ヶ月に一回の頻度でやってるようですが、もっとたくさん参加したいので他の勉強会も探してみよう。