Open micahgodbolt opened 10 years ago
I was looking at Wikipedia's definition of traditional architecture:
Architecture is both the process and the product of planning, designing, and constructing buildings and other physical structures.
I like that the product (architecture) is presented as the result of action (planning, designing, constructing). The current FEA definition lacks action and simply defines FEA as tools and processes. I would argue that the humans behind the tools and processes are just as important. By referencing actions, you can introduce that human element that I think is missing at the moment.
I think a FEA is more a mixture of architecture and engineering in analogy with architect engineers. A FEA builds the design and construction. An architect is more a designer of constructions not the actual builder. One of the goals of FEA not mentioned is also about facilitating tools and putting processes in place that any new FEA that joins your team or FEA teams as such can start using the architecture at hand straight away instead of everyone doing it their way (Of course coding style can differ a little now and then). It saves time and increases efficiency. Above all your work place will be more enjoyable. It alleviates communication issues of collaborative efforts between FE developers and FE developers with co-workers like UI designers and back-end devs, product managers, ...
I've always understand software architecture as encompassing the overall structure of the system or application. Tools and processes are part of that (an important part!), but so is the high-level design patterns of the system. For front-end architecture, this might mean deciding where rendering is happening in your application, how assets are structured and loaded (JS, CSS, images, fonts, etc.), how UI modules communicate with each other, etc. And of course, the tools/processes/workflow to go along with and support those decisions.
Hope I'm not too late to contribute to the discussion. :smile:
I would tend to define Front-end Architecture in as:
The tools and processes are means to achieve the goals of (2), but they aren't what Front-end Architecture is.
Current definition is:
This is really just a working definition. I'd love to keep iterating and try to get it as concise, and complete as possible.