Scala は Java のボイラープレート プラクティス (およびそれ以前の不変性、ファースト クラス関数型プログラミングなど) を解きほぐすことに着手しましたが、洗練されたライブラリ チュートリアルでは、単純なテーブル定義に関する多くのボイラープレートが提案されています。
class MyTable(tag: Tag) extends Table[(String, String, String)](tag, "MyTable") {
def Col1 = column[String]("Col1")
def Col2 = column[String]("Col2")
def Col3 = column[String]("Col3")
def * = (Col1, Col2, Col3)
}
この API の使用例は、慣用句に近いとは言えません。テーブル名、列タイプ、列名について、上記の派生作業コードのすべての重複を列挙するのは簡単です。このスタイルを使用して、私のコード ベースに優雅さを備えた大規模なスキーマを定義することを想像するのは難しいと思います。
これらすべての重複と冗長性が不要になるように、これを削減するお気に入りの方法は何ですか? 洗練されたコード生成が唯一の解毒剤ですか?
私はこれを見つけましたが、ライブラリ作成者のマインドダンプに飛び込むよりも、アプリケーションロジックに集中することを本当に好む場合があります。彼らの貢献は寛大です. 誤解しないでほしいのですが、slick はとてもクールだと思います。ただ、この量のボイラープレートは単純な例であり、何らかの方法で大幅に単純化できるはずです...