Bestand wählen
Merken

Empty Your Cup Reflections on Learning Ember

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
and I think the think and you the the the
so has it has like talk of of with father of dear got reflection learning amber of who I am met Jones as you know over the new innovation of that the roles that since all of my talk about how long of the coil out of a couple of quick shout outs I before it started a big thanks to Backus Wester who was a parable Stokoe them in talking about today i'll held discover some of this stuff that I'll be talking about the end is well in more injured wary of fearless Chief Scientist of new innovation and passed away in February so the stock is dedicated to him that media is a firm believer in in teaching and learning and share knowledge so so the problem but the problem is that if you have it's very a lot of experience in a particular problem domain and you can get into a situation where you assume that things are true when they're not of and especially with number of old concepts attached to words can lead to a lot of difficulties because if you think you know what a word means the system believes it means something different and you're in for trouble and so there's a lot of different ways to approach this L 1 possible solution but really everything so read it absolutely everything you can get your hands off of it turns out this is impractical for a lot of reasons 1 is nobody has that kind of time and and for another I don't even know interest was the reading for that and is as people it's really easy to if you're reading something and you think you know what it means it's very easy to sort of skim past parts that tell you that you're wrong of so reading is not necessarily going solid problem of asking so we were more experience of the possibility of a bigger like as a problem if you don't understand what you don't understand so you don't even know what questions to ask and even more so if you're assuming that you know the answers you really are not inclined ask questions the best solution is exposure ignorance deal with the fact that you don't know about it and that's fine embraces except that I don't know what I'm doing of and that's fine all to keep learning because that's what we all do up and see the beginners mind so all call the returning the struggle talked of basically it there this is an idea of beginners minds keep your mind and the don't bring all of your previous assumptions and interactions and everything else the table of and failing to do that you need in a lot of trouble so I would have some examples of brutal examples I have from the internal meal project which was written in Anbar of and just in case I screw up and say things in our true anymore but we do not this work was completed a couple months ago right before 1 comma decimal 3 dropped of so if this is being watched in the future and embarassed shameful rules again since there's no that it was that made sense when I said it so the very 1st example
of is passing parameters around between your your actions were even pieces of code of no server-side developers were used to a particular style which is every time you go through a round trip from a client and server so you will have to convert all your printers 2 strings to get over the wire and then convert them back into everything from numbers the objects whatever but back on the server side of so the sick the looks a lot like this but you you have a method that once a copy of your something they want to call on server and the past the strain in this case the slope of our thing and then the cone on the other hand takes that string and rehydrated back into an object of for instance here in this case I'm finding it enlisted doodads that I have that's fine but it's really a necessary of in amber you can get away with a lot less of because you're not round-tripping the server you're not passing through that area where everything has be frame and you can do things where you just pass objects of It's not harmful to best string but it is annoying and it becomes harder to test things sometimes because then the object really does have been collection as opposed say just being a spider you at the end of it you know that the lower performance than impact but the bigger challenge is is just a bad area of then the more every right the moral realize hey I have a bad habits that the lesson learned that telomere assumptions about how things should be done if you say I go out have parameters between parts of my code and all you've been doing is server-side programming you do not know really count as parameters between pieces of your ever code so the next the example of is this idea 1 page 1 so in rails we get very send the pattern of OK I have a screen of information and joint user an awful lot of times that all powered by 1 controller action over on the server side of so that 1 controller action is responsible for setting up a whole lot of different bits and we will typically use different strategies to make that less apparent everything from before filters to presenters decorators to all sorts of things so here's a
classic example of this is from our internal utilization tool of neo so there's this bar but I got in the in the red outlined and it's a basic selection of tabs and the idea is that when you click on the tab the list of the bottom will show particular people associated that tab in if you hover over 1 the tabs of a section of the graph corresponding that have will highlight itself but the so that that that tab art does want to stuff this is what the codes looked like
started but don't for reader to heart bad but boil notice here is we have a snapshot controller tennis that
shows this with a list of things that we're looking at their of all different people and it's not as controller
suddenly has acquired all always knowledge about how the charter of the CSS styles that are applied to the C. in the shot and it's going around and just doing things to the chart so the snapshot controller had we too many responsibilities of is responsible for all immigrants snapshot as model it's responsible for the selected tab because in in snow which piece of that Malta display but and win the selected have changed when the Harvard tab changes its responsible for poking updating the chopped up to hide and show and highlight different things that's not so great of so once a powerful thing
you can do an is introduced more controllers there's not this 1 controller 1 view situation so here we introduce a a tool called lists controller which if I go back to the chart I have listed all
responsibility is just what in the red box is the only thing that was controller knows about of so this controller
how only this well there's 2 things it maintains this selected state and maintains the Harvard state everything else in the app that need that then just can attach itself is a property that follows with what was controllers do it this controller model his of
as a list of plane and projects that fulfill the data and a snapshot of the template then is all of time will list component that only has to do with a wedding hovered over my being clicked on of and the chart all a charter code get sucked back into the charge controller but because now the chart can just attach to list color and say hey whatever is being Harvard highlight of so CSS classes use on the STG are now localized to the same place where they're actually of and what they had mentioned with us not just controller but turned out that snapshot controller disappears or snapshot controllers disappeared entirely really responsibility has left is maintaining the current state of which snapshot is being viewed which is doing with model you and otherwise has no responsibilities left class a lesson learned here but is that model view controller the not the model you control the size and B C is not in the city of and gaps another serious architecture and assumptions that this is the same architecture that you use elsewhere of can lead you to believe me badly of of or if not what badly fractured like that's in the wrong place and that sort of thing just as in rails if you put code and an undesirable place you have to pay the healthy and so for instance in rails if you're attending to access the section from a model where you're going to have a phenomenally bad times you can't do it you shouldn't of and hoaxes in particular number art he handled this of the hoax everywhere I words mean 1 thing can be something entirely different routers the classic example of that so your the routing system has always looks into all these amazing things if you refuse them be in trouble so for instance if you cite well I am very good at rails and I know that controller is responsible for loading data of fruit for models of no no they're not a number
of the bigger right this case means
that using the using a rat books as they were intended and you get nice things as a result so for instance if you return a promise from a output instead of having to figure out some convoluted way to actually kind of get that promise to resolve some of the readings as what hey you return a promise that I'm going to pause agenda should until erectile the promise of results you don't have to write crazy code that starts depending on is loaded states on all objects and just weird stuff so if you work with the framework segmentations as a huge huge benefit another great example in rails you have nested
rocks and we see Nesterov all the time they tell you got kind a parent-child relationship you know maybe you have a blog imposed has some comments and you have a nested rout for posts and comments about the because just like that right but no no
additional that so the the key thing that I
struggled with a great deal of with amber and nesting is it necessary and does not represent that kind of hierarchical relationship it can it absolutely can but it's a form on portend understand the hierarchical relationship of the view as It's about rendering used inside views so sometimes if you're UI matches that you'll still get rocks that are nested inside of each other in the same way that you expect so as a concrete example
of this is another screenshot from different piece of our internal allocation so there are 2 big pieces of on this slide 1 above the red outlined when blow up above the line there's kind of chromatin UI stuff I you know your selecting which offers you looking at his bond and project there's a control over that range of data should viewing and below it there's all the projects and all of the allocations of so originally and they got lost slowed somewhere
of originally we had this and it was set up kind of oddly there were office projects in we had an officer's project controller that had all it was an office is really really baffling
after couple bakery factors but we finally got this somewhere sensible and the key that we found that was the that the office the selectors our sort of generic there which opposite get selected and the relative we ended up with started with offices have sluggardly office and and said OK now we're looking at projects for that and so we had this logical nesting of you where there's the Chrome on the outside then with the the bits of a top and his outlet on about and in the outlet would drop all the projects so in that case is a perfect match for in real idea of nested rout and and the product freshness inside of we actually did discover this nesting right away at 1st we were we had we went through several different permutations we had we understood the routs for about 2 days of we re nested them in a different way we understand them again weariness of a different way we finally really hit on what we need to do and based on actual requirements in addition to viewing OK I wanna look at all allocations group by project where the people are the little boxes and they're sort of assorted as the requirement came up we you should and said we would also like to see for each person as as a group all the allocation all of the projects of their own little boxes review of a person it turns out that makes the running a lot more pair because all sudden the like OK I even looking at all the projects for this office or looking at all the people for this office and that that became a lot more clear that we were swapping out 1 piece of the view but keeping the rest of it the same so the conclusion of exposure ignorance the worst possible thing you can do a couple the you can do is stay quiet there's molds the people saying better to remain silent and the thought it the dual be and confirm it that's literally the opposite of true in because operating in the wrong assumptions get you know vastly more trouble than just saying hey I'm on reserve is is going to read a doctor 2 minutes and really snow that's all it takes is a little bit more information you currently have said tiny piece of conceptual comp compromise missing out validate your assumptions if you believe that something works the way that you think it works of rights of being simple figure out a the actually work this way of dog another out all and write write code for days and then turned on and find out that nothing worse when you expected and and the further can reiterate that under standard tools if you do not understand what the tools with the assumptions you're tools I think you were going to eventually discover them and usually the wrong way at differ me I met Jones were for new innovation they'll 203 c on Twitter GitHub everywhere else of hit me up if you have any questions since obviously can enter many on video and thanks for listening
the and and that things at the time and and the the the the the the rule of law we the the meaning of the around the world the and and
Videokonferenz
RFID
Bit
Domain <Netzwerk>
Spiegelung <Mathematik>
Gemeinsamer Speicher
Radikal <Mathematik>
Zählen
Homepage
Client
Gamecontroller
Code
Parametersystem
Filter <Stochastik>
Softwareentwickler
Web Site
Programmierumgebung
Gruppenoperation
Funktion <Mathematik>
Rechter Winkel
Multifunktion
Erwartungswert
Server
Strategisches Spiel
Projektive Ebene
Information
Zeichenkette
Lesen <Datenverarbeitung>
Instantiierung
Subtraktion
Rahmenproblem
Gruppenoperation
Zahlenbereich
Interaktives Fernsehen
Unrundheit
Kombinatorische Gruppentheorie
Code
Homepage
Datenhaltung
Domain-Name
Optimierung
Softwareentwickler
Implementierung
Drucksondierung
Touchscreen
Spider <Programm>
Schlussregel
Physikalisches System
Quick-Sort
Objekt <Kategorie>
Zeichenkette
Flächeninhalt
Hypermedia
Mereologie
Parametersystem
Gamecontroller
Wort <Informatik>
Siedepunkt
Graph
Trennschärfe <Statistik>
Minimum
Gamecontroller
Softwarewerkzeug
Indexberechnung
Mailing-Liste
Garbentheorie
Objektklasse
Code
Informationsmodellierung
Subtraktion
Datensichtgerät
Endogene Variable
Gamecontroller
Mailing-Liste
Objektklasse
Cross-site scripting
Mailing-Liste
Sichtenkonzept
Quader
Gamecontroller
Endogene Variable
Gamecontroller
Kategorie <Mathematik>
Mailing-Liste
Information
Ebene
Klasse <Mathematik>
Zahlenbereich
Information
Template
Code
Datensichtgerät
Komponente <Software>
Mailing-Liste
Informationsmodellierung
Code
Gamecontroller
Endogene Variable
Router
Zusammenhängender Graph
Ereignishorizont
Cross-site scripting
App <Programm>
Architektur <Informatik>
Sichtenkonzept
Kategorie <Mathematik>
Datenmodell
Mailing-Liste
Digitalfilter
Physikalisches System
Objektklasse
Quick-Sort
Hoax
Gamecontroller
Kategorie <Mathematik>
Garbentheorie
Wort <Informatik>
Projektive Ebene
Computerarchitektur
Kantenfärbung
Bitrate
Instantiierung
Aggregatzustand
Resultante
Objekt <Kategorie>
Framework <Informatik>
Rechter Winkel
Code
Framework <Informatik>
Code
Instantiierung
Lesen <Datenverarbeitung>
Aggregatzustand
Funktion <Mathematik>
Web log
Routing
Rechenschieber
Betriebsmittelverwaltung
Subtraktion
Spannweite <Stochastik>
Sichtenkonzept
Trennschärfe <Statistik>
Gamecontroller
Hierarchische Struktur
Projektive Ebene
Sichtenkonzept
Gerade
Office-Paket
Gamecontroller
Projektive Ebene
Sichtenkonzept
Office-Paket
Sichtbarkeitsverfahren
Betriebsmittelverwaltung
Offene Menge
Bit
Quader
Natürliche Zahl
Gruppenkeim
Content <Internet>
Schreiben <Datenverarbeitung>
Twitter <Softwareplattform>
Gesetz <Physik>
Code
Videokonferenz
Reelle Zahl
Korrelation
Figurierte Zahl
Betriebsmittelverwaltung
Addition
Permutation
Sichtenkonzept
Matching <Graphentheorie>
Schlussregel
Sampler <Musikinstrument>
Routing
Biprodukt
Sichtenkonzept
Quick-Sort
Teilbarkeit
Office-Paket
Videokonferenz
Arithmetisches Mittel
Office-Paket
Twitter <Softwareplattform>
Rechter Winkel
Projektive Ebene
Benutzerführung
Information
Schlüsselverwaltung
Stab
Benutzerführung
Standardabweichung

Metadaten

Formale Metadaten

Titel Empty Your Cup Reflections on Learning Ember
Serientitel EmberConf 2014
Autor Jones, Matt
Lizenz CC-Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen und nicht-kommerziellen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen und das Werk bzw. diesen Inhalt auch in veränderter Form nur unter den Bedingungen dieser Lizenz weitergeben.
DOI 10.5446/34992
Herausgeber Confreaks, LLC
Erscheinungsjahr 2014
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Coming to Ember from Rails means entering a world where familiar terms mean unfamiliar things - "router", "controller", etc. I'll be focusing on some specific examples where assuming the "Rails meaning" really threw me off track when learning Ember, and demonstrating how approaching things with an open mind can improve your code.

Ähnliche Filme

Loading...
Feedback