QCon Tokyo 2015 Conference|QCon 東京 2015 カンファレンス
いつも通り遅れて(ry
基調講演2から聞きました。メモったこととか、感想とかを書いておきます。
K-2 Androidに関わるエンジニアの視点
Androidにまつわる踊らされっぷりを紹介されていて、とても楽しく聞けました。お客様怖い。
- 2007年のOpen Handset Allianceですでに踊らされ始めてたそうです、SDKが発表されて開発ブログを始めた。
- T-mobile G1発売されたけど日本語に対応していなかったので、日本語を入力するためにinJapと言うものを作り始めたそうです。自分自身がユーザなので、自分の為にもユーザビリティとかを考えていた。
- SocialIMEのAPIを発見してSimeji開発した。自分が欲しい物を開発して、そのスピード感が大事です。自分のニーズを表現して、その開発者の感性が好きでユーザが集まってくる。
- ユーザからのフィードバックを楽しむように心がける。
- 大事なのは技術力、モチベーション、ユーザフィードバック
- 技術力はやり続ければ上がる。なんか知らないけど動くで止まってしまうと、成長も止まってしまうので、突き詰める事が必要。何で?何でそうなるの?を突き詰めよう。
- 時には休憩も必要だし、モチベーションを上げるためにオレオレミッションを自分に課して奮い立たせる、のようなこともする。
- 正直キツイ。お客様怖い。disコン。
- 個人でアプリを作ったりするのに必要なのはメンタルコントロール。ジョジョで学んだ。
- デザイナーと働くことは、お互いの考え方とか価値観のギャップを認め尊重することが大事。デザイナーには、理由が必要な時も、必要じゃない時(感性)も時もある
- 疲れちゃったら冬眠する。特段アウトプットせずに、まったりインプットしたり別のことしたりするのも大事。
- 完璧に終わらせるよりも、早く終わらせる。挑まなければ得られない。つまり、挑めば得られる。かも知れない。早くやることで、多くを学べる、沢山こなして学ぶ。
- 想像するよりも、経験から導かれた予測の方が良いよ。ちょっと考えて試すのサイクルを回そう。
100人のプロが選んだソフトウェア開発の名著 君のために選んだ1冊
- 作者: デブサミ運営事務局,SEshop.com編集部
- 出版社/メーカー: 翔泳社
- 発売日: 2012/02/22
- メディア: 単行本(ソフトカバー)
- 購入: 18人 クリック: 537回
- この商品を含むブログ (39件) を見る
S2-1 Webフロントエンド開発の最新トレンド - HTML5,モバイル,オフライン
- スクロールを使ったエフェクトが流行ってるらしい。
- モバイルでHTML5なネガティブな理由は古いIE対応しなくてよく、FlashはiOSで動かないから。
- ポジディブな理由は出来ることが増えているから。
- cache manifest使えばオフラインでも読むことが出来る。静的リソースをローカルにキャッシュするから。キャッシュしてるから早い。しかし、更新の少ないコンテンツ系は良いけど、それ以外の動的なアプリケーションはこれだけでは作れない。
- オフラインでもWrite出来る仕組みが必要です。なので、DBやFileシステムが必要です。localStorageとか、WebSQL Databaseとか、Indexed Database APIとかFileAPIとか。サーバ側とは同期エンジンを作ってそれに任せる。
- IE10からIndexed Database APIは使えるようになったけど、正直APIが使いにくい。なので、ライブラリを作りました→jdb.js - Indexed Database APIを使いやすくするフレームワーク - IT-Walker on hatena
- FileAPIはローカルでFileが使えます。セキュリティ大丈夫?って思うけど、ユーザが選択したファイルしか読み込めません。書き込みはSandboxの仮想ファイルシステム上なので安全。
- デバイス機能へのアクセスAPIもすごく簡単です。基本的にAPIがシンプル。
- デバイス毎に使えるAPIが異なるのでチェックする。チェックはこちら→Mobile HTML5 compatibility on iPhone, Android, Windows Phone, BlackBerry, Firefox OS and other mobile devices
- スクリーンサイズ対応
- レスポンシブWebデザインだけど、まずはモバイルからが良いのではないか?今まではPCからだったけど、PCからやるとモバイルの制約に引っかかることもある。コンテンツのサイズが大きくなるので万能じゃないです。
- マルチプラットフォーム対応
- jQueryMobileが良いんじゃないかな?今週ver1.1がリリースされました。
- ネイティブっぽいしモック作成もらくらくです。
- 事例も国内大手さんとかが結構使ってるので安心なんじゃないか?→ASCII.jp:jQuery Mobileを使った国内スマホサイトまとめ (1/3)
- とは言え、HTML5オンリーで今後も進むわけじゃなくて、ハイブリッド化へ向かっていく。
- 作者: 白石俊平,株式会社あゆた
- 出版社/メーカー: 日経BP社
- 発売日: 2010/02/25
- メディア: 単行本
- 購入: 15人 クリック: 635回
- この商品を含むブログ (55件) を見る
- 作者: Jon Reid,渡邉真人(監訳),白石俊平(監訳),牧野聡
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/12/22
- メディア: 単行本(ソフトカバー)
- クリック: 76回
- この商品を含むブログ (8件) を見る
S3-2 クラウドデザインパターン -AWSを用いたシステム設計のベストプラクティス-
AWS-CloudDesignPattern
先日のJAWS SUMMIT 2012に行けなかったので、聞きました。興味深いし、ここまで出来るのであれば利用しない手はないと思います。
ビアパーティーで、$500分のチケット当選したので、遊び倒そうと思います。
Wikiにまとめられていますが、7月に書籍化されるようです。書籍化されたら早速ポチろうと思います。
- AWSの利用拡大、普及のためにCDP(Cloud Design Patterns)を作りました。今48個あるので、CDP48です。研究生もいるよ。
- システムのアーキテクチャ設計の問題を解決するためのものです。
- パターンとは別に、利用シナリオもあって、それに沿ったパターン構成があります。
- コンテンツ配信シナリオ
- WebStorageパターン
- S3を使いましょう。ファイルをアップロードすれば3箇所以上にバックアップされるし、公開設定にすればURLが割り当てられます。1GBで月に10円程度です。わざわざコンテンツ配信のし組を作るのは大変です。
- DirectHostingパターン
- S3でHostingさせちゃいましょう
- Cache Distributionパターン
- 海外展開をする事になった場合はCDNを使いましょう。海外からは、その近くのリージョンに置くのがパフォーマンス良いです。
- WebStorageパターン
- Eコマースシナリオ
- お金が絡むので、なるべくシステムが落ちるのを避けたいですね、損失になるから。
- Floating IPパターン
- システム稼動中にバージョンアップさせたい場合は、新たに環境を構築してからIPを付け替えましょう。
- Server Swappingパターン
- サーバが落ちた時に早く復旧したい時にはデータだけをシンボリックリンクで差し替えましょう。
- Multi-Serverパターン
- そもそもサーバが落ちないようにしたい場合には冗長構成にしてロードバランサー使いましょう。
- DBもDBサーバ立てるんじゃなくて、DBサービスを使いましょう。
- どこが落ちても大丈夫かテストするには、Working with the Chaos Monkeyを使うと良いでしょう。
- DB Replicationパターン
- DBも落ちちゃ困る場合には、これでホットホット。
- データセンターを分ければなお安心
- キャンペーンサイトシナリオ
- クラウドの出現によって、システム設計を前とは変える必要に迫られています。AWSとかを見ると、今やインフラもソフトウェアの一部と言えるでしょうね。
- 原則
- 出来るだけ既存のサービスを使いましょう
- 机上実験よりも実証実験をしましょう
- スモールスタートからスケールアウトさせましょう
- 変化に対して、全レイヤで対処しましょう
- 故障することが前提の設計をしましょう
- 最初の開発時だけでなく周期的に改善しましょう
Amazon Web Services ガイドブック クラウドでWebサービスを作ろう!
- 作者: Jeff Barr,玉川憲,株式会社クイープ
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 10人 クリック: 240回
- この商品を含むブログ (19件) を見る
S2-3 モバイルファーストの時代へ
人間中心設計。ユーザが居て、コンテンツがあって、文脈がある。
伝わる仕組みをデザインする。
- 利用者視点でのモバイルファースト。スマホ対応と言う意味ではない。
- GoogleもAdobeもFacebookもモバイルから作り始めているようなことを言っている
- ポイントは3つで、端末の普及、制約、新しい技術
- 端末の普及
- 2011年から2012年くらいでPCの端末数をモバイルの端末数が上回っている
- コミュニケーション分野、ソーシャルの世界では利用者の端末は圧倒的にモバイルになってきている
- Twitterも実はモバイルWebを使っている人が多い。アプリをダウンロードして、インストールするのは敷居が高い。
- 3.11もあって、個人の私物端末を利用することが許されてきている。
- 制約
- つまり、画面サイズ。PC画面では何でも突っ込めたので、特に優先順位付けされずにアレもコレも詰め込んだ。
- モバイルでは画面サイズの制約があるので、ユーザにとって(提供者側の都合ではなく)重要な情報だけを表現するようになる。この結果として、ユーザが目的を探しやすくなる。その結果をPCに反映する。
- レスポンシブルWebデザインでは、端末間でのコンテンツの差が出しにくい。全てのサイズのデータをダウンロードしなければならない。
- なので、テキストベースなニュースサイトとかには向いてる
- 買い方が違うとか、見せたいものが違う場合には向いていない
- 利用のコンテキスト、いつどこでどんな状況でを考えた設計にする必要がある。
- readitlaterのピーク時間の例
- マルチチャンネル:同じコンテンツをどの端末でも利用出来るようにする
- クロスチャンネル:モバイルで入力して、PCで確認してみたいな端末をまたがって1つのサービスを利用する
- 新しい技術
- 位置情報、ビジュアル入力(バーコードスキャン等)、端末の向きによって異なる表現、ジェスチャーインタフェース、音声入力など、新しい技術によって、新しいデザインが生まれる。
- ナビゲーションなどは、今までのPC利用のインタフェースの都合だっただけで、別にユーザがそのナビゲーションの---順序を辿りたいわけではない。目的はコンテンツ自身にあるので、一発で目的に辿りつけるのが良い。
- 例えば、Siriとか。
- まとめ?
- モバイルファーストは、つまり、コンテンツファースト
- 見せ方や、使い方の一つの切り口
IA100 ?ユーザーエクスペリエンスデザインのための情報アーキテクチャ設計
- 作者: 長谷川敦士
- 出版社/メーカー: ビー・エヌ・エヌ新社
- 発売日: 2009/10/28
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 227回
- この商品を含むブログ (21件) を見る
デザイニング・ウェブナビゲーション ―最適なユーザーエクスペリエンスの設計
- 作者: James Kalbach,長谷川敦士,浅野紀予,児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/05/25
- メディア: 大型本
- 購入: 12人 クリック: 281回
- この商品を含むブログ (25件) を見る
S2-4 最新Android動向と将来予想(ADK, NFC など)
- 今はAndroid2.3が60%だけど、2.3普及までリリースから1年とか1年半とかかかった。4.0のICSも今年の夏から普及するでしょう。docomoは7月にアップデートラッシュがあるのが発表されてる。honeycombはなかった事にする。
- honeycombでは色々と増えたけど、ICSではワクワクするような仕組みの導入は少ない。
- ICS以前の端末でもcompatibly packageを使えば使えるよ。使えないものもあるよ。
- フラグメント
- 新しい基本要素です、必須です。テストに出るので覚えておくように。
Activityに書いていた沢山のロジックがいくつかのFragmentに分割することが出来ます。ActivityではそのFragmentの制御をするコードを書くことになる。
-
- ViewがないFragmentを作れる。メリットはライフサイクルのあるライブラリを作ることが出来ること。今まではActivityのどのメソッドでどの処理をしなければいけないなど制約が多かった。Fragmentならユーザはそこまで考えなくても良くなってステキ。
- Fragmentの差し替えで画面遷移になる。バックスタックに入れておけば戻るボタンで前の画面に戻れる。
- ライフサイクルでは、onAttachとonCreateViewをよく使うので覚えておくように。
- アクションバー
- ハードキーのメニューボタンが3.0以降は無くなっていきます。ユーザはとりあえずメニューボタンを押して何が出来るかを判断してたけど、画面上に出るようになったから分かりやすくなったはずだよね?
- 基本は画面上部に出るけど、大きい端末だと指が届かなかったりするので、SplitActionBarで下部に配置出来ますよ。
- ローダー
- AsyncTaskを良くしたものなイメージで、処理結果をキャッシュしてくれる。
- ただ、置き換えれば良いのではなく、使い分けが大事ですよ。Loaderはデータの更新通知を受け取りたい場合に使います。AsyncTaskは頻繁に更新される場合とか、キャッシュする意味があまりないものや、毎回実行されないと困るような場合に使いましょう。
- GamePad, JoyPad
- ActivityでGenericMotionEventが取れるようになったので、コントローラのイベントを取れます。
- キーコンフィグを設定するのもあり
- USB Host
- 今まではデバイス側としてのみだったけど、Host側になれます。
- ADK
- ハードウェアを作れる人には面白いかも。
- 対応アプリがインストールされていない場合には、指定のURLに飛ばせる。例えば、Google Playのアプリページに飛ばしたりとか。
- アクションプロバイダー
- ActionBar用のライブラリだけど、使いどころがイマイチわかんないので、ここでいいアイデアが思いつけば有名人になれるかもね!
- wifi Direct
- Android Beam
- NFCで端末と端末とで通信する。転送速度は遅いので、1KB以下の容量でやるのが良い。
- 相手のどのアプリに向けて通信するとかを指定出来る。
Android UI Cookbook for 4.0 ICS(Ice Cream Sandwich)アプリ開発術
- 作者: あんざいゆき
- 出版社/メーカー: インプレスジャパン
- 発売日: 2012/03/16
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 47回
- この商品を含むブログ (18件) を見る
S1-5 現場で使えるドメイン駆動設計
cassandraの中の人のエリック・エバンスとは別人です。
- DDD本(洋書)が出たのが2003年で、だいたいWebが成熟してきたかな位の時期。
- DDDの開発で大事な事は、顧客の業務がわかっていて、顧客の言葉で話せること。そこからモデルを作ってコミニケーションをする。それに必要なのがユビキタス言語とモデル駆動設計。
- SIの現場でどう活かすのか?
- どう使い分けるか?
- 現実的には?
- 基本はトランザクションスクリプト
- 複雑なドメインにはそれなりの戦術が必要
- DAKARA
- メンバーの力量や期間と相談しなければならない
- その判断をするのは、アーキテクトの責任である
- まとめ
- 業務を理解しよう
- ドメインを分割しよう
- 適切なプロセスを割り当てよう
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (130件) を見る
継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者: David Farley,Jez Humble,和智右桂,高木正弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/03/14
- メディア: 大型本
- 購入: 24人 クリック: 567回
- この商品を含むブログ (53件) を見る
S3-6 ソーシャルゲームにおけるAWS/MongoDB利用事例
- MongoDBって?
- ドキュメント指向で、BSON(バイナリJSON)のデータ形式で、スキーマレスなNoSQLなDBです。
- FullIndexSupportなので、どんな属性にもインデックス張れます。
- Replication
- 3台一組で、1つがプライマリ、ほか二つがセカンダリ、プライマリが落ちたら自動的にセカンダリがプライマリに昇格し、落ちたものが復旧したら自動的にセカンダリに割り当てられる
- Auto-Sharding
- ShardKeyを指定することで、水平分割出来ます。その範囲をチャンクと言います。データ量によって、自動的に行われます。mongosがどこにあるか把握しているので、クライアントは意識せずにmongosにアクセスすれば良いです。どこに何があるのかを知っているのはmongocでコンフィグ情報を持っています、mongosはmongocに問い合せてから実際にアクセスしに行きます。
- Animal Landって?
- AWS関連で
- MongoDBポイント
- インフラ
- 検証を繰り返しました。Replication Set、Shradの構成をかんがえましょう。
- なるべくメモリを詰める構成でやりましょう。
- ジャーナリングを利用しよう
- MongoDBの新しいコレクションは必ずプライマリに作られちゃうので、一度に沢山のコレクションを作るとプライマリに集中してしまいます。
- 作者: Kristina Chodorow
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2011/02/28
- メディア: ペーパーバック
- クリック: 16回
- この商品を含むブログ (6件) を見る