読書会(Clean Code アジャイルソフトウェア達人の技)第7回議事録

[ 戻る ]


=========================================================================
Java読書会BOF 「Clean Code アジャイルソフトウェア達人の技」を読む会 第7回
=========================================================================

.. csv-table:: 開催概要

   "日時", "2014年4月19日 10:00 - 17:00"
   "場所", "川崎市教育文化会館 第3会議室"
   "出席者(敬称略)", "井上、遠藤、門脇、高橋(徹)、高橋(智)、中島、村山、山田、吉本(書記)"

議事
====

16 SerialDateのリファクタリング
-------------------------------

そして正しく直した(p.359〜)
-----------------------------

* 「enumを使おう」というのはJavaだけの話し。

  * PHPやJavaScriptにはenum自体が存在しない。

  * 生の変数でもいい。

  * Javaのenumは、タイプセーフというくらいのメリットしかない。

* デフォルトがfinalでもいいのでは?

  * 変更したい時だけミュータブル指定が出来る方が良さそう。

* サンプルコードのenum Dayの中で、WEDNESDAYの最後に「s」が多い。

  * 原書にもある。

* [G14]Employeeクラス外のデータ(税率等)を計算に使用する場合はどうするのか?

  * 全部持たせるのはどうかと・・・。

  * Webアプリでは、データとロジックを分けるのが主流。

  * トランザクションが絡む場合は?

* サンプルコードのquarterの中で、indexは何を表しているのか?

  * 四半期を表しているのでは?

  * indexには月の0〜11が渡されるのか?

* booleanを返すメソッドの場合、呼び元から見ればtrueとfalseの意味が分からなくことがあるので、良し悪しがある。

* サンプルコードのisLeapYearに当たるメソッドはJavaにあるのか?

  * Calendarクラスにあったはず。

  * GregorianCalendarクラスにある。

* サンプルコードのメソッド名で、addをplusに変える必要はあるのか?

  * Collectionのaddと混同する?

  * 戻り値を返すだけのメソッドか、オブジェクトの状態を変えるメソッドかどうかで意味合いが違うからか?

  * 関数型言語では、この2つは明確に違う。

結論
----

参考文献結論
------------

17 においと経験則
-----------------

コメント
--------

環境
----

関数
----

一般
----

* [G23]はどういうことなのか?

  * 型の判定は全体で1箇所にして、分岐ではポリフォーフィズムで作ったクラスを使用するということ。

* [G35]で、「高い」、「低い」というのは、どういうことを言っているのか?

  * 抽象度が高い、低いということ?

  * APに近いのが「高い」、OSに近いのが「低い」ということか。

  * 「高い」「低い」はコンテキストによって異なる。(高い、低いは逆転することもある)

* [G36]で、「友達の友達はみな友達」はダメということ?

  * Javaの仕様上、publicである限り、他から呼べてしまうのはどうしようもない。

  * Javaでは、スーパーパッケージもなくなったし。

Java
----

名前
----

テスト
------

結論
----

参考文献
--------

付録A 同時並行性U
------------------

クライアント/サーバーの例
--------------------------

結論
----

実行経路候補
------------

さらに深層へ
------------

ライブラリを知る
----------------

* サンプルコードで、voidとsynchronizedの順番は、この順番でもいいのか?

メソッド間の依存性が同時並行コードを破壊する
--------------------------------------------

* Java8なら、Lambdaで内部イテレータを使った方がよさそう。

  * 外部イテレータだから、こんな面倒なことが起こる。

  * そもそも、使用するコレクションがスレッドセーフである必要がある。

スループットを高める
--------------------

デッドロック
------------

マルチスレッドコードをテストする
--------------------------------

マルチスレッドコードのテストのツールによるサポート
--------------------------------------------------

チュートリアル:コードサンプルの全体
------------------------------------

付録B org.jfree.date.SerialDate
-------------------------------

付録C 経験則のクロスリファレンス
--------------------------------

後書き
------


.. note:: 次回からは、新しい課題図書になります。


[ 戻る ]