name dob …. uuid createdAt / updatedAt / etc. title stars …. uuid createdAt / updatedAt / etc. title plot …. uuid createdAt / updatedAt / etc. name dob ….
name dob …. uuid createdAt / updatedAt / etc. title stars …. uuid createdAt / updatedAt / etc. title plot …. uuid createdAt / updatedAt / etc. name dob ….
title actors Movie Movie(super= Entity(uuid=c1e3c57e-...-b73147a13bfa, createdAt=2023-09-05T10:26:31.305), title=The Matrix, actors=[Actor(dob=1982-03-14,name=Your next Superstar,internationalActive=true,...)])
title actors Movie Exception in thread "main" java.lang.StackOverflowError at java.lang.AbstractStringBuilder.append(AbstractStringBuilde r.java:449) at java.lang.StringBuilder.append(StringBuilder.java:141) at com.example.domain.Entity.toString(Entity.java:11) at com.example.domain.Movie.toString(Movie.java:11) at java.lang.String.valueOf(String.java:2994) at java.lang.StringBuilder.append(StringBuilder.java:136) at java.util.AbstractCollection.toString(AbstractCollection.ja va:462) at java.lang.String.valueOf(String.java:2994) at
needed • Read and understand the specifications of your persistence mapper • Use built-in mechanisms to load the data for your use-case • Don’t try to work against the mapper library ◦ Use lower abstractions or drivers
did “we” get here? ◦ How can “we” mitigate the situation? ▪ Documentation/GH-Issues • Be empathetic • You can still be technical ◦ What information is needed to support the customer • Don’t be too verbose • NEVER throw “expected” exceptions
◦ Implicit testing of your application and the documentation state • Give the documentation to new team members ◦ Helps with onboarding and also shows lacks in the documentation • (if possible) share link to the open source repository ◦ Problems/misunderstandings can be filed as issues ◦ Customers and users can create PRs