One of the worst mistakes that people make is trying to get approval for using #dddesign. If you are doing it right, you shouldn't have to ask permission or get backing for #dddesign. Really.
Most enterprise software could make major strides forward just by replacing the primitive obsession (many extraneous attributes or properties) in entities. That is, compose value objects with attributes that belong together:
String streetAddress1;
String streetAddress2;
String city;
String stateOrProvince;
String postalCode;
Blah blah;
Refactor these into a whole value:
public final class PostalAddress { ... }
Now you can test PostalAddress and you can test what uses PostalAddress. And when something changes in PostalAddress, you replace the whole PostalAddress--even when changing just one attribute.
Seriously, who would possibly complain about that? Okay, someone will definitely complain, but it doesn't mean they are smart, reasonable, or correct. This baby step--one entity at a time--will greatly raise the quality of your code and increase team knowledge.
Is this "full-blown DDD"? No, but it is iterative improvements. Once your quality and knowledge increases, take the next small step.
Again, if you are doing it right, you don't even refer to what you are doing as #DDD. Just ask people who know what attributes belong to the same concept, and test/refactor/test. Many such decisions can be determined by using your own gray matter. You can even study the existing source code to understand what changes together. If 2+ attributes change together, they are probably related and belong in the same value type. (Except for the 35+ attributes that are all set together in a saveSomeHugeEntity() application service method).
Another but different place to start is in modularizing code per business concept cohesion.
The primary point is, the less people that you tell the better. Just do it and tell them later when you can prove that it worked and that your team benefitted.
@JosvanderHeijd7 @Zonneplan@I_AM_AEROPLANE@roland26729 Bij mij werkt het inmiddels weer, ik heb wel even de P1 dongle 5 minuten eruit gehaald en daarna weer erin gestoken.
@Zonneplan@I_AM_AEROPLANE@roland26729 Goed om te horen, voor de zekerheid stuur ik je wel dit. Het zou wel erg toevallig zijn als net ik onder die kleine 1% val. Misschien even doorsturen naar de engineers? Ben vast niet de enige.
@sonatype_ops Could it be increments to the Maven Search index are no longer published? https://t.co/wGR9mTEwGO Last update is from May 10, before that updates were almost on a daily basis.
@swardley I was curious if the “pair programming” one can do these days with ChatGPT is what you have been referring to as conversational programming for quite some time already. Do you see prompt engineering as a skill that is part of conversational programming?
@richard_lopes@manekinekko I can recommend ScanOSS (free) to detect overlapping snippets of code between a codebase and OSS projects https://t.co/9C5NMAIZjI
@shellscape@EddyVinckk@manekinekko Do you have a source for your statement? MIT and Apache are both permissive licenses and are explicitly compatible. https://t.co/JHfRVYkbXC
I'll never forget asking a guy who maintained 40yo mainframes for an insurance co why he didn't just migrate the apps.
His reply: the firm's actuarial code relies on specific bugs in the mainframe OS's floating-point handling. Run on any other system, it would produce chaos.
To the uninitiated, you simply can’t build these kind of systems overnight cobbling together some OSS software.
You need to bake in resilience and graceful degradation at every single layer of software. Doing this isn’t trivial, as it takes a good understanding of failure modes.
@allenholub What was it again? People and interactions over processes and tools? Somewhere our industry took a wrong turn. Software engineering is knowledge work, not factory work.
@iam_preethi@iam_preethi This graph looks super interesting, but I have trouble understanding 😬 is there anywhere I can read up on these dev retention graphs, the data, and what is on the x axis, what each dot (or hotspot?) in the graph represents and why it is represented as a diagonal?
@tottinge@allenholub A study by TU Delft analyzed 13 years of recorded IDE actions from 400+ software engineers and found that of all engineers claiming to follow TDD, only 12% actually followed the practice. Apparently there is quite a gap between thinking one does TDD and ones actual actions.