4 ms·
How Much Architecture Is "Enough?"
- wmil 3y agoYou'll know your architecture is complex enough when diagrams of it land you a big raise at a new company. Until then you need more services.
- karim79 3y agoDon't forget that component/service names will need to be suitably enterprisified like so, for professionalism: InterceptorWatcherCollectionClientDefinitionIteratorBroadcasterBasedObserver I always use this tool when I feel that the stuff I'm churning out is substandard: - https://projects.haykranen.nl/java/ https://projects.haykranen.nl/java/
- rqtwteye 3y agoHere is a tutorial for correct naming: https://www.youtube.com/watch?v=y8OnoxKotPQ https://www.youtube.com/watch?v=y8OnoxKotPQ
- karim79 3y agoVery informative. I only have one small gripe: I find that the 'Papaya' naming is somewhat unspecific, and somewhat ambiguous. I would have called it 'Wombat' for clarity, but overall I think these guys know what they're doing.
- _f5ah 3y agoThere is a class `ParameterizedAutoFactoryFactoryFactory`[1] in one of my pet projects. The name does correctly reflect the purpose of this class. Although I could of course have come up with another one, the temptation of `Factory`x3 was just too strong to resist. [1]: https://github.com/mykolav/unitycontainer-param-autofactory/blob/master/ParameterizedAutoFactory.Core/ParameterizedAutoFactoryFactoryFactory.cs https://github.com/mykolav/unitycontainer-param-autofactory/...
- Buttons840 3y agoParameterizedAutoFactoryCubed
- myk9001 3y agoPower types: to multiply your effectiveness on those days when product and sum types just don't add up.
- karim79 3y agoThat's even more inspired than RequestSpecificProcessorFactoryFactory from org.apache.xmlrpc.server: https://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/server/RequestProcessorFactoryFactory.RequestSpecificProcessorFactoryFactory.html https://ws.apache.org/xmlrpc/apidocs/org/apache/xmlrpc/serve...
- deleted 3y ago[deleted]
- jiggawatts 3y agoI was asked to review a multi-cloud architecture proposing to add several code repositories, multiple cross-cloud ETL pipelines, scalable big-data clusters, several and web and API apps -- with API management, of course! Some, but not all of that, was to be hosted on multiple Kubernetes clusters. All of that for a project being implemented by one developer to generate one report. My alternative solution was adding a single index and a PowerBI connector to the existing database. They didn't like that and went with the original approach. I didn't hear back.
- brodouevencode 3y agoI've found that using techniques like C4 address this issue
- chrisweekly 3y agohmm, not sure I understand how a particular approach to diagramming architecture even relates to things like determining the value of an MVP. I found the linked article insightful, and the focus on making the MVA an explicit and crucial peer of a given MVP is, for me, a helpful framing of concerns that too often remain indistinct.
- brodouevencode 3y agoC4 pushes a broad view on the state of is and will be, with successive "zooming in" at different layers. The act of such allows you to figure out what's necessary and what's not, while also pushing the builders into thinking in terms of reusability/overlap/components/interfaces. Personal experience has proved that I wind up architecting for _less_ using this approach.
- chrisweekly 3y agoThanks; that actually makes sense.
- Veuxdo 3y agoC4 is about diagramming software systems, and primarily existing ones at that. Not sure what this has to do with creating MVAs.
- Am4TIfIsER0ppos 3y agoI think that is a joke about bombs.
- ActionHank 3y agoI find that asking do I really need this right now? Is generally good enough. Diagrams just help to see the lay of the land.
- bbor 3y agoI really liked this article. Very concise, clear, and I like the systematic thinking of “what are we really DOING here?”. If the author(s) read this: make sure to define your acronyms in the TLDR up top, since it pops up first. Tiny thing but might help engagement rates - I almost clicked away thinking MVA was some business school concept, not knowing this was part of a series. I’ve been reading a lot of Kant recently and he has two ideas I think could be helpful to modern software engineering: 1. Using the word “architectonics” to describe the science of structures. Now it’s only used for the brain (Cytoarchitectonics) and some other small academic fields, sadly. I think that would be an awesome evolution for the slowly-outmoded agile coaches of the industry: “Architectonic consultants” or “architectonics”. 2. He thinks an important principle of Architectonics is not to just collect a bunch of components until you have a system that works, but rather to start with the top level, deduce the divisions within the structure that are necessary, and only then start filling in the details. In the practical world of engineering this isn’t always necessary, but I’ve found it really helpful, for the exact reasons discussed in this post (scoping, not getting ahead of yourself, allowing for growth without doing unnecessarily early work, etc)
- asolove 3y agoFolks who enjoy this should consider reading Christopher Alexander's "The Nature of Order", which has some philosophy and metaphysics, but also a lot of analysis of concrete examples, of how complex structures come to be. It also attempts to analyze the process-oriented reasons behind guidelines like this.
- sesm 3y agoI would also recommend 'Patterns of Software' by Richard Gabriel. In one of the chapters he discusses how Christopher Alexander's work can be applied to software and argues that GoF interpretation of 'pattern language' totally misses the point.
- asolove 3y ago100%. If you read "A Pattern Language" and arrive at GoF, I'm not really sure how you got there.
- lincpa 3y ago[dead]