YAPC::Tokyo 2019に参加しました

2019/1/26(土)に開催されたYAPC::Tokyoに参加してきました。

YAPCの噂は昨年入社してから耳にこそしていましたが、参加したのは初めてでした。

Perlを軸としたカンファレンスとのことですが、いろんな技術の話が聞けてお昼に出た幕の内弁当のように楽しめるカンファレンスでした。

(今年は例年よりPerlの話が多かったそうです笑)

感じたことを忘れないうちにまとめておこうと思います。

yapcjapan.org

聞いたトーク

※軽く探して見つかった公開されているスライドだけ載せています。

載せていないスライドで公開されていないものがあれば教えていただけると助かります。

チームが前に進み続けるために僕たちが考えたこと

チームが前に進み続けるために僕たちが考えたこと / YAPC::Tokyo 2019 - Speaker Deck

スクラムを参考にしつつ、自分達にとって最適な開発フローを模索していったという話。

  • 業務・開発フローは「変えることは無条件に正しい」くらいに思って良いと思っています
  • 変化に対応し続けないといけない
  • 手を動かしたものだけが世界を変える

実例を元にした、「前に進み続けるため」の考え方についての内容は非常に説得力がありました。

チーム開発の難しさは入社当時に感じ、いまだに感じ続けていることですが、変化を起こさないことには何も変わらないことを再認識させられました。

結局物理カンバンを使うようになったという話は、最近ポストイットを使って便利さを感じたので共感できました。

(デジタル上の方がいつでも参照できて、永続的に残るので便利だと思ってたのですが、なぜでしょう)

私とOSS活動とPerl

私とOSS活動とPerl

世界はOSS開発者に優しいという言葉はとても実感がこもっていて、素敵な話でした。

自分が必要なものを作ったら、それを他の人にも使ってもらえたというのはたまらないだろうなと感じました。

IntelliJ IDEAのPerl pluginであるPerl5-IDEAは気になりです。

GitHub - Camelcade/Perl5-IDEA: Perl5 plugins for IntelliJ IDEA

Perl to Go

GoでWebアプリケーションを書く流れをPerlを普段書いている人がざっくり掴める話。

Perl MongerがGolangを始める時にはまったところの話では、GoにはCPANのようなライブラリの中央集権的サーバーがないことなど、Goを始める上で前提として知っておくべきことを聞けてとても参考になりました。

(バージョン管理されているライブラリがまだ少なく、管理が難しい、管理ツールがまだ二転三転しているなど)

ライブラリの管理が容易になったらGoでWebアプリケーション書いてみたくなりました。

(Perlから今はGoを書いているという人も多い印象ですよね)

ランチスポンサーセッション

Garudaというサービスについてのトークと20歳で新卒入社してPerlを書き始めた人のトークがありました。

今はPerlで書かれたプロジェクトをGoで書き直しているということでやはりWebアプリケーションをGoによって書くことはメリットが大きいようです。

Perl on Rails(GUEST: 大仲 能史)

PerlのプロジェクトにじわじわとRailsのソリューションを取り入れていっているお話。

自分も最近副業でRailsを書いているのですが、Webアプリケーションを作る上で必要で役立つ機能全部盛りな感じに感動しています。

どんなWAFでも必ずいつかは下火にはなるのでしょうが、今使っているWAFから次の開発に活かせるものを頭の隅に残しておけると良いのかなと感じました。

自前運用のZabbixからマネージド監視サービスMackerelへ - ソーシャルゲームタイトルのサーバ監視の移行事例

サーバ監視をZabbixをやめてMackerelに以降した話。

監視ルールや設定値などを例を元に話されていたのですが、自分で監視サービスを設定したことがないためかあまり理解できず・・・。

普段はメトリックを眺めるだけですが、どんなメトリックが必要か考えて設定していく力も必要だなと感じました。

ログにやさしいDB設計

ログのDB設計についての話。

ログは、

  • データ分析
  • 問い合わせの事実確認
  • 障害の原因究明
  • 障害の自動検知

のために必要で、そのための要件は、

  • 整合性
  • 網羅性
  • 追跡容易性

ログはなぜ必要なのか、そしてユースケースはどんな時か考えて、それを満たすために必要な要件を考えるというのは、ログを取る上でまず考えるべきことだというのは非常に腹落ちしました。

CPAN Module Hacks

CPAN Module Hacks - Speaker Deck

CPANへのアップ方法やプライベートCPANの作り方などのお話。

meta::cpanはauthorにフォーカスしていて、ダウンロード数などは表示されていないといった話は、ライブラリに対する各言語の思想などが伺えて面白い見方でした。

そして、CPAN TestersのモジュールをいろんなPerlのバージョンや実行環境で実行可能かテストする機構はすごい!

CPAN Testers Reports: Index

Dive into MySQL Error

Dive into MySQL Error (YAPC::Tokyoバージョン) - Speaker Deck

MySQLのエラーの仕組みを考えるお話。

エラーコードの1000, 3000番台はサーバーサイドエラー、2000番台はクライアントサイドエラーなど、エラーコードを見るだけでエラーの原因の切り分けができるというのはとても参考になりました。

レプリケーションスレーブはマスターから見るとクライアントと言えるというのもエラーコードによる切り分けに役立つ考え方でした。

エラーフォーマットやエラーログについての内部実装まで踏み込んだ話もユーモアを交えつつでとても面白かったです。

ここまでMySQLに強い人というのもなかなかいないのではないでしょうか・・・?

Lightning Talks

5分という時間に圧倒的に密度でした。

Perl6の正規表現の問題、npmでPerlのライブラリのインストール、Amazon LambdaでPerlのランタイムを動かす、Perl1をGoで書き直す、Perl入学式のコミュニティの話などPerlの話をこの密度で聞けたのは初めてで、楽しかったです。

Keynote: 松野 徳大

tokuhiromさんがこれまで歩んできたエンジニア人生の一端。

いろんな人を巻き込んで、不満のあるライブラリを作り直してAmon2などを作っていったという話はもちろんすごいのですが、それ以上にエンジニアとしての最高に楽しそうなところが何よりすごい、と感じました。

自分は今の所OSSの開発にはあまり興味はないのですが、後から振り返ってあの時は楽しかったと言えるエンジニア人生を送ろうと思うことができました。

最後に

自分は普段Unityの勉強会に参加することが多いのですが、YAPCは幅広い年代のエンジニアが集っている印象を受けました。

技術的な話だけでなく、いろんな開発者の歩んできた道の一端を聞くことができる貴重な機会だったと思います。

次の開催地は募集中だそうですが、ぜひRubyの総本山のShimaneで開催して欲しいです笑

その時はまたトークのsubmitをさせていただきます!

最後になりますが、運営の方々素敵なYAPCを本当にありがとうございましたm(_ _)m