概要
- 主催 : 日本Javaユーザグループ
- 開催日時 : 2019年11月23日(土)
- 場所 : ベルサール新宿グランド コンファレンスセンター 5F
- ハッシュタグ : #jjug_ccc
JJUGとは
- 日本Javaユーザグループ(Japan Java User Groupの略称)
- Java 技術の向上・発展、開発者の支援を目的とした任意団体です。2007年4月に発足して、現在は9000人以上の Javaエンジニアが参加する日本最大のJavaコミュニティです。
詳細
会場雰囲気
所感
Gradle を完全に理解した人が、何も分からなくなるための第一歩
-
JavaでAndroid Appを開発して、Android Studioでずっとgradleでビルドしているが、gradleでタスクの作り方が全然わからないです。今後は自動テスト実装してgradleでAndroid Studio以外環境に実行するかもしれないので、gradleの使い方を勉強したいです。
-
このセッションには、以下二つのgradleの使い方が説明されました。
- タスクの実行順番
- ファイルコピーの実装方法
- ファイルの選択
タスクの実行順番
- 既存タスクにdoFirst, doLastを追加して事前(事後)処理を追加できる
- 実行順序は「〜〜したら、〜〜する」ではなく
- 依存関係でやる: 「〜〜するためには、先に〜〜が必要」
task taskA {
doFirst { println "Task A" }
}
task taskB {
dependsOn "taskA"
doFirst { println "Task B" }
}
- 同時に実行されたら順序を制御したい場合は
buildした時にclean後にやる
plugins { id "java" }
build.mustRunAfter clean
ファイルコピーの実装方法
-
実現方法がいくつある
- Javaの標準APIを使う
- GroovyのAPIを使う
- Projectのcopy()メソッドを使う
- Copyタスクを使う
-
進め:Copyタスク
- タスクの入出力まで定義する
- 入出力が前回と同じ場合、タスクは実行されない
ファイルの選択
- file()
- 単一のファイルを指定して File を取得する
- files()
- 複数のファイルを指定して FileCollection を取得する
- fileTree()
- ディレクトリを指定して FileTree を取得する
開け!ドメイン駆動設計の扉
- DDDをよく聞いた事があって、記事や本をざっくり読んだが、完全に入門できないです。今回のセッションは詳しくDDDを説明じゃなくて、DDDに入門できるように色々な説明されました
- モチベーション
- DDDとは
- 知識の蒸馏
- 構成要素
モチベーション
- 問題
- 専門者は説明できたが開発者は理解できない
- 開発者はプロジェクト最初に入る時に仕様がない
- 開発者はコードより探してすぐ理解できない
- ゴール
- ソフトウェアの利用者とコードの開発が続きになること
DDDとは
-
ドメインが何
- ドメインに含まれることが何
- 例えば、トラックには荷物やアクセルが含まれる
- 抽象化モデル
-
ドメインモデル
- コード上の表現:ドメインオブジェクト
- トラック <> ドメインモデル <> ドメインオブジェクト
- ドメインの変化がコードに伝わる
- 実装時にの気づきがドメインに影響する
知識の蒸馏
- ドメインエキスパート -> ドメインことをよく知っている(業務によく知っている方)
- エキスパートと開発者は一緒に考える
- 理解するには会話必要が、技術ご vs. 固有語
- ユビキタス言語 -> 単語帳ではない、いつでもどこでもの言語
- 言葉は文化である相手の言葉を使うことほど理解を進める
構成要素
- 表現する
- 値オブジェクト
- エンティティ
- サービス
- 集約
- 専念させる
- リポジトリ
- ファクトリ
- 隔離する
- アーキテクチャ