First, I agree. I’d like share some observations from a few recent experiments.
What I’ve been finding extremely interesting lately is that the LLMs know many architectural concepts very well.
They may not apply them implicitly, but when explicitly directed to use them they ‘understand’ the pattern languages.
Two example experiments.
I recently used a LLM to build a simple application using Hexagon pattern. Because of this I was able to direct the LLM to change very particular parts of the code and leave the rest alone. Example, change adapter xxx.
Second experiment. What if I have a system with several hexagons? How do I grow the individual ones and simultaneously integrate them?
To the rescue DDD with its language for describing these sorts of issues: bounded contexts, aggregates, policies,domain and integration events.
What occurred to me in the process is that these patterns describe degrees of freedoms we want in our architecture and the desire to be able to tweak them independently.
This might seem like a stretch but this lead me down the path of reviewing the concept of entropy with its idea of degrees of freedom and the possible relationship to the single responsibility principle.
So yes, I think it helps to know architecture and yes these LLMs are an interesting development.
P.S. I’m not suggesting the AI can create finished code that doesn’t need edits.
But I think the concerns can be separated so that when the AI bulldozer comes along you can direct it away from your nicely finished garden if the architecture is correct.
First, I agree. I’d like share some observations from a few recent experiments.
What I’ve been finding extremely interesting lately is that the LLMs know many architectural concepts very well.
They may not apply them implicitly, but when explicitly directed to use them they ‘understand’ the pattern languages.
Two example experiments.
I recently used a LLM to build a simple application using Hexagon pattern. Because of this I was able to direct the LLM to change very particular parts of the code and leave the rest alone. Example, change adapter xxx.
Second experiment. What if I have a system with several hexagons? How do I grow the individual ones and simultaneously integrate them?
To the rescue DDD with its language for describing these sorts of issues: bounded contexts, aggregates, policies,domain and integration events.
What occurred to me in the process is that these patterns describe degrees of freedoms we want in our architecture and the desire to be able to tweak them independently.
This might seem like a stretch but this lead me down the path of reviewing the concept of entropy with its idea of degrees of freedom and the possible relationship to the single responsibility principle.
So yes, I think it helps to know architecture and yes these LLMs are an interesting development.
P.S. I’m not suggesting the AI can create finished code that doesn’t need edits.
But I think the concerns can be separated so that when the AI bulldozer comes along you can direct it away from your nicely finished garden if the architecture is correct.