My notes from Emberconf.
Open source communities value contributions that are not just code. — Yehuda Katz
- Robert Jackson contributed a lot of works to making the 6 week release process much more automated.
- A number of people worked to create ember-cli tooling.
- Jo Liss created Broccoli.
- Leah Silber organized Emberconf.
I believe a successful team requires more than just someone who writes the primary code. It requires meta-contributions that make the environment and culture excellent. This is my vision for the HauteLook team and embraces concepts, such as DevOps, as first class citizens of the process.
Emphasis on screens and flows
- Yehuda referenced a Basecamp blog post A shorthand for designing UI flows to emphasize the need to focusing on flows now that Ember has first-class URL support.
This was a call to action to start thinking differently about building web applications. The github website was used to demonstrate the complexity of web applications. The github website puts a lot of information on a single screen and uses flows within that screen to organize the experience. There are often flows within flows and we need to start documenting all the states to manage the complexity.
A later talk, given by Nathan Hammond introduced ember-flow which used a digraph to manage state transitions within an application. Nathan argued that it is our responsibility as application developers not to pollute the browser history with unnecessary transitions of state. To prevent this, he recommended the use of replaceWith instead of transitionTo.
- Good components usually do not have a template. If your component does have a template, consider breaking it down into multiple components. Ryan used
<select><option /></select>as an example of good component design. The
optiontags are separate components that are related to each other. The
selecttag may be aware of which
optiontag is currently selected.
- Create a component that groups small components together. Ryan’s ic-tabs component groups together many small components together to make it easier for others to use.
- The child should inform the parent when it is present. Do not make the parent poll for children components. Ryan used the
<form>tag as an example of how this should work. A form can exist on its own. When adding a
<button type="submit">tag to the form, the button informs form.
- thinkdistributed.io - Christopher hosts a podcast that is a great introduction to the concepts of distributed computing.
- https://syncfree.lip6.fr - Christopher is part of an EU project that is trying to solve “Large-scale computation without synchronisation”.
Matthew did point out that observers are actually a synchronous operation. Expensive functions that are observing a property should be handled with care. He suggested the use of
pushObjects to work around performance issues. Yehuda commented that the core team considers the synchronous nature of observers a bug, but it is hard to fix without breaking existing Ember 1.0 compatibility.
Other Links Related To Talks
- Broccoli: First Beta Release - Broccoli is an awesome build tool created by Jo Liss.
- The Extensible Web Manifesto was part of the closing keynote given by David Herman
Sketches of Talks
Michael Chan sketched notes from each talk. Links to his Sketch for each talk are below:
- Opening Keynote
- Using Ember To Make The Impossible Possible
- Contributing To Ember
- Ember Data And The Way Forward
- Animations And Transitions
- Angular Directives
- Modeling The App Store
- HTMLBars - The Next Generation Of Templating
- The In You
- Ember Is For The Children
- Query Params In Ember
- Ember Testing
- Controlling Route Traversal With Flows
- Snappy Means Happy: Performance In Ember Apps
- Closing Keynote