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

Más contenido relacionado

Similar a 110707 java se7_lt_tanaka

DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
 
110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pub110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pub
Takayoshi Tanaka
 
SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門
Hiroaki Oikawa
 

Similar a 110707 java se7_lt_tanaka (20)

株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料株式会社インタースペース 沖本様 登壇資料
株式会社インタースペース 沖本様 登壇資料
 
Apex Test Plusの紹介
Apex Test Plusの紹介Apex Test Plusの紹介
Apex Test Plusの紹介
 
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
Spring Boot + Doma + AngularJSで作るERP #jjug_ccc #ccc_r12
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
 
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話しDevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
DevLOVE関西2016.2.5 地道にAWS構築自動化に取り組んでいるお話し
 
NDS36 Java7&Java8
NDS36 Java7&Java8NDS36 Java7&Java8
NDS36 Java7&Java8
 
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
 
これからのJavaのとっかかりを掴む #jdt51 #kanjava
これからのJavaのとっかかりを掴む #jdt51 #kanjavaこれからのJavaのとっかかりを掴む #jdt51 #kanjava
これからのJavaのとっかかりを掴む #jdt51 #kanjava
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetup
 
PlayFramework1.x基礎編
PlayFramework1.x基礎編PlayFramework1.x基礎編
PlayFramework1.x基礎編
 
Javaユーザに知ってほしい Processing入門
Javaユーザに知ってほしいProcessing入門Javaユーザに知ってほしいProcessing入門
Javaユーザに知ってほしい Processing入門
 
Spring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなしSpring frameworkが大好きなおはなし
Spring frameworkが大好きなおはなし
 
INSPIRE FUTURE GENERATIONS
INSPIRE FUTURE GENERATIONSINSPIRE FUTURE GENERATIONS
INSPIRE FUTURE GENERATIONS
 
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
 
生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由生粋のRubyistがJavaを好きになった理由
生粋のRubyistがJavaを好きになった理由
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
 
110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pub110709 silverlight square_tanaka_pub
110709 silverlight square_tanaka_pub
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 
SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門
 

Más de Takayoshi Tanaka

.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
Takayoshi Tanaka
 

Más de Takayoshi Tanaka (20)

deep dive distributed tracing
deep dive distributed tracingdeep dive distributed tracing
deep dive distributed tracing
 
202202 open telemetry .net handson
202202 open telemetry .net handson202202 open telemetry .net handson
202202 open telemetry .net handson
 
202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers202109-New_Relic-for-csharp-engineers
202109-New_Relic-for-csharp-engineers
 
20210129 azure webapplogging
20210129 azure webapplogging20210129 azure webapplogging
20210129 azure webapplogging
 
20201127 .NET 5
20201127 .NET 520201127 .NET 5
20201127 .NET 5
 
Unity(再)入門
Unity(再)入門Unity(再)入門
Unity(再)入門
 
最近のQ#について
最近のQ#について最近のQ#について
最近のQ#について
 
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法SRENEXT 2020 [B5] New RelicのSREに学ぶSREのためのNew Relic活用法
SRENEXT 2020 [B5] New RelicのSREに学ぶ SREのためのNew Relic活用法
 
20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET20191024 Get Start gRPC with ASP.NET
20191024 Get Start gRPC with ASP.NET
 
New Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservabilityNew Relicで始める、.NET Applications on AWSのObservability
New Relicで始める、.NET Applications on AWSのObservability
 
C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)C#エンジニアのためのdocker kubernetesハンズオン (再)
C#エンジニアのためのdocker kubernetesハンズオン (再)
 
20190806 Q# Measurements
20190806 Q# Measurements20190806 Q# Measurements
20190806 Q# Measurements
 
C#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオンC#エンジニアのためのdocker kubernetesハンズオン
C#エンジニアのためのdocker kubernetesハンズオン
 
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...20190604 Containerized MagicOnion on kubernetes with Observability with New R...
20190604 Containerized MagicOnion on kubernetes with Observability with New R...
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studio 2019の機能
 
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
.NET Core向けコンテナおよびデバッグ関連のVisual Studioの新機能
 
Try! Visual Studio 209 git feature
Try! Visual Studio 209 git featureTry! Visual Studio 209 git feature
Try! Visual Studio 209 git feature
 
Q#基礎 ver1.1
Q#基礎 ver1.1Q#基礎 ver1.1
Q#基礎 ver1.1
 
(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0(過去バージョン) Q#基礎 ver1.0
(過去バージョン) Q#基礎 ver1.0
 
ゼロから始めるQ#
ゼロから始めるQ#ゼロから始めるQ#
ゼロから始めるQ#
 

Último

Último (12)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

110707 java se7_lt_tanaka