YAPC::Asia 2014 に参加してきた #yapcasia

今年もYAPC::Asiaに参加しました。

相変わらずPerlには殆ど触らない生活をしているけど、やっぱり業務で本格的に触った初めての言語だし、有名人もいっぱい見れるし、(ぶっちゃけPerlとか関係ないし、)モチベーションが上がるので参加できるならしようと思ったのです。

Day 1

インフラエンジニア(狭義)は死んだ

  • コードが読めない書けないインフラエンジニア→死。
  • 開発だけやるとか、インフラだけやるとか、もはや通用しない。分業は成立しない。
  • 自分は〇〇エンジニアだから、××はしないみたいな先入観、思い込みはマズイ。それでは問題の解決に臨むときに無意識でブレーキをかけてしまうのでは?

課題を解決したり楽しんだり喜んでもらったりするのが目的じゃないのか?コーディングだけしたりインフラの面倒を見るだけが目的ではないはず。その意識は大事だなと改めて認識出来ました。

完成されたシステムなどない。完成された人間もいない。あるのは成長し続ける未完成なシステムと、それを支える未完成な人間だけだ

#yapcasia 2014 でシステムとの時間の旅の話をしてきました - さよならインターネット

yapcasia2014 // Speaker Deck

  • スピリチュアル
  • 再現性・簡便性
  • シンプルかつ環境に依存しない
  • 式年遷宮・長屋 どうせ壊れるので、壊しやすく、立て直しやすく、壊れても問題ないようにする

すべてのシステムに共通してすべきこととして、シンプルで、依存が少なくて、壊れても問題ないように保険をかけましょうというお話でした。

シンプルであるべきというのは、1関数〜1システムまで全てに共通する考え方なんだなー。

そして、人は絶対にミスをする(今朝もした)ので、その前提で環境・体制を構築するべきということですね。

Scala In Perl Company : Hatena

Scala in Perl Company という内容で発表しました #yapcasia【YAPC::Asia Tokyo 2014】 - はこべブログ ♨

Scala楽しそうだなーと思いました(小並感

最近は型好き好きなので、興味はアリアリです(Option型があるのも素敵ですよね)

コマンドラインツールについて語るときに僕の語ること

コマンドラインツールについて語るときに僕の語ること #yapcasia // Speaker Deck

  • コマンドのオプションについて、ShortとLongの両方を用意する
  • デフォルトで破壊的動作はしない(破壊的動作はLongで)
  • 対話的な動作をしない(自動化の妨げになる)
  • README.md > Usage > Man の順にユーザは見ていく。ちゃんと用意する
  • 1コマンドでインストールできる
  • デバッグオプションを用意する
  • 1ツールは1つのことだけやる。他のツールと連携できるようにする
  • RDD → README Driven Development

コマンドラインツールでもシンプルであるということは当然大事。

RDDは自分のやりたいことを明確にしてから開発に取り掛かれるし、一番モチベーションのある時にドキュメントを書くことができる。(ドキュメントを書くのは面倒なので、やる気があるうちにやっておくほうが良い。開発自体は楽しいからあとでも大丈夫)

「プロトタイプを手軽に作れる環境を用意すると良い」確かにオプションのパースとか、毎回書くのうざいですよね。

手でおっかなびっくりやるんじゃなくて、都度都度ツールを作ってどんどん楽をしたいですなー。

DeNAが歩んだデプロイ自動化への道

  • 安全工学としてのデプロイ自動化
  • 悪いシステムほど、後になって問題が発見される
  • リリースに困難さを感じるかどうかが、そのシステムの安全性を図る指標のひとつになる
  • 出荷プロセスの見直しは生産システム全体の見直しになる。リリースプロセスの自動化により自浄作用を働かせる

今まさにやりたくてできてないデプロイ自動化。VSでの自動化(特にWindows Forms)を早いとこ成し遂げたい… 

手動でのデプロイがおっかなびっくりでバタバタしてしまっているので、きっちり整えて自動化するのが安全安心というのはすごく納得できるです。

WHERE狙いのキー、ORDER BY狙いのキー

Where狙いのキー、order by狙いのキー

  • インデックスとは、ソート済みのデータの複製(異論はあると思う)
  • WHERE狙いのキー: 条件判定が少ない、残った行をソートする必要がある
  • ORDER BY狙いのキー: ソートはしなくていい、条件判定が残った行分走る
  • ネステッドループジョインは評価する行が倍倍で増えていくので遅すぎる
  • 充分に絞り込めるならWHERE狙い、そうでなければORDER BY狙いが良い

今まで超適当にぼんやりと考えていたインデックスですが、コードでわかりやすく解説していただいたおかげで大分理解が出来たような気がします:)

上っ面だけじゃなくて内部的なこともちゃんと把握できていないとダメなんですよね…;

