diff --git a/source/blog/2018-06-22-the-ember-times-issue-52.md b/source/blog/2018-06-22-the-ember-times-issue-52.md new file mode 100644 index 0000000000..5218374a8b --- /dev/null +++ b/source/blog/2018-06-22-the-ember-times-issue-52.md @@ -0,0 +1,154 @@ +--- +title: The Ember Times - Issue No. 52 +author: Miguel Braga Gomes, Kenneth Larsen, Jessica Jordan +tags: Recent Posts, Newsletter, Ember.js Times, Ember Times, 2018 +alias : "blog/2018/06/22/the-ember-times-issue-52.html" +responsive: true +--- + +Emberistas Χ©ΧœΧ•Χ! 🐹 + +Read either on the [Ember blog](https://www.emberjs.com/blog/2018/06/22/the-ember-times-issue-52.html) or in our [e-mail newsletter](https://the-emberjs-times.ongoodbits.com/2018/06/22/the-ember-times-issue-52) what has been going on in Emberland this week. + +Those **Request for Comments (RFCs)** just keep coming and this is why we present **4 entirely new** proposals +that you shouldn't miss this week. +We also have an amazing **tutorial** for creating **accessible web applications** for you, to give you a head start in developing, shipping and testing your apps for **a11y** πŸ‘­ + +Check out what's been going in Emberland 🐹 these days: + +--- + +## [An Object Upgrade with Class 🌟](https://github.com/emberjs/rfcs/pull/338) + +
+ ES Class Syntax in Ember Code Example +
+ +For Ember the road ahead is beset with **native ES classes**. +Last summer the first [Request for Comments (RFC) for making ES classes](https://emberjs.github.io/rfcs/0240-es-classes.html) +a real thing in Ember had been merged and changed the future outlook for Ember's public API drastically. +The proposal crafted the idea of making the well-aged `EmberObject` model cross-compatible with the more modern ES Class syntax. +This paved the way for Ember to evolve with the latest state of the JavaScript ecosystem in mind. +Since then, early adopters in the community have been able to [experiment with ES Class syntax](http://ember-decorators.github.io/ember-decorators/latest/) in their apps +by making use of the addon `ember-decorators` - seeing the classy ✨ future of Ember for themselves. + +Now the follow-up [Native Class Roadmap RFC](https://github.com/emberjs/rfcs/pull/338) from the author of [RFC#240](https://emberjs.github.io/rfcs/0240-es-classes.html) has made its debut. +It explains how several changes to the current API of `EmberObject` +- including an [update](#toc_a-href-https-github-com-emberjs-rfcs-pull-337-native-class-constructor-update-a) to how the `constructor` method operates - +will be necessary to make ES Classes true first-class citizens in the Ember ecosystem +and how `EmberObject` can be safely deprecated in the further future. +It highlights that this will reinvent Ember's **learning story** and +therefore it'll facilitate the **adoption** of the framework **in the wider JavaScript community**. + +Still, not sure what all the fuzz is about? πŸ€” +Be sure to check out [this great introduction into ES Classes in Ember](https://medium.com/build-addepar/es-classes-in-ember-js-63e948e9d78e) +and the original [RFC proposal](https://github.com/emberjs/rfcs/pull/338) - we'd like to hear your thoughts! πŸ’¬ + +--- + +## [Native Class Constructor Update πŸ› ](https://github.com/emberjs/rfcs/pull/337) + +In the same context as the [Native Class Roadmap](#toc_a-href-https-github-com-emberjs-rfcs-pull-338-an-object-upgrade-with-class-a) there is currently an open RFC proposing to change the behavior of `EmberObject`'s constructor. + +Native class syntax with `EmberObject` has almost reached full feature parity, meaning soon Ember will be able to ship native classes. +However, early adopters of native classes have experienced some serious issues due to the current behaviour of the class constructor. The issue is caused by the fact that properties passed to `EmberObject.create` are assigned to the instance in the root class `constructor`. Due to the way that native class fields work, this means that they are assigned _before_ any subclasses' fields are assigned, causing subclass fields to overwrite any value passed to `create`. + +The new implementation of the `EmberObject` would look like the following: + +```js +class EmberObject { + constructor(props) { + // ..class setup things + } + + static create(props) { + let instance = new this(props); + + Object.assign(instance, props); + instance.init(); + + return instance; + } +} +``` + +This would assign the properties _after_ all of the class fields for any subclasses have been assigned. + +One thing worth mentioning is that `EmberObject` will likely be deprecated in the near future and that ideally for non-Ember classes (things that aren't Components, Services, etc.) users should drop `EmberObject` altogether and use native classes only. + +πŸ‘‰ As always, all comments to this [RFC](https://github.com/emberjs/rfcs/pull/337) are more than welcome, so let's help out in order to finalize it! ✨ + +--- + +## [New Tutorial on Accessibility](https://emberjs.com/blog/2018/06/17/ember-accessibility-and-a11y-tools.html) +Ever wondered how to write accessible Ember apps? Jen Weber wrote a [great tutorial](https://emberjs.com/blog/2018/06/17/ember-accessibility-and-a11y-tools.html) explaining all you need to get started. She takes you through setting up `ember-a11y-testing`, a tool made to do automated accessibility testing, adding accessibility checks to rendering tests and how to fix the issues found. + +The tutorial ends with a nice section on what to do next. One thing is automated testing but as developers our responsibility is much bigger than that. + +--- + +## [Hello, Link. Wake up. The Great Router wants to talk to you! πŸŽ†](https://github.com/emberjs/rfcs/pull/339) + +Ever wondered how many and in which order you have to pass in parameters to the popular `link-to` helper +to make your transition work? + +With lots of inspiration πŸ’­ from routing solutions in Reactland βš›οΈ another new RFC made it in this week +to help you in this exact situation: It proposes the introduction of a `Link` component to Ember's public API. +With dedicated **named arguments** it should be clearer what your links have to do to make that **route transition** a success. + +Would you like to see how linking in future Ember apps might become much clearer? +Then check out the [original proposal](https://github.com/emberjs/rfcs/pull/339) and leave **your thoughts** in the comments below! + +--- + +## [Farewell, Ember.merge πŸ‘‹...Ohai, Ember.assign 😍](https://github.com/emberjs/rfcs/pull/340) + +Another RFC this week proposes the **deprecation** of the `Ember.merge` method in favor of the +functionally equivalent `Ember.assign`. +This means **less duplication** in Ember's codebase +and also less confusion on what either method does for any Ember users which is πŸ’―. + +Read the [full proposal](https://github.com/emberjs/rfcs/pull/340) to learn more about +the deprecation story and comment on the pull request what you think about it. πŸ“£ + +--- + +## [Contributors' Corner](https://guides.emberjs.com/v3.2.0/contributing/repositories/) + +

This week we'd like to thank @rwjblue, @Gaurav0, @chancancode, @mfeckie, @krisselden, @wagenet, @rondale-sc, @ampatspell, @kennethlarsen, @Mi6u3l, @GreatWizard, @MelSumner, @jessica-jordan, @mdbiscan, @yashwin, @sivakumar-kailasam, @andreavaghi, @s-pylypenko-mobilunity, @runspired, @lhoBas, @dnalagatla, @pcambra, @knownasilya, @locks, @stefanpenner, @gossi, @happycollision, @lifeart, @mansona, @cyk and +@pzuraq for their contributions to Ember and related repositories! πŸ’• +

+ +--- + +## [Got a question? Ask Readers' Questions! πŸ€“](https://docs.google.com/forms/d/e/1FAIpQLScqu7Lw_9cIkRtAiXKitgkAo4xX_pV1pdCfMJgIr6Py1V-9Og/viewform) + +
+ Office Hours Tomster Mascot + +

Wondering about something related to Ember, Ember Data, Glimmer, or addons in the Ember ecosystem, but don't know where to ask? Readers’ Questions are just for you!

+ +

Submit your own short and sweet question under bit.ly/ask-ember-core. And don’t worry, there are no silly questions, we appreciate them all - promise! 🀞

+ +
+ +--- + +## [The Ember Times is What We Make It πŸ™Œ](https://embercommunity.slack.com/messages/C8P6UPWNN/) + +The **Ember Times** is a **weekly news editorial** featuring all the new things that are going on in Emberland. +[Subscribe to our e-mail newsletter](https://the-emberjs-times.ongoodbits.com/) to get the next edition **right to your inbox**. +And if you've always wanted to be an OSS journalist yourself, +drop by [#topic-embertimes](https://embercommunity.slack.com/messages/C8P6UPWNN/) +on the Ember Community [Slack Chat](https://ember-community-slackin.herokuapp.com/) +and **write** the next edition of the Ember Times **together with us**! + + +--- + + +That's another wrap! ✨ + +Be kind, + +Miguel Braga Gomes, Kenneth Larsen, Jessica Jordan and the Learning Team diff --git a/source/images/blog/emberjstimes/esclassexample.png b/source/images/blog/emberjstimes/esclassexample.png new file mode 100644 index 0000000000..f23b5166e2 Binary files /dev/null and b/source/images/blog/emberjstimes/esclassexample.png differ