It was a very good decision to bookmark this link: https://developers.google.com/web/showcase/case-study/lightsaber but even better one was to read it throughoutly.
Short summary, best quotes and best practices for those busier than me ;)
- Polymer could help us keep the project organized while still allowing for low-level performance optimizations - cool remark. It was the issue I noticed when working with Angular 2: Am I ready for this level of abstraction?
- Polymer does not force your project structure (well, no js framework does) but it is good to group files module-wise, not filetype-wise.
- The modules have similar dependencies. You might use Bower to manage them. However, to avoid a duplication of dependencies we include a .bowerrc file in each element’s folder as well. This tells bower where to store dependencies so we can ensure there is only one at the end in the same directory
- Cool scaffolding tool: http://slushjs.github.io/ I enjoyed this stuff. I am a huge fan of scaffolding and, generally speaking, huge fan of Convention Over Configuration.
- Vulcanize https://github.com/polymer/vulcanize flattens the dependency tree into a single html file. Helpful when dealing with tens of components.
- In Polymer, elements can be anything from a non-visual utility to small, standalone and reusable UI elements (like buttons) to bigger modules like “pages” and even composing full applications. - nice remark. I tend to perceive Polymer components as small UI components, while that's not necessarily the case!
- The article covers also rendering techniques and some fancy effects applied in this demo: https://lightsaber.withgoogle.com/.