遅いクエリを速くするのは結構な快感なので、積極的にやっていきたいと思います:)

Lightning Talks Day 1

  • モナドはやっぱりわけわからん
  • デート中にSEGVの原因を考えてブチ切れて振られても結婚出来る
  • PIXIVは全部小文字

LTは話しが早過ぎるので、私の実力ではメモれないし覚えきれません^^;

その分カジュアルに聞けてとても楽しかったです:)

Day 2

突然ITインフラを任された人のための…監視設計入門

突然ITインフラを任された人のための…監視設計入門 #yapcasia

  • レイヤーを分けて整理。外形、デーモン、リソース、サーバ
  • netstatはなくなるからssコマンドを使っていきましょう
  • 誤報慣れ怖い

個人的には今回一番聞けてよかったトークです。

しなきゃいけないのはわかってるサーバ監視だけど具体的に何をすればいいのかが曖昧だったけど、今回それがはっきりしたと思います。ありがたや。

レイヤーに分けて考えるというのがとてもわかりやすくてモヤモヤが解消しました:)

例によってWindows対象の話がなかったですが、それは自分で調べれば出来そうですね:)

半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応)

  • PSRでPHPの世界に秩序をもたらそうとしている
  • PHPはテンプレートエンジンであるが、PHPの中でもっと安全な別のテンプレートエンジンを使うのが常識
  • SPL(Standard PHP Library)でいろいろ便利に
  • モダンなPHPJavaっぽい
  • PHP5.6が出てきた余波で5.3はおしまい。PEARライブラリは消滅の流れ
  • npmのパッケージ数はバグ
  • レールが無いからあっさり崖から落ちる
  • 弾さん「あ、そっか・・・ try-cactchあったんだ・・・」

PHPのトークでYAPCのベストトーク賞1位を獲得するという伝説を打ち立てた素晴らしいトークでした:) そう、YAPC::AsiaはYet Another PHP Conference Asiaだったのです。

触るたびに苦い思いをして避けよう避けようとしているPHPですが、やっぱり避け切れません:( どうせ避けきれないので、ちゃんと最新事情を掴んでおきたいですね:)

Perlあるある

Yapc::Asia 2014 Perlあるある

  • Jcode.pmがめちゃくちゃ懐かしい
  • dan kogaiはエンジニアに愛される方
  • 朝起きた直後が一番集中できる→昼寝を導入する→朝が2度来る!
  • 実は出演者全員77年生まれ
  • コードも作文も同じ。読まれて意味の分からないコードは書かない
  • コードを書くのに許可はいらない
  • 変態たるもの基礎が大事
  • Done is better than perfect

こちらもすごく楽しかったです:)

有名エンジニアの1日のスケジュールはすごく興味深かったですね:) 自分のピークに合わせて効率を上げるというのは、当たり前だけど難しいですね…。

グダグダ言って動かないのではなく、とりあえずコードを書けと。そしてきれいなコードが書けないと言っていつまでも未完成なままにするのではなく、まずは完成させろと。

Lightning Talks Day 2

TDD(Twitter Driven Datsu-Syoshinsya) / Twitter駆動脱初心者 #yapcasia // Speaker Deck

2014 08-30 YAPC::Asia 2014 LT

  • TwitterはWebエンジニアの仕事
  • Twitterで有名な人をフォローするといいよ
  • Twitterやったり、勉強会行くようになってから技術力上がってった気がする
  • メタプログラミング、すなわち魔法
  • 挫折を挫折のままにしない

Twitterで有名な人をフォローするのは本当に有効だと思う。受信できる情報量がすごく増えますよね。仕事中にTwitterは必要です( ー`дー´)キリッ

あと、わからないことをつぶやいたら有名な人から回答が来るのは本当に嬉しいです:)

自分ダメだな~と思っても、勉強会やカンファレンスでモチベーションを得て、有名な人達に引っ張ってもらって、自分も誰かを引っ張れるようになれると良いなと思うです:)

キーノート

  • typester.Jr可愛い
  • 受託開発が楽しい。新しい技術、新しい人に出会える
  • 一度の人生楽しまなきゃ損!
  • ロールモデルを持とう 10年後にどうなってたいか 10年後にどうなりたいか

自分はどうなりたいのか、それを持っていれば何があってもエンジニアとしてやっていけそうです:)

まとめ

2年連続の参加でしたが、今年も存分に楽しめました:) やっぱり勉強会やカンファレンスはなかなか上がってくれない私のモチベーションを大いに高めてくれます:)

YAPC::Asiaは世界で一番大きなYAPCだということで、それに参加できる現状はとてもありがたいと思っています。たまたま一番初めに仕事で触った言語がPerlだったわけですが、それがこんなに価値のあるコミュニティを持つ言語だったことは私にとってとても幸運なことだったのですね:)

きっと来年も開催されて、きっと来年も参加させてもらっていると思います:)