Infinite State Machine

3.4K posts

Infinite State Machine banner
Infinite State Machine

Infinite State Machine

@tPl0ch

Principal Engineer @flix_tech | socio-technical systems thinker | Domain-Driven designer | https://t.co/UEPyGAsW6V Views are mine alone | he/him

Berlin, Germany Katılım Ekim 2009
1.3K Takip Edilen968 Takipçiler
Sabitlenmiş Tweet
Infinite State Machine
Infinite State Machine@tPl0ch·
I thought quite a bit about this extension of Conway's Law, which is taking the flexibility of the system under change into account. Here are some unsorted and maybe random thoughts from my experience of doing an inverse Conway maneuver on a larger scale at Flix. #SoftwareDesign
Mathias Verraes@mathiasverraes

New blog: "Conway’s Law Doesn’t Apply to Rigid Designs". tl;dr A reorganisation will help you get the system design you want, assuming the system is new or at least very flexible in adapting to the organisation. Not if the design is already ossified. verraes.net/2022/05/conway…

English
3
19
49
0
Infinite State Machine
Infinite State Machine@tPl0ch·
@fduran @allenholub It's the curse of knowledge - as people who are very affiliated to the inner (and outer) workings of software, it's easy to say that these safeguards are unnecessary. But for the general user - holy moly NO! The amount of times I heard from users "but I thought that ..."!
English
0
0
1
31
Fernando Duran
Fernando Duran@fduran·
@allenholub For destructive, irreversible actions I do want an “are you sure?”; I’d rather click once more and have this mild annoyance than losing data or hours of work.
English
1
0
5
167
Allen Holub. https://linkedIn.com/in/allenholub
A periodic reminder that a "do you really want to do that" dialog is an abomination. Yes, I want to do that, or I wouldn't have asked the first time! Also, by the time that dialog pops up, I'm already annoyed because it's in the way of me getting back to whatever I was doing before. I just want to get rid of the damn dialog. However, the default action is usually "don't do it," which I hit too often, so I have to start over. Forcing me to actually read and choose carefully just makes me more annoyed. In general, it's bad UX design to annoy your users. So, just do what I ask, but provide me with an undo. Yes, that's harder to program (watch me bring out the world's tiniest violin). Your (the programmer's) convenience doesn't matter to me (the user). Do what I need, not what's easier for you. Lazy thinking that prioritizes ease of implementation is behind a lot of truly repugnant UX.
English
3
0
18
3.3K
Infinite State Machine
Infinite State Machine@tPl0ch·
@runarorama Isn't that inherent to TDD, where you don't have an idea of how the API will look like, and its up to you to design it? Then in the test you start writing the code as you want it, and then make the test pass?
English
2
0
4
311
Rúnar
Rúnar@runarorama·
There's a way of programming that I've been doing for decades and I realized recently it doesn't come naturally to many folks, so here's a pro tip: Write to the interface you'd like to have. That is, write the code you want, even if it doesn't work, then make it work.
English
46
40
467
17.1K
Infinite State Machine
Infinite State Machine@tPl0ch·
@MarcJBrooker It's disturbing to see how many people think that Microservices were conceived as a solution to technical problems, and not organisational scaling issues.
English
1
0
3
469
Marc Brooker
Marc Brooker@MarcJBrooker·
I know this kind of junk is engagement bait, but it's sad that new systems engineers see 100 ignorant ill-informed takes for every bit of good architecture advice. Microservices are fine. Take your systems advice from people who build and run systems. Ignore influencers.
hasen@hasen_95dx

While there’s no way to know ahead of time what the right architecture is (you have to discover it) there are many wrong architectures that you should avoid. “Microservice Architecture” is just the wrong architecture for any kind of problem. Period. Never even consider it.

