読書会(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」読了です。お疲れ様でした。


[ 戻る ]