👑 Context is King 💻 Software Architecture & Design 📺 https://xitter.cf/t.co/zMGP2Ktbn4

Canada
Joined November 2008
Random reminder that I have a YouTube channel where I post videos about software architecture and design. Usually in the 10 min range trying be concise as possible. If you enjoy please share. Have suggestions? Please let me know. youtube.com/@codeopinion
8
22
2
146
38,650
Derek Comartin retweeted
It's such a strange time to be a programmer. In a two-minute span it's "DDD and domain modeling generally are more important than ever" then "reading code is a waste of time, just let the agents manage it" then "classical software design principles are what matter." Please help.
53
37
3
607
21,654
Stop Modeling Everything as CRUD. Task-Driven isn't always the answer either. Ask: What is the user trying to accomplish?
1
1
12
891
"design patterns don't matter because AI writes code" is like saying "architectural blueprints don't matter because power tools cut wood faster." Ex: architectural (distributed, messaging) patterns like say a claim check or cache aside, do you need them? Depends on the context. But you can't say you do or don't unless you know what they are and the trade-offs. Otherwise you're just offloading decisions.
do you remember software design patterns we don't give a fuck about them anymore
7
11
1
37
2,895
A recent example of this was pulling some metrics for a dashboard. The query made sense but was it efficient? Depends on the DB, amount of data, indexes, etc. Cache aside could be useful for partial values of the data set for historical data with a short expiry. But a cache would be more moving parts and complexity. Did the agent just magically decide it should use a partial cache or not? Are we deferring that answer to it without even any of that understanding? The answer can be yes, but it sure better have all the context to make that decision. But who is accountable?
1
278
Derek Comartin retweeted
Replying to @raimeyuu
Ask a model to build out a public http API. It will be horrific to you. Why? Because is doing what it's told. You need to tell it how to handle your resource model, conventions, consistency, rate limiting, etc. None of this is "best practice" or a default, it's specific to your context that you need to define. And if you don't to ask you're left with, for example, a resource model that leaks your data model, that you can't change.
1
1
7
647
Derek Comartin retweeted
Alan K. said what was important: the messages in between the objects; that always been the tricky part ... The older I get, the less I care about algorithms, data structures, and programming languages. Ai accelerated that. Most algorithms, data structures, and programming languages are render trivial given that you understand the data, information and messaging between your components. That is also why, sometimes, it is better to hire somebody with the domain knowledge than somebody that is purely very good at programming. One of them is too expensive to get it wrong, and I testify this by the only failure in my entire career that I attribute to myself alone, and, it was not a problem of hard programming skills, but the fact I was not fast enough to discover all edge cases around the data. The wisdom to avoid dead ends, and what NOT to do, comes from the understanding of the data in most contexts.
If we’re not looking at the code what should we becoming better at? I’m struggling to find a clear answer.
1
3
671
Multi-Tenant "Best Practices" often hide trade-offs. Where complexity really goes when using tenant context, shared databases, filtering, and feature flags.
2
6
874
A lot of software architecture and design is really just about where you want the coupling to live and the trade-offs around it. Yet I seemingly almost never hear people explicitly saying that's what's going on. I genuinely think that if people acknowledged that, the decisions would be much easier to make.
3
9
1,042
Good integration events don't just announce that data changed. They communicate a meaningful business event to other systems. Integration events are part of your public API. Design them deliberately. codeopinion.com/domain-event…
1
1
6
512
I keep seeing this take. The "abstraction is going up a layer" is a weak argument because an abstraction layer gives you a _stable_ contract. AI can let you operate with less detail locally (which is awesome), but calling it a new abstraction layer, as if it were a compiler, when it's a non-deterministic collaborator... no.
Replying to @android_I_AM
“If you don’t know assembly and machine code, why should you be hired to maintain C?” We’re on a new abstraction layer now. But I’m not even saying I don’t know the underlying language, I do. And if I need to drill down on something, the AI can walk me through it on the spot.
10
5
68
4,927
Brain dump: Tests and evals can only validate the things you thought to test. Not what you didn't. I’m skeptical that we can stop reviewing code and just evaluate outcomes. Looking at the implementation can reveal things you never thought to write an eval for: bad assumptions, unintended behavior, coupling... all could pass but still be "not good". Reviewing the code is one way you discover what you didn’t know. Again, just a brain dump...
1
11
1,210
Don't expose internal domain events across service boundaries. When you treat domain events as your public integration contracts, you couple consumers to your internal domain model and workflows, leading to breaking changes and a fragile system that's hard to change.
1
10
1,029
Derek Comartin retweeted
If you’re using event driven architecture and asynchronous messaging, you need to be clear about what you’re actually doing. You’re not necessarily decoupled just because you removed direct synchronous calls. codeopinion.com/event-driven…
3
4
439
Derek Comartin retweeted
Are you just shipping a CRUD API over pub/sub messaging and calling yourself "event-driven"? @codeopinion has a good post about modeling events around business concepts and behaviors. codeopinion.com/event-driven…
1
12
88
5,122