memoっとくスマートフォン用の表示で見るmemoっとくこの広告は、90日以上更新していないブログに表示しています。Javaということで、いい感じの厚さの本でした。単行本(ソフトカバー)この商品を含むブログを見る状態の変更が可能なコードは、多くの不確定要素を持っています。多くの者に変更の可能性が存在すると、より多くのコンポーネントが破綻し、より多くのエラーが混入する可能性があります。複数の変数が変更されるようなコードは理解しにくく、並列化も困難です。不変性(immutability)はこれらの問題を根本から断ち切ります。Javaは不変性をサポートしますが、強制はしません。開発者は不変性を強制できます。開発者はオブジェクトの状態を変更するという長年の習慣を改めなければなりません。可能な限り不変オブジェクトを使用しなければならないのです。Blockの「オブジェクトは不変として扱え」という賢者のアドバイスにしたがって、変数、フィールド、パラメータを宣言する際、なるべくfinal宣言するようにしてください。オブジェクトを生成する際は、Stringクラスのような不変オブジェクトを優先的に使ってください。コレクションを扱う場合はArrays.asList()やCollectionsクラスのunmodifiableList()メソッドなどを使って、不変性のものか、unmodifiableのコレクションを生成してください。可変性(muttability)、つまり状態変更が許可されているような性質をもたせるのを避けることで純粋関数を記述できます。純粋関数とは、副作用を持たない関数のことです。*1この本は厚すぎないので良いのではないかと思います。見る一緒に読んだりするのもいいのかもしれませんね。