仕事やっていてよく見るアンチパターンをまとめていこうと思ってます。今回はデメテルの法則違反です。 コードはScalaですが、RubyやPythonやJavaでも基本同じです。 トピックは以下。 違反したコード とりあえず直す とりあえず直したあとのテスト デメテルの法則に違反したコード デメテルの法則とは、「直接インスタンス化したもの」か「引数として渡されたもの」以外のものを使ってはいけないという法則です。 class Profile(name: String, age: Int) { def showProfile(): Unit = println(s"my name is $name (age: $age)") } class Applicant(id: String, val profile: Profile) object Order { // デメテルの法則に違反している de