技術トピックス 2014/08
1-1. ART これを聞いてピンときたらよくアンテナを張ってますね! →アートではないですよ・・・、 →ヒントはAndroidの・・・
1-1. ART ARTはthe Android Runtimeを指し、現行のDalvikに替わるプラットフォーム 現在は開発者向けにAndroid Lとして公開 →Dalvikはスマフォのスペックが低かった時に設計されているため、現在の高スペックを生かし切れていない DalvikはJITコンパイラを採用しているのに対し、ARTはAOT(ahead-of-time)を採用 →AOTはJITと異なり、アプリ実行前にコンパイル 他にもいろいろあるので下記参照 【URL】http://www.infoq.com/jp/news/2014/07/art-runtime?utm_source=infoq&utm_medium=popular_links_homepage
1-2. Androidアプリは儲からない? 米Mika Mobileが人気RPGゲーム「Battleheart」のAndroid版の開発終了 日本では242円で販売 5万ダウンロード以上 Android版アプリは全体の売上5%にしかみたいない 今後、日本もそうなっていく傾向が出てくるかもしれない
1-3. インメモリデータベース 2014/07/23にOracle Dababase 12cのインメモリデータベースオプションの提供開始 特徴としてはアプリの改修なしで大幅に性能アップが見込める →DB周りがボトルネックだった場合ですが・・・ 価格は1CPUあたり250万ですが・・・ 詳しくは下記参照 【URL】http://www.oracle.com/jp/products/database/enterprise-edition/overview/index.html
2-1-1. Java8 ラムダ式 Java8からラムダ式が導入されましたがさすがに知ってますよね? ただ、導入されたことは知っていても、何故導入されたかという経緯を知らない人って多いですね・・・ これだと有効な使い方ができない・・・ →この場合、誰かが作ったフレームワーク を使っているだけの人の発想 知ってますよね?
2-1-2. ラムダ式(追加された経緯) いろいろな理由があるますが一番はコレクション処理を並列で動かすことです! 何故、コレクションの並列処理を強化したかというと、マルチコアプロセッサをフル活用したいためです ここで「ん?」と疑問に思った人は観点がいいですね!!
2-1-3. ラムダ式(以前の場合) もちろん以下の処理で並列処理ができます for(String name : nameList) { // ここにスレッド処理を独自実装 } // ここでスレッド終了を待つ処理を独自実装 この場合の問題点として、並列処理を独自実装が必要です
2-1-4. ラムダ式(Java8の場合) Java8では並列処理を独自実装ではなく、コレクション(ライブラリ)に任せることができる List<String> nameList; // インスタンス生成等は省く nameList.forEach(x->{ // ここに処理(重たい) }); もちろん、これでは有効に使えていません。 →並列処理になっていない ここで経緯を知らない人は満足してしまうでしょう
2-1-5. ラムダ式(Java8の場合) ここで重要なのは「parallelStream」メソッド! →つまり以下のようになる nameList.parallelStream().forEach(x->{ // ここに処理(重たい) }); ただし、並列処理が有効な場合のみ使用することをお勧めします これについても問題がある。詳しくは以下を参照 http://blog.yujing.jp/entry/2013/06/29/170337 http://blog.yujing.jp/entry/2013/05/29/100537
2-1-6. ラムダ式総括 新しい機能を試してみることはいいことです ただし、「何故」の部分を理解していないで使っていると恥ずかしいことになることが今回の事例でわかったと思います なので、コーディングするときは「使った場合のメリット」を意識しましょう! これが入社1年目の新人と2年目以降で差が出せる要因となります