読書会(Java 8 Lambdas: Pragmatic Functional Programming)第5回議事録
[ 戻る ]
.. -*- coding:utf-8 -*-
===============================================
Java読書会BOF「Java 8 Lambdas」を読む会 第5回
===============================================
.. csv-table:: 開催概要
"日時","2014年9月20日 10:00 - 16:00"
"場所","川崎市教育文化会館 第3会議室"
"出席者(敬称略)","高橋(智)、岩室、遠藤、田邉、中澤、井上、小棚木、村山、高橋(徹)(書記)"
議事
====
Chapter 8:Design and Architectural Principles(続き)
---------------------------------------------------
The Dependency Inversion Principle
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* 例8-44
* 引数のerrorではラムダ式で例外クラスのnewを渡している。ジェネリクス型にはnewは適用できないので従来ならClass型を引数に取りnewInstance()で生成していた。
* IOExceptionをcatchしているが、どのメソッドがスローしているのか? BufferedReaderのコンストラクタもlines()メソッドも検査例外のスローを定義していない。
* try-with-resourceでは、close()の暗黙的な呼び出しがあり、Closeableのclose()がIOExceptoinをスローするので必要。
* 暗黙のclose()呼び出しで発生したIOExceptionは、catch文で捕捉できる
* lines()メソッドはIOExceptionをスローせず、UncheckedIOExceptionをスローするので、この例題では引数errorのラムダ式は実行されない。catch文でUncheckedIOExceptionを捕捉する必要がある。
* 遅延処理とエラー(例外)処理は、相性が悪い
* 非同期のエラーの取り方、FutureとかPromiseとかで成功か否かを見る
Chapter 9:Lambda-Enabled Concurrency
------------------------------------
* Vert.xはよくnode.jsと対比されるけど?
* 言語レベルではなくアーキテクチャとしての議論。コールバックを使わずに書ける的な。
* Vert.xはラムダ式に対応している?
* たまたま一つだけメソッドを定義したインタフェースをAPIに使っているからではないか。
* 例9-2
* BufferはTCPのストリームが切れずに入っている?
* java.util.regex.PatternクラスにsplitAsStreamがあるのは違和感ある
* Vert.xのEventBusで同じアドレスをリッスンする複数のハンドラについて、ラウンドロビン・セレクタが適用されるというのは、1つしかハンドラが受信できないということ?
* そのようだ
* 図9-3
* 左側、lookupTracks() → loginTo("artist")には waits on していないのでは?
* 例9-10
* CompletableFuture で、join()の内部ではgetが呼ばれているはずだが、例外はどうなっている?
* 実行時例外のCompletionExceptionがスローされる
* 例9-11
* 引数のidが使われていない
* 図9-4
* CompleteFutureが2つあり、それぞれFuture Constructedと書かれているが、1つではないか?
* thenComposedの仕様には、CompletableFutureを生成するとあるのでこの図でよさそうだ
Chapter 10:Moving Forward
-------------------------
本日で「Java 8 Lambdas」読了です。お疲れ様でした。
[ 戻る ]