YAPC::Asia 2014 スペシャルレポート

YAPC:: Asia 2014 2日目レポート[更新終了]

この記事を読むのに必要な時間:およそ 11 分

gfxさん&ninjinkunさん「Mobile Application Development for Perl Mongers [ninjinkun x gfx]」

モバイルアプリの開発ノウハウについて,1) Client-Frontend,2) Client-Backend,3) フリートークという3部構成でninjinkunさん,gfxさんの2名から発表がありました。

ninjinkunさん「Client-Frontend」

ninjinkunさんはアプリのUIデザイン,状態管理,OSSについて発表しました。

まずはエンジニアがUIデザインに参加することを推奨しました。そうすると標準UIの知識を活かせたり,コスト感が分かるなどのメリットがあります。UIデザインの手法としてはペーパープロトタイピングをお勧めしていました。また,ユーザテストに参加すると機能の必要性を納得して開発がすすめられて良いとし,プロセスの中心においているとのことです。

続いて,状態遷移についてです。アプリのデータは非同期に更新されることが多く,データの更新とビューの同期が問題になりがちです。それをスマートに解決する方法としてMVVMモデルや,Reactive Programmingに期待しているそうです。

オープンソースの分野も活発になってきており,CocoaPodsやGradleといったツールチェインも整備され,多くのUI部品も公開されていると言及していました。貢献したければOSアップデートのタイミングや端末固有のバグなど,チャンスも多いとのことです。

画像

gfxさん ⁠Client-Backend⁠

gfxさんはアプリのリリースを支える,開発プロセスを中心とした発表をおこないました。

まずはチーム構成の変遷について紹介しました。もともとモバイルチームがアプリ部分の機能開発をすべて担当していましたが,ネイティブ部分が増えてくるにつれて回らなくなったので,サーバサイドエンジニアがアプリの機能も開発していく形にシフトしていっているそうです。

続いて,リリースサイクルの話がありました。Webアプリケーションでは一日に何度もデプロイするのはあたりまえですが,ネイティブアプリではリリースサイクルがそれよりも長くなります。そのためgithub-flowをベースとしたフローではマッチせず,git-flowをベースにしたスタイルにしたそうです。具体的にはQAの前にcode freezeを行ってリリース候補のブランチを作り,そこでリリースに必要な不具合修正のみをおこなってマスターにマージというフローで進めていると説明しました。

CIの話題ではテストでAppiumなど使ってはいるがまだまだで,リリースも手作業になることが多いそうです。Google PlayはAndroid Pubisher APIがあるので自動化していきたいということでした。

画像

「フリートーク YAPC.fm⁠

10分弱のフリートークでは,テストはまだまだだけどiOSのbotsには期待していることや,ViewModelを進めてテストをしやすくしていきたいこと,うっかり作るとほぼすべてシングルトンになったりするのでMVVMに期待しているということ,JavaやObjective-Cといった言語よりはフレームワークのほうが重要でUIフレームワークはiOSのほうが簡潔にできていることなど,短い時間でしたが様々な話題が展開されました。

最後に,コミュニティについて,アプリ界隈ではYAPC規模のイベントはまだないのでPerlの文化を持ち込んでいけけたらと述べていました。

画像

Tatsuro Hisamoriさん「YAPC::Europe 2014 に行ってきました⁠

去る8月22日から24日に,YAPC::Europe 2014がブルガリアにて開催されました。先月ベストトーク賞で2位を獲ったmyfinderことHisamoriさんは,賞品としてこのカンファレンスに参加していました。本発表はそのYAPC::Europeへの体験記となります。

ブルガリアはビールが安く,100円以内で缶ビールが飲めてしまうそうです。カンファレンスに到着後,しばらくは誰ともコミュニケーション取れずにいたHisamoriさんですが,TwitterでのMakiさんの協力もあり,最終的には多くの海外のhacker達と交流することができたそうです。

日本のエンジニアが海外に出るにあたり一番心配しているのは英語かと思いますが,欧州は英語が母国語ではないエンジニアも多く,英語がそこまで得意ではなくてもなんとかなるとHisamoriさんは説明していました。来年はスペインのグラナダという観光地で開催されるそうなので,みなさんも新しいキャリアへの第一歩としてYAPC::Europeへ参加してみるのはいかがでしょうか。

画像

画像

hitode909さん「Perlの静的解析入門とPerlリファクタリングツールApp::PRTのご紹介」

Javaのコードをリファクタリングする場合,IDEの持つリファクタリング機能を使うのが普通です。しかし,Perlの場合はこのような便利なツールはあまりありませんでした。hitode909さんの開発したApp::PRTは,IDEが備えるようなリファクタリングの機能を実装したコマンドラインツールです。

PRTはPerl Refactoring Toolの略です。PPIというPerlの構文解析器を使って実装されており,まずはその解説から入りました。PPIを使うとPerlのプログラムの構文木を作ることができるため,例えば,数値リテラルだけを2倍にする,といったソースコードの変更が簡単にできるようになります。

