micahgodbolt / front-end-architecture

Raise a Banner. Take up the Torch. It's time to make Front-end Architecture matter! #frontendarch
957 stars 108 forks source link

Finish Front-end Architecture definintion #5

Open micahgodbolt opened 10 years ago

micahgodbolt commented 10 years ago

Current definition is:

Front-end Architecture is a collection
of tools and processes that aims to improve the quality of our front-end code while creating a more efficient and sustainable workflow.

This is really just a working definition. I'd love to keep iterating and try to get it as concise, and complete as possible.

kevinwhoffman commented 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.

jvandenrym commented 10 years ago

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, ...

andrewrota commented 10 years ago

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.

joshuacc commented 9 years ago

Hope I'm not too late to contribute to the discussion. :smile:

I would tend to define Front-end Architecture in as:

  1. The organization and arrangement of Front-end UI components and their interactions with each other in a software system. (Everything has an architecture even if it wasn't explicitly architected.)
  2. The discipline dedicated to creating the above in a rational and cohesive manner that maximizes business and technical value.

The tools and processes are means to achieve the goals of (2), but they aren't what Front-end Architecture is.