Software Productivity and Ember: Ember CLI

Video thumbnail (Frame 0) Video thumbnail (Frame 1440) Video thumbnail (Frame 2152) Video thumbnail (Frame 2997) Video thumbnail (Frame 7114) Video thumbnail (Frame 8339) Video thumbnail (Frame 9566) Video thumbnail (Frame 10294) Video thumbnail (Frame 11404) Video thumbnail (Frame 12456) Video thumbnail (Frame 13543) Video thumbnail (Frame 15498) Video thumbnail (Frame 19422) Video thumbnail (Frame 27893) Video thumbnail (Frame 36364)
Video in TIB AV-Portal: Software Productivity and Ember: Ember CLI

Formal Metadata

Software Productivity and Ember: Ember CLI
Title of Series
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Over the past few years, we have seen the success of great web applications. As we strive to provide better user experiences we are continuously pushing the bar, unfortunately sometimes at the cost of productivity, maintainability and most importantly happiness. When products slow or fail under the pain of un-managed technical debt, everyone loses. This talk showcases how ember helps manage this complexity today, where it falls shorts, and most importantly we will explore what the future of ember may look like.
Word Wave Common Language Infrastructure State of matter Staff (military) Right angle Videoconferencing Event horizon Resultant Formal language Number
Source code Event horizon Number
Event horizon Event horizon Game theory
Axiom of choice NP-hard Mobile app Electronic program guide Combinational logic Sheaf (mathematics) Bookmark (World Wide Web) Software bug Neuroinformatik Product (business) Bit rate Software Abstraction Computing platform Rhombus Domain name Collaborationism Feedback Bound state Bit Cursor (computers) Entire function Elementary arithmetic Software Software framework Quicksort Window Abstraction Active contour model Surjective function Row (database)
Programmer (hardware) Code Projective plane Code Right angle Line (geometry) Mereology Computer programming
Domain name Word Dependent and independent variables Code Code Right angle Cartesian coordinate system Abstraction
Multiplication sign Projective plane Code refactoring Software testing Software testing Cartesian coordinate system Mereology Social class
Data management Macro (computer science) Proxy server Software developer Revision control Cloud computing Software testing Control flow Web browser Software bug Product (business) Associative property
Game controller Code Multiplication sign Code Control flow Mereology Inversion (music) Number Independence (probability theory) Revision control Software testing Software framework Modul <Datentyp> Abstraction
Mobile app Code Workstation <Musikinstrument> Control flow Cartesian coordinate system Formal language Independence (probability theory) Order (biology) Software testing Right angle Software testing Modul <Datentyp> Endliche Modelltheorie Form (programming)
Source code Suite (music) Mobile app Computer cluster Code Assembly language Self-organization Client (computing) Web browser Resolvent formalism Power (physics)
Point (geometry) Area Complex (psychology) Suite (music) Dependent and independent variables Constraint (mathematics) Suite (music) Kolmogorov complexity Poisson-Klammer Projective plane Shared memory Control flow Software testing Pattern language Endliche Modelltheorie Abstraction Spacetime
Building Group action Code Confidence interval Multiplication sign Sheaf (mathematics) Insertion loss Primitive (album) Client (computing) Parameter (computer programming) Information privacy Tracing (software) Food energy Software bug Heegaard splitting Optical disc drive Mathematics Sign (mathematics) Strategy game Different (Kate Ryan album) Computer configuration Error message Stability theory Constraint (mathematics) File format Structural load Bit Entire function Data mining Order (biology) Self-organization Website Right angle Pattern language Moving average Quicksort Whiteboard Resultant Stability theory Slide rule Trail Perfect group Computer file Control flow Web browser Theory Field (computer science) Number Product (business) Revision control Goodness of fit Crash (computing) Causality Software testing Utility software Fingerprint Form (programming) Default (computer science) Dependent and independent variables Focus (optics) Multiplication Information Poisson-Klammer Projective plane Analytic set Line (geometry) Group action Cartesian coordinate system System call Particle system Personal digital assistant Blog Fiber bundle Abstraction Library (computing)
Group action Context awareness Code State of matter View (database) Multiplication sign Source code 1 (number) Client (computing) Arrow of time Endliche Modelltheorie Area Programming paradigm Electric generator Mapping Software developer Bit Web application Process (computing) Right angle Figurate number Cycle (graph theory) Video game console Quicksort Physical system Electric generator Resultant Point (geometry) Server (computing) Mobile app Functional (mathematics) Service (economics) Link (knot theory) Computer file Parity (mathematics) Connectivity (graph theory) Patch (Unix) Real number Electronic program guide Online help Web browser Mass Rule of inference 2 (number) Number Power (physics) Frequency Goodness of fit Operator (mathematics) Software testing Utility software Lie group Router (computing) Proxy server Plug-in (computing) Task (computing) User interface Stapeldatei Poisson-Klammer Cellular automaton Projective plane Physical law Code Directory service Cartesian coordinate system Subject indexing Personal digital assistant Statement (computer science) Video game Game theory Routing Resolvent formalism
the along the language and you and the love and the result I'm excited states
and its features that entities on board the U 1 of the most prolific used the J for most commits 1 of that right of what we found yeah most J on number of events on get thing which was with the you know I wave of justice for better for worse the words by using a hot so this is actually appropriate talk the OK with that the so I'm I'm staff
and an addicts yeah just with the high status death it think I need to support
so I was like pretty cool like I saw this number another cool I'm I found a few people as catching up to them it's pretty neat but also and everyone I saw I had suppressed nuzzle the worried like the no problem be but luckily and but this guy so I'm 50 per
cent more did have events I'm just obvious
so there's there's no problem so I'm also
husband with a very patient wife as you can imagine were crazy bird people so for those of you
that promote their me once a while 1 of my bird will join the pairing session and there were much more productive than I think also I work at the at we
build a member we build a lot of cool stuff some of which is some pretty cool Emerson I I get to work with like interests and rate and we do a combination of product work sort of full-stack work that involve all Member and consulting work because we early adopters at early Doctor of a mobile platform we had a lot of performance work and a lot of bug fixes to get in and because this we have like we have gained a little bit of knowledge in this domain so if we can help you guys out find cursor Afterwards we would love to help you guys a it is also I like talk steadily more like a dialog will the feedback from the audience is lovely but so speak out but be mindful in a really short window and a try finish a literally so we can answer questions and random two bit about me in elementary school my my mother was a teacher at elementary school and so that meant to our detention basically every day for 6 years but luckily though they have appeared home the likely I had a computer labs computer labs basically computers everywhere and ultimately this turns into the child maintaining the school's website the a JavaScript's and I was like know someday when I grow up to be pretty cool to learn real language and build really often things so here let it grow up land back to that I so everything those really need that much introduction that basically goal motivation Greece laurel here we want to build apps also want to build apps were productive and continue to be productive into the future fancy snake abstractions that diamond checked inside and likes the emissions are iterating all past talks we've had a section guide learning and collaboration factions enable kasha I really like this this is my favorite we can basically load bounds the cost of some of these hard things onto entire community rather than every single company doing the same thing spending the same resources yeah the idea here so that ultimately no matter how fast and how productive makes use software is software them productivity something calls so when you start a new actor going to be productive we start record Gennady productive everything is new everything's fancy fantastic you haven't made that choice is yet
pretty pretty quickly the rap might turn into something like this so the light is this know
how hard you try also new parts the codebase like well at the 1 with the anymore just throw away so basically every line of code you write is actually a liability if the way the benefit the cost benefit ratio and rights code this can be around for awhile belies the project might not be a spike might be months years the code you write be careful what you right it's it costs a lot later on so let's that program I code every day slated for my employer will pay any fine that you could probably write their code or what code
we can't let what code is basically just right for the picking so basically what is will grow
code was error-prone code the most pointless code we can use for at hide behind an abstraction words remove altogether but take on those things and kill so we can focus on our domain so 1 of those places just
glucose code that wires this up with that assembles this absolutely absolutely and so a few years ago before we had application for those of you that remembers you were responsible for putting things in the right place and wiring them up some people had depends some people didn't but was always your responsibility do so this is crazy and why is this crazy
they're often implemented haphazardly often in make testing hard make factoring hard adding features vodkas every time you're basically scenario solving I need this to work today and it just turns into a mess now you also onboard employers they might have ever experienced and if you have like Eitel Amber I know what this is but what is this that would you this is entirely different from every other Amber application and the been cost in other classes
scaffolding hasn't basically nothing to the actual project is something alternately makes but let you build a project once ready you don't need any more or need to be there but it really isn't a primary part of application it turns out the support truly is also immensely costly
because as well to go from development to production you need to do all these things and major breakfast is an active contributors well it's is is wrong so credit and by the way has also work really well no bugs has the fastest stable and your features due on Tuesday such as
these 2 problems there like they're actually very related we can probably solve 1 or the other or together solving both of them were discussed solved the opposite problem the
complementary problem so 1 the 1st problems like general coupling obviously number solution to this is the version of control we have a container we have depends injective framework that most the time you don't even have to think about it just and works and we do need to repeal a it's there and it's very powerful the 2 main parts to this so the container and the resolver because they're basically abstracts the coupling and revolver fines code for your containers use 5 if
the even labelers intentionally
but you don't know what it it the the ball
its Global's to to to have coupling application that merely depends on the order that you load code this poll crazy right now given name station if a is this like you can organize your code all of a sudden you can always start up the app in a very specific order of was often a break snakes testing insanely hot against the form coupling solution is models and what models reuse well that's not join the model war use what the language is going to have the future usage models and interestingly combine these 2
things all that the blue code just disappears because we can actually all our apps to assemble themselves based on what's being imported what's being required and as it turns out we have this cool peach feature called the resolver that Luke wrote I don't think you realize how much mileage we would get out of of the soul that code but it really powers some of our new called organization ideas but basically rather than you reckon that encode your app bills itself as it's needed pretty people code you don't have to write is not your liability I originally had the gift from yesterday and decided I should also have it so that there is another problem the whole tooling thing we actually ship these things the browser very different how we developed and how we have sugar clients the so I really rated all of the million things we have to begin to link working but obviously the suit the solution is we need good quality to it but what do we don't we have to require some left to acquire some requirements so would you never often we find a cow path and we tried to pay patent so rather than going straight to the other
1 can we like how we could account that
everyone shares so we can turn into or is not everyone but a critical mass of people enough people share so we can learn all the constraints also low down some of the problems of for the artificial way of us getting to the other 1 quicker so you know
this was I dish things the node people are angry us for using the tools and but it's thing so wrapped it kind of happened I was doing a project for McGraw-Hill and the the common so this is supposed to be consumed by the judge who communities so noble tools will the thing to do so and wrap it happened since then was 1 9 months ago we had 5 hidden semi commits everyone contributors and 5 119 close issues so it's not bad clearly we have critic out we have created account that people are using this of being successful being frustrated to apologize to all people interested but I assure you I am just as much frustrated if not more than the rest of you so that's the problem with this upgrade nightmares for years who uses bracket OK so we have enough like is the more people who cares upgraded and rapid at put your stride up in rapid and LU area that's the so that there is anything that I feel very guilty as I knew that this would be terrible and but the point of Everette was the feral what all the constraints where what do we actually and while doing so what this hamburger to do to actually live in this no global space so wrapped might look like a lot of work but 90 per cent of the work that rapid have actually amber into supporting both the global pattern the models that this gave us a place to share the ideas to collaborate so what's the solution for their great nightmares with the height more things behind a library of hide the complexity while copious bonds basically using App-Tip you add 1 new pipeline and all the other things breaks or score problem that happen in while the the solution this is a thorough test suite of Fortuyn your entire EPI all of grant this test suite is very very difficult to to solve that grunts is I did pretty cool Tasker on we sort shoehorned into having more responsibilities than then like we should have happened but he only began worked some people were productive with it
the thing is that builds stability and the solution is is basically using the right tool for the job bring one-time built makes sense with the bring repeated incremental bills that are efficient and not prone to errors not prone to phantom files not detecting changes this is the responsibility of a pipeline a tool that specially crafted only to solve these problems and for this I think I think Brock is a very good candidate thank you Joe what have so JoJo's done loss work on broccoli and I never in November I was playing with it early version of broccoli as such break it so I like I can't the break and have like 5 or 6 steps that privacy difference there the node totally screwed I would most users and even some of our pipeline have problems with them and I through all the matter and there was not a single problem a little right now try with 20 thousand files and even then I still had a fast skills at that time a building 20 thousand files was thinking about a 2nd and no joe traces down to a problem in node blog but not not not herself so it's pretty pretty cool you back then it was very stable for the building and sounds fantastic so embassy alike tries to solve these problems by giving us a single place to focus our energy by using both with the right tools by thoroughly testing itself and trying to use right abstractions whenever we find something in in rocket that seemed to work OK but clearly did work for everyone taking the time and energy to take this and applied in bracket of applied embassy alive it's very important so interestingly although if we go back to the previous slide bracket at about 500 600 commits 70 can contributors 500 close issues in 9 months an embassy has people are eager for this the Henry has 273 commits probably more by now 28 Canada's contributors and 131 cause issues in the past I think that that's pretty cool that people are using an so another another question here James Rosen and in the body for a little bit what is public user application a BIG is and that's file I would love an answer no that OK how many lines of code what the good question is can you should all this to your kinds all 70 thousand lines of code not 70 kilobytes so 70 thousand lines of code turns into much the atmosphere and assets and and with them so can you should all this your clients all once OK yeah so to summarize some calamities was mine of Ecolabel my than this 270 thousand lines of code and as many many hundreds if not thousands of kilobytes and it is not practical for them to ship the entire out to the users every time so he has a group of people working on splitting the sap into multiple bundle shipping these bundles will who who else here has a similar problem with a can actually ship the entire Apple ants 1 hand OK there goes the fewer hands this is actually a problem and if you don't have that problem today we can have the problem probably pretty soon or you don't want to solve it and then you think about all the constraints like hack I'm just not going to bother because I just really my business can't afford we spend a week a month refracted my code building the right to in order to ship he sings Lasley I know Yahoo has similar similar constraints some of the problems that won't take and what would be cool if we could kind of focus in 1 place to come up with a convention to make us not only simple to do but just make us work by default work by convention that if if if you had this is just a thing that just worked kind of like how you else just work in the browser you could lazy load your slash in section who here wouldn't do that if they what I do putting up a hands were not going and because you're not going to do it you would do that you would do then I'll get perfect and so I give a very that question of I think it's obvious if these things were free if these things were supported and worked well there's a happy path doing more people would definitely you I I would use a lot so Diaz 1 Trident have infinite today if you NPM dashed GE install amber dachsie and then wait for friendly you download on the problem of dependencies to download on our conference what I you'll eventually prompted with something like
this so you the command-line utilities inspired a lot by the projects forms worked on amber tools ever help gives you sort of the basic primitives about you'll likely need to build our application new scaffolds a very basic application for you to use you jump in and hopefully you can be productive right away so Edward Faulkner it is this talk with a since seemed to be happy so that that's a very good sign and it was greenfield euphoria so it's very important for us to make sure we can continue to pull a field before it with us for as long as we possibly can before we end up ultimately ending up with legacies offer of some kind the interesting thing that we want to do here I would love to sort Chauhan's well as one easy way for you to upgrade to Amber when we push releases so we've been working very hard as the 14 and community on making sure that create we don't break changes we try very hard not having breaking changes so 1 sort of experimental feature I want to add to the embassy alliances your ability to subscribe to the ranch for low the channel of amber that you're most comfortable with so for example if you're more comfortable stable releases you can subscribe to stable releases energy happened the start of ever see lie that day and pushing really still asking yes or no daughter tried upgrade today yes and and Simba suffers all working upgraded fall by running a test you should give you some confidence and if there's a problem for the problem roll back and I hope to those 5 minutes of your morning will get all the issues in quickly sort them out and move on if you are like myself always on the bleeding edge of things all the subscribe dictionary and basically every commendable I'll have the option to put down an and utilizes so who here thinks this is a thing that they would like to use in their projects that's awesome and so it's some crazy ideas that have been cropping up is and 1 is Bauer Newman have a really cool library that useful insights which actually lets us track analytics usage patterns inside of command-line utilities so as an experimental thing we've added this to the embassy align all this is some people working places this is not an option for the 1st time users feel about it a prompt you hate would you like to submit anonymous information to help us understand the usage patterns and so this is in there today but day it as what a feel for like who thinks it's a good idea who feels comfortable with this and who I would feel comfortable with this is their employer felt comfortable that's also another step onto that is all of them almost the trip embassy a actual product I deploy which means bug tracking so if the embassy like crashes the courting want to see but report of this unassuming this goes along the same lines against be fine the 1st people not in Austin that's that's also I was really hoping about the case because this lets us catch problems quickly and maybe even before you report a bug we might already know what happened and will be like you do in the issue to be submitted have that's particle so a call to action and personalize working for some people really there's some pretty important features that were still lacking I we added test support our early this morning I'm not quite sure if we merge it Indian traditions but now we can run tests and stuff is very important for production applications were still missing a good fingerprinting strategy but that that's hopefully in becoming shortly but I would really encourage people to try to find bugs anything that's sites reported as a body this formatting that screwed up reported as but if there's something that's confusing reported as a bug because you want to leave these roads so that it's good for you guys and good for when you're board new team members were through the organization had fighting the amber fight please use ever the organization and better clears path can be but the better it is used for your arguments I also like to thank each apparently all of the embassy like contributors called joke war or broccoli people as it turns out it all them but a good number of them so joyless works on broccoli that still theory has been like amazing helping out with the embassy odd project it probably wouldn't be useful but it was that turns of major breakfasts actual name and Joseph so when the realized that I was like so apparently Djoser could work with so if your name is joe you actually have to join because we like you make a leader board of the number of joy and those that are held in at but even if Uranus and Joe I would maybe more reluctantly accepts somehow best result is that a solid try your hardest to break it look at the issues see if an issue that's a related add your story to it and if you have some spare time find issue and see if you can prove it I know and talk to me about a layered build deployment approach thing that's also a a fantastic idea works well I think with the about the play different segments of application hopefully rethinking of continue to iterate upon it so you can give this a
try and hopefully hopefully works
and embassy lie is definitely not be I can set out and decide on a ready the also still I ever actually ballpark to do this at all I just want to build hat and be productive I want to go back our imports and tom Kuder fast select and in my application I want to have a fast select component I don't want to think about the wiring I don't want to write coded that is a liability to me I also want us to share our components in a way that's easily digestible and easy to consume across different projects across the 4 games wife there's a room of like 430 people who were smarter than me here who can like build cool shit and we can share this is this is the point of the Seelye is to not have to think about the show I ever again so for the future I think we'll that something really need later on in its life cycle the 1st plug-in story for rails was kind of a spin check out into a vendor fire and they got a long way and you can feel like that's what rat right now we can s check Witten Bauer install to your vendor your Bauer components older but wouldn't it be cool you installed Bauer Ancel amber off and it added generators to the seal it added extra routs to your router some test helpers and then also added code that you can use an application and assets and see assessed well I think this is possible to take a lot of work is dire out all of the various creases and stuff but I think thing we can do it once we have that hopefully we can assert sharing components and these utilities and add-ons and again focus on our own app development rather than doing all this code is actually liability to us as something I mentioned earlier was lazy loading of apps segments this is I think this is actually very important for web applications actually something we want to work on and very important aspect of lazy loading that people think about is we have to build the lazy link yet little linking the things about actually existed something that we need a fixed number of 1st before we can really use here but the Alexander and 3 that there's no really big hurdles who's got put in some time and effort to make work also finally up I answer using cool yes 6 features in maps that it so we can use models today we can use arrow functions that I I want using generators today for those that don't know what a generator will basically it'll help you up 1 of the features of generators that will help you hide asynchrony from applications which is quite nice asynchrony in state is always hard to deal with if we can hide it even more the fact that there's a whole bunch of other cool yes 6 features that we want to use as soon as the trans powers and separating wall be great if we could add this the same see everyone concerned utilizing the school features here is solar also that provide some context as to how we ended up with what we have today and hopefully paves the road for what's next to answer some questions the so the racket everything that's in your batch directory basically ports in it just works things at the work today that will likely work with a little bit of massaging is the index file culture the question was what happens with bracket but what of those conventions the how app assembles itself of everything enacted everything test that should just continue to work period of 4 stuffing your grunt tasks custom configurations those might be more difficult to port but hopefully as people share some of their concerns or Serre some of the issues we can either have feature parity for some of those things or provide the correct upgrade that some of the features are needed in embassy align war and other ones are deftly still needed and your question also any other questions has the question is do you have a preferred way to introduce the service code and I think there are there are multiple approaches this but the easiest approach when I find works public best to keep body tool that separate and have proxy either on your server side or on your client side view the accurate or the CLI that proxies was requests your back at Walter people have their the back in actually as a installed as the point thinks of people on locally figures works fantastic and so the question was agreed Gregory from out the question was what about globals most people your public have applications that use globals and so we were very careful when making all the upgrades timbre to support non also support Global's so ever itself will continue to support global unfortunately lost the things we just get for free in bracket or in or light is because we don't have rules we don't have this coupling I don't know if there's a good patch for people other than to make a a transition now 1 thing that has worked we felt a few clients upgrade this way as well as our own code is using the resolver remember the resolver is the extraction between the container which needs code and where it finds the code we're able to write resolvers that satisfy both the global story and also the model story so we were able to incrementally operator application we business and a warning every time a global was referenced and we knew what the next thing was for us to upgrade so my personal thing would be an upgrade path would probably yield the best later console all at deftly not practical for massive applications that so all answers directions but in the area the and the so the question I believe is can pull from node models yeah the I would love there to be I definitely need some the question was I'm currently using browser phi sharing a node code sharing Japs the code between the back and front is very simple and is there a good story for this thing out say there is not a good source for the thing is a little bit frustrating I would love there to be actually really good sources the browser phi approaches deftly interesting we like the year 6 models of that serotonin trough that makes people happy or something different makes people happy I don't whatever ever for away things are work really well and I acknowledge it's really common use case so the important thing is to figure out what the next any any other questions the the the the the and all and so the the the statement ball by question was when when people are learning amber they're learning a whole new paradigm learning many things often they're coming from sort of spaghetti code cell ends or just not used to building a real user interfaces that have also lots of state and that's a really complicated ever has a mass of code there is there's a lot of stuff there and now there's tooling well is there a way for us to accelerate the learning process and a screencast that I would say hopefully with the seal the scope of the tooling has reduced dramatically to specifically this we can hopefully they're just a good amount of this I would like to portal of the guide that we have for in brackets room the stuff that is no longer needed and do this week as the if I have the time to do it I would love views just if someone else has the time to use the gas and has a much better like stage presence voice thing going on and maybe like a very white styles speak gas that would be possible but afterward so any other questions that team seconds no you're right will know it 22nd the the the in the end of the of the of the end of the of the of the of the of kind of the law the result and a a a again in