Your SlideShare is downloading. ×
110707 java se7_lt_tanaka
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

110707 java se7_lt_tanaka

1,245
views

Published on

Published in: Technology, News & Politics

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,245
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 業務アプリ開発者から見た
    Java SE 7に期待すること
    田中 孝佳
    2011/07/07
    1
  • 2. 自己紹介
    ㈱ワークスアプリケーションズ所属
    ERPパッケージの会社です
    研究部門 クラウド担当
    お仕事
    サーバーサイドJavaで開発
    クライアントはSilverlight使ったり
    Oracle DBの調査担当
    自動化できる処理は大抵Javaバッチで書く
    スクリプト言語よりJavaが好み
    2011/07/07
    2
  • 3. ちょっと昔を思い出して・・・
    2011/07/07
    3
    社会人になってからプログラミングを本格的に始めました
    最初はJava
    当時は2007年
    すでにJava SE 6が出てました
    なので、最初からGenericsありの世界でした
    Java SE 7が、私がプログラミングを始めてから
    最初のJavaのバージョンアップです
  • 4. というわけで・・・
    思い入れのあるJavaのバージョンアップに関して、業務アプリ開発者の視点から期待していることを話します
    2011/07/07
    4
  • 5. 業務アプリでのJavaの使いどころ
    アプリケーションサーバー
    SEじゃないけど、SEの技術は使われる
    JavaEE7に期待!
    特にクラウドと銘打たれているあたり
    バッチ処理
    インストーラーなど管理ツール
    2011/07/07
    5
  • 6. 注目しているVerUP内容
    2011/07/07
    6
  • 7. IDEの対応状況
    2011/07/07
    7
  • 8. Fork/Joinのないとき
    Java6の並行処理
    ExecutorServiceをよく使っていました
    タスクに依存関係がないのが前提です
    タスクに依存関係があると
    安全性を担保するためには、適切な排他制御が必要
    するとパフォーマンスが落ちる or排他制御が漏れてデッドロックが起きる
    結局、適用しづらかった
    依存性のないようにタスクを設計する必要あり
    2011/07/07
    8
  • 9. Fork/Joinのあるとき
    分割統治なタスクの並行処理がしやすくなる
    グループごとに集計して、その結果をグループ同士で演算するとか
    でも、そんなに単純に使えるケースばかりでもなさそう
    Java SE 8への期待
    Concurrent Frameworkのさらなる発展
    ラムダ式と組み合わさった機能
    コレクションの要素に対する演算を裏で勝手に並行処理してくれるとか。
    2011/07/07
    9
  • 10. NIO2:ファイルシステムAPI
    インストーラーなどで結構使います
    所有者、アクセス権の変更とかも意外と必要
    鍵ファイルを読み取り専用にするとか
    java.nio.attribute.AclFileAttributeViewで所有者とかACLを操作できる
    ファイルシステムに依存
    2011/07/07
    10
  • 11. NIO2:ファイルシステムAPI
    java.nio.file.SimpleFileVisitorでディレクトリをVisitor的に探索できる
    java.nio.file.WatchServiceでディレクトリを監視できる
    このあたりの機能の起点は、java.nio.file.Files クラス
    2011/07/07
    11
  • 12. java.nio.file.Files クラス
    2011/07/07
    12
  • 13. NIO2:Socket
    チャネルなどの低レベル通信も、管理ツールなどで使います
    余談ですが、java.nio 配下のクラスはパッケージプライベートクラスのいい活用事例として読んでいます
    2011/07/07
    13
  • 14. ソースコードすっきり系
    業務アプリでは(でも?)保守性高いコードは必須
    今までは結構面倒な書き方が必要だった
    ProjectCoinですっきりできます
    ほかの方のLTとかぶりそうなのでさらっと。
    2011/07/07
    14
  • 15. リソースを使ったら片付けましょう
    2011/07/07
    15
    途中で例外が発生すると、正常にクローズされません。
    finally節にcloseを移すと、そこで発生するSQLExceptionを処理するという面倒なことに
  • 16. リソース付のtry~catchで綺麗に
    2011/07/07
    16
    これで、あの忌々しいtry~catchのネストともおさらば!
  • 17. Stringによる条件分岐の連発
    2011/07/07
    17
    Stringだと、if文の連発になる。
    Enumを使おうとすると、Stringとの対応を定義する必要がある。
  • 18. StringのSwitchで簡単に書ける
    2011/07/07
    18
  • 19. 例外のキャッチがめんどい
    2011/07/07
    19
    一度にたくさんの種類の例外が飛んでくると煩雑。
    Exceptionでキャッチしたくなるけど、それはご法度。
  • 20. マルチキャッチで楽に
    2011/07/07
    20
  • 21. Genericsの記述がめんどい
    2011/07/07
    21
    MapのValueがListなオブジェクトとか、定義するだけで面倒。
    初期化だけで折り返したくない。
  • 22. ダイアモンドで簡略化
    2011/07/07
    22
    右辺のGenericsは省略できる!
    余談:
    C#だと左辺を省略する。Scalaも似た感じ?
    DictioanaryはJavaでいうところのHashMap
  • 23. (おまけ)ブログに書いてます
    http://dev.worksap.co.jp/Members/t_tanaka/
    2011/07/07
    23
  • 24. 2011/07/07
    24
    ご清聴ありがとうございました