seri::diary

プログラミングのこととかポエムとか

YAPC::Asia 2013に参加してきた

http://instagram.com/p/ed3McqQ3bo/

会社より与えられし夏休みの最後の1日分を使ってYAPC::Asia2013に参加してきた。

↓写真とかはここにまとまってる

 gihyo.jpのレポート

普段perl書かないし書く予定無いけど何故参加したか

別言語のコミュニティでどういう事が話題になっているか知りたかったというのが主な動機。perlについては過去に某歌い手が使ってたニコ生で曲リクエストに使うCGIの機能追加を依頼されて直したことがあるぐらいで、全然詳しくないし仕事でも書いてない。仕事は相変わらずjavaとjsしか書いてない。

けどなんかperlって昔から勉強会やらカンファレンスやが盛んな印象があったので、どういうコミュニティでどういう活動をしているのかについてはずっと興味があった。

ただ、やっぱりperlの深いところは全然わからないのであんまりperl絡まないセッションに絞って聞きに行くことにした。

 

初日(9/20)

会場の5分ぐらい前の良い時間に会場到着。

オープニングに続いて午前中は3つのセッションを聞く。

Postcards from the Edge: The State of Perl 5 Development

memcachedプロキシサーバの開発と運用

OpenID Connect ~ これが最新のOpenID仕様だッ!~

perl5言語仕様の話以外はタイトルだけ見るとperlと関係ない。というかまぁ内容的にも殆んどperl絡まなかったんだけど、普通にweb屋として興味深かった。

memcachedプロキシサーバの話は今の仕事でも悩みどころになっていたkvsが単一障害点になって止まったらどうしよう問題についての話。ソース自体はgithubで公開されているので割りとクリティカルな所にmemcachedプロキシ使ってるkvs使う機会あったら使いたい。

neoagent

 

ランチセッションでご飯食べながらSix ApartとMicrosoftのセッションを聞く。

Azureでもperl使えるようになったとか。ほほー

http://instagram.com/p/ed3sUUw3cP/

午後も引き続きセッションを聞いて回った。

大規模Perl初心者研修を支える技術

ぼくがかんがえたさいきょうのMVC

個人で出来る!PerlによるWebアプリケーションの作り方

CPAN Testers Reportの情報を上手に使おう!

Perlは他言語(から|に)何を(学んだ|教えた)か

 

大規模Perl~はDeNAの2013年新卒71人のエンジニアをどのように教育したかについてのセッション。

今自分も2013新卒のOJTを担当してるので色々と考えるところがあった。今年のDeNAの新卒研修の目標は「自走できるエンジニアを育てる」だったらしく、内容もそれに見合ったかなり厳しいものだったなぁという印象。

あとGithubの使い方をしっかり教えたのが現場で好評だったというのを聞いて、ツールの使い方って以外と漏れやすいけど現場で教えるのが割りと大変な部分だし、そういう所を最初の集合研修でしっかりやることは価値があることだと思った。

今現場で新卒に対してgitやredmineeclipseプラグイン系の使い方のフォローをしていることが実際に多い。来年はこの辺のツールの使い方をしっかり研修内容に入れなければと思った。

 

MVCの話は会場が満員で立ち見出まくりだった。やっぱり皆色々と思うところがあるのだろうか。セッションの内容的には「MVCと言っても適用するアプリケーションによって最適な設計は異なるから、適用するアプリケーションの形態に併せてカスタマイズすることが大事」というものだった。これは全くその通りだと思うし、Webアプリにしてもシンプルな場合と超絶複雑な場合とで設計思想が異なってくある。

1Controller1Model で完結するようなScafolldingで作ったみたいなシンプルなWebアプリと、1Controllerに5Model(テーブル5個)ぐらい関連してきて複雑なデータモデルを扱うWebアプリとではModelの中でもモジュールの分割レベルが異ってくるし、逆にそこを規模に関わらず同一のアーキテクチャでやろうとすれば当然無理が出る。

複雑すぎてもメンテコストが高くなるだけだし、シンプルにすると例外的なクラスが量産されて結局カオスになる。

だから、MVCはパターンに過ぎないので、自分が作るアプリの内容に合わせた最適なアーキテクチャを自分の頭使って考えようよ、っていう話は凄く納得がいく話だった。アーキテクチャ超大事。

なんてことを考えた。

 

とりあえず初日はこんな感じ

あともらったノベルティ

http://instagram.com/p/ee4B84Q3TZ/
YAPC でもらったノベルティ一式。Tシャツの裏側にはpixivのロゴがでかでかと書いてあるので着てたらpixiv社員と間違われそうな感じ(笑)

 

2日目(9/21)

洗濯とかしてたら遅れたので午前中は2セッションしか聞けなかった。

というか2日目はperlにフォーカスした内容が多いので聞いても分かりそうなのが少なかった。

Perlで書く結合テスト

Perl 6 オブジェクト指向プログラミング

 

結合テストの話はPerlに限らず他の言語でも使えるお話で良い復習になった。

Perl6でコードを書くことは余程の理由がない限り無いだろうと思った。

 

そしてまたランチセッション

http://instagram.com/p/egb7aFQ3Uu/

YAPC::Asia Tokyo 2013 特別座談会 「Rubyの良いところ語ってください 〜そんなPerlで大丈夫か?〜」

午後はこれだけ聞いて帰った。生伊藤直也さん久々に見た。

PerlRubyの座談会。disり合いの殴り合いにならなくてよかった。

 

 

 個人的には卜部さんのRuby開発にまつわる話が興味深くて、小飼弾さんの「Rubyのバージョンアップ時に旧バージョンとの互換性テストはしてるのか」という質問に対して、卜部さん
「バージョン上げるといろんなものが壊れるのは分かってる。それでもやってくんだぜ、っていう姿勢」
と回答してた。
Webサービス業界でRubyが良く使われ、SI業界でRubyが殆んど使われない理由がわかった気がする。
最近RailsでWebアプリを書いてる関係でRubyを書くようになったが、凄く気持ちが良い言語だと思ってる。最初はその謎ルールに戸惑うが、一度覚えてしまうと自分の思考をそのままスッとコードに落とし込めるので凄く気持ちいい。ジャバやPHPとかの硬い言語をルール通りに書くのとはまた違う快感がある。
その利便性や「気持よさ」を大事にするために後方互換性を捨ててでも新しいことをやり続ける。そういやRailsもそんな感じで、Rails2はもはや別物なのでググってひっかかった情報が殆んど役に立たないが、ちゃんとRails4の情報が山ほどあるからあまり困らない。使う側もそういう文化なのだろう。サポートの体制含めてみんなで作り上げているというか。そういう在り方がOSSっぽくて凄くいい。
自分はRubyのそういう姿勢を支持したい。
 
二日目は残りのセッションにあまり興味がなかったのでここで会場を後にし、自分の初YAPCは終わった。
何でも有りのごった煮カンファレンスであるが故に、興味があるセッションとそうでないものの差が大きいので、興味が無いものだらけになった枠に黙々開発とか自由にLT出来るハッカソンスペースみたいのがあってもいいかなぁとか思った。
とはいえこんだけ色んな界隈の人が集まるカンファレンスもなかなか無いので、これはこれで楽しかったかなと思った。来年も時間があれば参加したいし、こんだけフィードバックがもらえる場であればネタがあればセッションしたいと思った。