App::PRTをインストールするとprtというコマンドが使えるようになり,このコマンドを使うとクラス名の変更やメソッドの定義位置の移動などを簡単に実行できます。デモとして,今回のトーク用に作った小さいソースコードやPlackのコードを実際にリファクタリングしていました。grepやsedの置換だけでは実現できない精度の高い変更が可能であるため,使い始めると手放せないツールになるのではないかと,筆者には感じられました。

画像

画像

tagomorisさん「そんなにビッグでもないデータ処理手法の話」

TAGOMORI Satoshi(@tagomoris)さんの発表です。データ処理の流れには,データを集める,パースやクリーンアップ,保存,処理,可視化がありますが,今回は処理の部分についての発表でした。また,データを処理するには,データサイズについて考える必要がありますが,実際のデータサイズではなく,1度のクエリで処理されるデータサイズを考慮すべきとのことでした。それが,数GBのデータであればRDBMSで十分で,PB以上のデータはHadoopやStormを使うべきだそうです。今回はその間の数十GBからPBオーダーのデータサイズでの処理が対象です。

データ処理には,検索や集約,リコメンド,異常検知などがありますが,何をしたいかによってアーキテクチャが決まってくるため,何をしたいのかが重要だと言います。分散処理フレームワークにはMapReduce v1,MapReduce v2,Apache Spark,Apache Tezなどあり,新しいものはMapReduceの10倍速いなどと言われていますが,まずは比較的安定しているMapReduceからやるのがお勧めだそうです。MPP(Massively Parallel Processing)エンジンにはApache Drill,Cloudera Impala,Facebook Prestoなどがあり,DSL(SQLが多い)でクエリを書けます。ストリーム処理は,ストレージがいらなくて便利ですが,とてもスループットの高いデータ処理以外にはお勧めしないそうです。これには,Twitter StormやNorikraがあります。

Hadoopには関連するプロダクトが多数ありますが,すべてがHadoopと述べ,会場を沸かせていました。その際にスライドに表示されていた画像も大変印象的でした。また,BigData as a Serviceについても触れていましたが,ここでは詳しく説明しませんでした。ビッグデータの処理では,Perlは使いませんが,それはJVMに支配されているからだそうです。CPANモジュールもほとんどなく,書き放題とのことでした。

最後に,ノウハウや意見,考えていることを共有しましょうと述べ,セッションを締めくくりました。

画像

画像

著者プロフィール

臼井洋文(うすいひろふみ)

京都府京都市出身のプログラマ。仕事ではPerlでサーバサイドを書きつつ,Objective-CでiOSアプリの開発をしている。週末はボルダリングに勤しむ日々。

Twitter:@usuihiro
Web:http://d.hatena.ne.jp/usuihiro1978/


日下部雄也(くさかべゆうや)

仕事はニフティクラウドのネットワーク関連の機能の企画・開発・運用で,運用自動化のためのプログラムを書いていることが多い。言語は,Perl,Python,Ruby,C,Goなど。最近,Vyatta CoreからフォークされたVyOSという仮想ルーターのユーザー会を設立し,第1回目のミーティングを主催した。

Twitter:@higebu
Web:http://www.higebu.com


滝沢玲美(たきざわれみ)

千葉県在住。仕事はITとは全く無縁な事務職だが,プログラミングに以前から興味があり。今回,Perl入学式にてプログラミングを初めて学ぶ。

藤沢理聡(ふじさわまさあき)

神奈川県在住。仕事でソフトウェア開発をしつつ,余暇にも友人たちとソフトウェア開発をする日々。長くPerlを愛用している他,ここ数年はPerl 6にも挑戦している。

Twitter:@risou
Web:http://www.risouf.net/


本間雅洋(ほんままさひろ)

北海道苫小牧市出身のプログラマー。好みの言語はPerlやPython, Haskell, Scala, OCamlなど。在学中は数学を専攻しており,今でも余暇を利用して数学を嗜む。現在はFreakOutに在籍し,自社システムの開発に力を入れている。 共訳書に「実用Git」(オライリー・ジャパン),共著書に「FFmpegで作る動画共有サイト」(毎日コミュニケーションズ)がある。

Twitter:@hiratara
Web:http://hiratara.github.io/


森藤大地(もりふじだいち)

ISP勤務。卒研でPerlのプログラムを組んで以来, Perlを利用している。 CROSSというエンジニアイベントを主催していたりする。 d3の翻訳やひとりアドカレなど,解析・可視化業務を行っている。

Twitter:@muddydixon
Web:http://muddydixon.hatenablog.com


山中裕之(やまなかひろゆき)

ドラゴンズファン。某会社のプログラマとして活動中。好きな言語はPerl, Ruby, C, C++, Haskelなど。武術が好きで休日はいそしんでいる。

Twitter:@hiroyukim
Web: http://hiroyukim.hatenablog.com