Skip to content

o-s-expert/three-persistence-mastering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The three goals to achieve the Java persistence mastering

1 Business

  • The reason that we’re coding is the goal.

Software Engineer Definition by Modern Software Engineering’s book:

Software Engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.

  • Rich vs Anemic model

DDD

  • Bringing the code close to the business.

  • There are tactical and strategic perspectives

  • Strategic: it’s a business language: Bounded Context, ubiquitous language, context Maps.

  • Tactical: implementation, classes, and modules.

Patterns

  • Entities: Anything with continuity through a life cycle and distinctions independent of attributes essential to the application’s user.

  • Aggregator: A DDD aggregate is a cluster of domain objects that can be treated as a single unit.

  • Value Object: Value Object is an object that represents a concept from your problem Domain.

  • Services: is used to perform domain operations and business rules

  • Repository: is used to access data from persistent stores.

Understanding and converting to the code

There are several, such as story Storming, Story Mapping, and UML. My favorite one is Domain storytelling.

The tool: Egon.io

Library’s case

2 Isolation

  • We are keeping the business safe from technology.

  • Hexagonal architecture

  • Ports and Adaptors

  • Clean Architecture

Abstraction

To be successful at combating the scale and complexity of software in the next decade, developers will need improved weapons…​ in three categories: partitioning, knowledge, and abstraction.

Abstraction can effectively combat complexity and scale because it shrinks problems, and smaller problems are easier to reason about it.

Layers, Layers, Layers

  • Unstructured Code Monolith

  • Modular Monolith

  • Layered Architecture

    • Mapper

    • DAO

    • Repository

When Layer can become an enemy

More code:

  • More Work

  • More code to maintain

  • More bugs

  • We’re terrible at seeing the future; go to evolutionary architecture instead.

    • Unknown unknowns

3 Performance

  • Object-relational impedance mismatch

    • Polymorphism, types, conversion, mapper

    • 90% is on that conversion

Take advantage of the database

Hibernate and JPA were designed to work well in combination with handwritten SQL. ORM, 20 years later by Gavin King

  • NoSQL

    • Key-value

    • Wide-column

    • Document

    • Graph

    • Time Series

    • Even more

  • SQL

  • NewSQL

  • CAP

    • PACELC

Challenges (Leak of knowledge)

  • Maturity Models

  • Design Patterns

    • Migrations

  • CDC

Conclusion

Understand the three rules and focus on simplicity.

conclusion

About

The three goals to achieve the Java persistence mastering presentation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages