( ), . , , . .
, . , , .
, , .
, , . : ?
. , , , . : 8:15 ( ) ( ). 18:00 ( ) ( ). : , 8 .
, . , . , , .
150 .. . , ?
, .. . , , .. . . , , , , 5 . , ?
:
. , .. , , .
, .
, cognitive solution Internet of Things.
, , (waterfall, rup, scrum, ). , .. , .
, ,
Java Developer, java. .
, ?
, , , , . , , .. , . , . , : , !
, . , , .
? , , , Spring Framework. , Spring Cloud , .
API Gateway, Config Service, Message Broker, Docker, Workflow, Rule Engine .
.
- Domain Driven Design
- Functional Driven
Domain Driven Design , . : , , . Medicine .
MedicineService. .. .
Functional Driven , , , .
, , . , , ? , , .
, , .
, . , , .
.
Car.
Car . . , , , ? ? ? , , ? ! , .
Vehicle
public abstract class Vehicle {
.
protected String model;
protected int wheelNumber;
protected Date manufactureYear;
protected EngineType engineType;
protected Producer producer;
}
Vehicle, :
public class Car extends Vehicle {
public Car() {
wheelNumber = 4;
}
}
, :
public class Bicycle extends Vehicle {
public Bicycle() {
wheelNumber = 2;
}
}
. , : , . Customer
public class Customer {
private String firstName;
private String lastName;
private Date birthDay;
}
, , .
public class Contract {
private long customerId;
private long vehicleId;
}
Vehicle ,
Customer Contract.
VehicleService,
ContractService CustomerService.
'' ''? , ? . ?
, , . , , , .
, , , : , ?
, . , . , . , // . <..censored..>
.
. , meetup .
, ,
( pom.xml docker-maven-plugin) dockerfile.
docker-compose, docker-compose.yml.
.env .
. Windows 7 MySQL.
?
:
:
, .
, , : , , . , , , . , , , .
, 100% , , .
: . : , . , , , . ? , . .
, , ? . .
VehicleService .
Scooter . , :
Scooter VehicleService, , , . ? , , ..? ?
, , .
VehicleType.
public class VehicleType {
private String name;
private List properties;
.
}
VehicleType VehicleProperty:
public class VehicleProperty {
private String name;
private T value;
private String description;
..
}
Vehicle:
public class Vehicle {
private VehicleType vehicleType ;
private List customProperties;
...
}
, ,
VehicleType Scooter:
VehicleProperty wheelNumberProperty = new VehicleProperty("wheelNumber", 2, "number of wheels");
.
VehicleType scooterType = new VehicleType("Scooter");
scooterType.addProperty( wheelNumberProperty);
..
:
Vehicle scooter1 = new Vehicle(scooterType);
..
VehicleService.
? . ? , .. .
business case . .
. . . , , . : BC? , ? : 2 , , ( ), .. , . , , . , .
: ? , , . , : Business case? , : 20-30 ( , , ), , .
: , business case ?
, business case, ?
. ,
VehicleService , ( ), . .. , . , . ?
VehicleService , .
, . , , . , , .
, ,
VehicleService . , , . , , . ?
VehicleService ?
, .. , .. . , , 100% . .
, , . , , . , . ? , . , .
, . . .
, , , .. :
- Car
- Bicycle
- Scooter
- Traktor
?
VehicleTypesService, , . ? , . ,
VehicleTypesService .
.
VehicleTypesService . , , , . , , , . ?
.
Vehicle EngineType.
public abstract class Vehicle {
...
protected EngineType engineType;
EngineType enum:
: ?
EngineType EngineType ( 99% )?
public abstract class Vehicle {
...
protected List engineTypes;
enum,
Gibrid?
, , ?
, ?
EngineType : ? , . , , (.. ), .
, , , , . ( ). . : ( ) backenda frontenda?
? : , , ? .
, , . .. :
, |
|
|
|
, |
12345 |
01.01.2017 |
Audi Q4 |
...... |
...... |
...... |
...... |
:
CustomerService,
VehicleService ContractService. ? , ?
.
: ? , :
- . , , , . , . .
- , , . , , , . .
, (, , ) . , , , .
. , . , , , . , , , . , , , .
. ( ) . , , , , .
. , : , ? , , . , . , .
, , , . , .
, , , . , . , , , . , , , . , , , , . , , .
.
, , , , . , , .
, , , , . , , .. . , .
Sprint Review , , . : , event, http request? : , . , . , , , .
- , ? /? , ?
, , .. .
.
, ,
- , API Gateway
- , Service Discovery
- , Config Service
-
.
https://habrahabr.ru/post/331104/