English
18
31
295
29.1K
Infinite State Machine
Infinite State Machine@tPl0ch·
@VaughnVernon @ICooper If persistence was transparent, it would, IMO, not be the Active Record pattern anymore. The benefits of Active Record are colocation of domain logic and data storage/retrieval, making them easier to understand and simpler to implement for those developing these sytems.
English
0
0
1
109
Vaughn Vernon
Vaughn Vernon@VaughnVernon·
@ICooper What if persistence was transparent; just happens? Why are transactional boundaries a problem? Is the desire to persist multiple records in one transaction?
English
2
0
0
561
Vaughn Vernon
Vaughn Vernon@VaughnVernon·
Do you like the Active Record pattern? If not, please explain in reply.
English
22
3
10
8.7K
The Other Alistair
The Other Alistair@TotherAlistair·
looking forward to getting back to this book and finishing it up maybe in August :)
The Other Alistair tweet media
English
5
0
25
2.2K
Infinite State Machine
Infinite State Machine@tPl0ch·
It was a pleasure to meet all you brilliant people at #DDDEU! ♥️ This year I decided that hands-on sessions will be my focus. The talks will be (eventually) released, but the hands-on sessions are unique in so many ways. To me, they are the highlight of the conference! Good bye!
English
0
1
6
742
Infinite State Machine
Infinite State Machine@tPl0ch·
@mathiasverraes I will need to wait for the next training budget cycle 😩, otherwise I'd have challenged the number 1 spot for fastest ticket sale in the history of #DDDEU!
English
0
0
3
132
Mathias Verraes
Mathias Verraes@mathiasverraes·
We announced DDD Europe 2025 before Eric's closing keynote, and we already sold a ticket before the keynote was over! I guess that's feedback 😍
English
6
2
39
3.6K
Infinite State Machine
Infinite State Machine@tPl0ch·
On the train Berlin ->was Amsterdam for #DDDEU - choot choot! Really looking forward to meet everyone there. This conference is always a highlight for me, and this year my lovely wife is accompanying me, so it will be double the fun. Be there, or be squared!
English
0
1
4
676
Infinite State Machine
Infinite State Machine@tPl0ch·
@einarwh Sad to not see you there. Have a safe trip to Budapest. I try to note down as much as possible and release my Miro board afterwards, so you might be able to trick your brain into thinking that you actually had been there in the first place! 😁
English
0
0
3
43
Infinite State Machine
Infinite State Machine@tPl0ch·
My excitement for #DDDEU '24 is growing day by day. Are you going and have not chosen your hands-on lab yet? If so, then do it quickly (check your email inbox for your private link), because they are one of the best parts of the conference! And some of them are full very quickly.
English
0
1
3
564
Infinite State Machine retweetledi
Aardling
Aardling@aardling_eu·
We're looking for a technical+organisational coach in #Belgium, with DDD & architecture skills and a Continuous Delivery mindset, to help our clients deliver incremental value faster. contact@aardling.eu for more info.
English
1
4
2
2.2K
Infinite State Machine
Infinite State Machine@tPl0ch·
@mathiasverraes This step would not be necessary in an Ensemble environment. mob.sh e.g. disables pipeline runs by default via "skip-ci" commit messages. But this only works if there is parity between the local & CI server test environments (which IMO should be the goal).
English
0
0
0
51
Mathias Verraes
Mathias Verraes@mathiasverraes·
Commit and push the test. Yes, this will break the build. I think this is perfectly fine: the code was already broken, it was just invisible.
English
2
0
2
299
Mathias Verraes
Mathias Verraes@mathiasverraes·
Here's roughly how I fixed bugs early on in my career: 1/ Browse around in the code. 2/ Try stuff. 3/ See if it works. Here's my preferred way of doing it since about 2012 🧵
English
2
7
12
3.6K
Infinite State Machine
Infinite State Machine@tPl0ch·
@Grady_Booch Having ISO standards and the reality within organizations are two very different pair of shoes. Who actually has read the complete standard nowadays? And no, I am not joking, I know of no one in my org at least.
English
0
0
1
105
Infinite State Machine
Infinite State Machine@tPl0ch·
@Grady_Booch The stakeholder might be the wrong person to provide insights into that usefulness. The only reliable source of information are the users/customers of those software systems, that probably span many business capabilities to make the organization realize it's value proposition.
English
0
0
0
232
Christian Findlay
Christian Findlay@CFDevelop·
In all seriousness, are there any jobs left where you just build the software in peace?
English
178
95
1.8K
340.8K
Infinite State Machine
Infinite State Machine@tPl0ch·
@vlad_mihalcea I believe that is partly due to the underlying JVM itself gives a higher flexibility in terms of supported technologies. You could run Java, Scala, Kotlin, and more (even within the same application) side-by-side. And more options means less risks.
English
0
0
0
286
Vlad Mihalcea
Vlad Mihalcea@vlad_mihalcea·
When I started learning Java in 2002, devs were saying that Java was slow and could never compete with C or C++. 20 years later, many High-Frequency Trading companies use Java instead of C/C++. efinancialcareers.co.uk/news/2020/11/l…
Vlad Mihalcea tweet media
English
16
45
402
41.6K
Infinite State Machine
Infinite State Machine@tPl0ch·
@quii @VaughnVernon I like the "Functional core, Imperative shell" principle, which combines the best of both worlds. This often leads to leaner systems. Interfaces & modules describe operations, and the implementations benefit from the FP paradigm (testability, guarantees, compos ability, ...).
English
0
0
0
25
Chris James bsky.app/profile/quii.dev
@VaughnVernon Sadly, the latter is what a lot of FP looks like in the wild. Obviously not setting stuff, but it seems a lot of FP advocates will excuse this style because it's "data oriented" and it's usually immutable.
English
2
0
5
486
Vaughn Vernon
Vaughn Vernon@VaughnVernon·
The world would be a much better place if every programmer used the Tell-Don't-Ask principle. That means to do this: quote.extendExpirationBy(days); Not this: LocalDateTime dt = quote.getExpirationDateTime(); dt = dt.plusDays(daysToAdd); quote.setExpirationDateTime(dt);
English
15
57
239
23.1K
Infinite State Machine
Infinite State Machine@tPl0ch·
@VaughnVernon And even knowledge and experience are only helpful in the way that they teach you to ask the right questions to uncover as much hidden information as possible. And also to understand when enough information is gathered to run the first code experiments.
English
1
0
1
242
Vaughn Vernon
Vaughn Vernon@VaughnVernon·
What's a "best practice"? It's a procedure known to yield the best results for a given situation and desired outcome. There are no general best practices because no practice is always best. E.g. Best practices don't exist for unknown unknowns. Knowledge and experience required.
English
4
11
49
4.8K