LoginSignup
0
0

More than 3 years have passed since last update.

JJUG CCC 2019 FALLに参加しました

Last updated at Posted at 2019-11-26

概要

  • 主催 : 日本Javaユーザグループ
  • 開催日時 : 2019年11月23日(土)
  • 場所 : ベルサール新宿グランド コンファレンスセンター 5F
  • ハッシュタグ : #jjug_ccc

JJUGとは

  • 日本Javaユーザグループ(Japan Java User Groupの略称)
  • Java 技術の向上・発展、開発者の支援を目的とした任意団体です。2007年4月に発足して、現在は9000人以上の Javaエンジニアが参加する日本最大のJavaコミュニティです。

詳細

会場雰囲気

IMG_1508.JPG

IMG_20191123_105343.jpg

IMG_20191123_105353.jpg

IMG_20191123_115404.jpg

所感

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. 固有語
  • ユビキタス言語 -> 単語帳ではない、いつでもどこでもの言語
  • 言葉は文化である相手の言葉を使うことほど理解を進める

構成要素

  • 表現する
    • 値オブジェクト
    • エンティティ
    • サービス
    • 集約
  • 専念させる
    • リポジトリ
    • ファクトリ
  • 隔離する
    • アーキテクチャ
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0