[JAVA] Participated in JJUG CCC 2019 FALL
Overview
- Organizer: Japan Java User Group
- Date and time: Saturday, November 23, 2019
- Location: Belsar Shinjuku Grand Conference Center 5F
- Hashtag: #jjug_ccc
What is JJUG
- Japan Java User Group (abbreviation for Japan Java User Group)
- A voluntary organization that aims to improve and develop Java technology and support developers. Launched in April 2007, it is now Japan's largest Java community with over 9,000 Java engineers.
Details
Venue atmosphere
Impressions
The first step for someone who has a complete understanding of Gradle to get confused
-
I've been developing an Android App in Java and building it in gradle in Android Studio all the time, but I have no idea how to create a task in gradle. In the future, I may implement an automatic test and run it in an environment other than Android Studio with gradle, so I would like to learn how to use gradle.
-
In this session, the following two usages of gradle were explained.
-
Task execution order
-
How to implement file copy
-
File selection
Task execution order
- You can add pre (post) processing by adding doFirst and doLast to the existing task.
- The execution order is not "~~ then ~~"
- Do it with a dependency: "In order to do ~ ~, you need ~ ~ first"
task taskA {
doFirst { println "Task A" }
}
task taskB {
dependsOn "taskA"
doFirst { println "Task B" }
}
- If you want to control the order when executed at the same time
Do it after clean when building
plugins { id "java" }
build.mustRunAfter clean
How to implement file copy
-
How many ways to achieve it
-
Use Java standard API
-
Use Groovy API
-
Use Project's copy () method
-
Use Copy task
-
Advance: Copy task
-
Define even task input / output
-
If the I / O is the same as last time, the task will not be executed
File selection
- file()
- Get a File by specifying a single file
- files()
- Get a FileCollection by specifying multiple files
- fileTree()
- Get FileTree by specifying a directory
open! Domain Driven Design Door
- I've heard DDD a lot and read articles and books, but I can't get started completely. This session did not explain DDD in detail, but various explanations so that you can get started with DDD.
- Motivation
- What is DDD?
- Distillation of knowledge
- Component
motivation
- Problem
- Experts can explain, but developers cannot understand
- Developers have no specifications when entering the project for the first time
- Developers can't find it in the code and understand it immediately
- Goal
- Continued software user and code development
What is DDD
-
What is the domain
-
What is included in the domain
-
For example, trucks include luggage and accelerators
-
Abstract model
-
Domain model
-
Code representation: Domain object
-
Track <> Domain Model <> Domain Object
-
Domain changes are transmitted to the code
-
Awareness at implementation affects the domain
Distillation of knowledge
- Domain Expert-> Domains are familiar (those who are familiar with business)
- Experts and developers think together
- Conversation is required to understand, technical vs. proper language
- Ubiquitous Language-> Languages anytime, anywhere, not vocabulary
- Language is a culture The more you use the other person's language, the more you understand
Component
- Express
- Value object
- Entity
- Service
- Aggregation
- Dedicate
- Repository
- Factory
- Isolate
- Architecture