Merken

Trailblazer: A new Architecture for Rails

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
and and and and I think that this person will have to clarify that the torque title in the program is wrong the talk is cultural a new architecture for rails and not see you on the trail because of not gonna talk about hiking have no idea how this and I'll get into the rose from program but anyway you hear that's cried thank you the and the how you get you started no it's sigh and I have a question before we start the actual talk it's
a serious questions I have a problem with Active Record um so I have this post class and I have this comment that model and they have a has the most too many and has and belongs to many relationship so the post can have a lot of common so many comments and then my problem is when I create a post here at the post is um the post is persistent already and then I add comments to that post
how do I prevent Active record from from automatically assisting the new state of this post because I don't want this the comments to be persisted yet so I have tried this and it um saves the comment I've tried this and it a a comments and I've tried this and it says the commons to can anyone he explains how I can prevent Active Record from saving the comments the like called safe that but don't but that build called start new internally doesn't the the problem is that the problem is and that that's a serious question has because we have this problem in form that when we set up their collections internally and then assign them to the to the collection attribute like comments it saves the entire the entire object and I don't want this so if anyone has an idea how to prevent this please hit me up after the talk because a desperate and don't wanna read through all the active records of human entation I could just ask Aaron popular somewhat traders
um so before I came to Atlanta I
was struggling a little bit um to conferences so this last up before and then Eliza Venice in Lee and M. at the end of Section that's wrong and I was in Minsk so that's that's a regular maps in Belarus it was a
great conference migrates because those who
had a couple of drinks and was fantastic
about the fact that I was in the Himalayan just could use the slides so the fact that I was in that is that in Lithuania the becomes was a great conference on some
speakers and we a couple of drinks was also
all of the things that I was in Poland ad
and the rest laughter conference um brothers beautiful there's
churches and cathedrals all cathedrals and judges have no idea was a difference beautiful city was a great
conference grades speakers there was a couple of drinks was
also before that I was in Brazil and the tropical really conference as the money you have been to brazil yet it looks like this the it was
a the so that that's that's beach like palms and stuff I can then how but the shy I don't buy it no and the Brazilian government because was it also conference
we had have also speakers a couple of drinks was
great before that I was in Mexico at all Harker of oil great place I give it a the target at
a user-group double Trebizond this was amazing the community is incredibly cool
we've had some good speech as a couple of
drinks Thailand had against command was awesome and
before that I was in Australia because I to live in Australia I'm from Germany that's where the extant come from and that show you photos of Australia because it's beautiful and you should all come visit me there focus on what
traders note that some rails we all don't
e-mails right yes yes this is a relative rest comes so and Ramses um the famous web framework to think is it in no is famous for its monolithic up sort integrated system architecture the and this is a among the and this is a
service-oriented architecture whatever so
rails comes with a where you play you doing here stage by the way but was children cold-shouldered Welcome to Atlanta thank you OK let's get back trails and rails NBC we all know would like it gives us 3 official as to implement applications the so-called model the so-called control and the so called you and that's awesome because them it is quite a simple set up a simple some level of abstraction so you can get up and running and applications within minutes you can build a block application in an of 15 minutes or what's the what's the was you know official selling part of red whatever so you can get 10 minutes thank you yeah so you can get up and the uh navigation pretty fast you can you can them you can implement stuff without thinking too much about encapsulation about like and not that might that we have for a job analysis so that's actually greater grossly you get up and running in minutes the problem
is that you only have 3 affection as and all your code interviews analytical those individuals and only could goes into models and that is usually ends up like this and them the problem here is that the origin of selling point of rails was hey let's have conventions and let's have standards but once the application gets a little bit more complex you have no idea where to put this code so 1 of the major problems in rails is programmers asking whether put this kind of coded rails and what ends was so we end up with like huge models that skinny controllers but still have 7 levels of indentation and all that kind of stuff and M. nightmare views with its and L. additional so as staff to make them reusable so the problem is um this monolithic M architecture for me is not enough the this is the moment of that which showed
in his also keynote I couldn't find the original photos like draw a picture this is a camera on the right hand side the but they have undergone and I'm not artist right I shouldn't talk about cutting it should be paid to the living on not work with this guy but you already have leader by the way if you fall asleep we have stuff to throw at you so please stated bear with me and stay awake as so the minus the monolith in rails about is I don't have a problem with monolithic architectures at all like I don't want to plus 7 restaurants when I just wanted when it just wanna solve 1 problem OK so so the thing is and I think age age get this wrong is that monolith at that the here the only M um alternative tomorrow it is not to service architecture this we have we have them I don't like them monolithic architecture doesn't mean put all put all the code into them into 1 into 1 M into 1 Rails application and that is a model if can be a service oriented architecture itself like you can have so is inside of a model it's just about it's just about abstraction layers animal and so when I say more with arms and talk about 1 rails but it can be a beautiful object oriented well destruction architecture in a monolithic so please when we talk about mode with micro-services don't think of this as a physical at this is 5 physical ABS because you can have so this is in a moment and the problem but the problem here is I was
just talking about having objects and so this is in a model of the problem is in rails on the rest community when you when you come when you start adding new abstraction layers to NBC people parliamentary them blame you for being
too enterprise or you all
engineering and this is too many objects I don't like this can't be good at this this has to be slow because objects are really expensive I mean every string is an object in Ruby cell em microorganism that rails use that then we say rather simple and areas of of that actually it's easy because simple is subjective and easy is object if something that so that I got tortured in Lithuania that this is wrong statement so rest is easy that's every resident however prezzies easy it allows me to structure complex applications easily that's that no 1 ever because it is not true so funny and so what happens in rails in in a class
here as I just walk you through the class symptoms as seen in a lot of rails applications my job has been refactoring reservation for the last 10 years it was have a tough job loftiest blood but also to use a giant so let's
check out the class control in males M. we got filters that enter logic for pending different contexts for Henley authentication or the kind of stuff that we have a model coat you every control actions he has a lot of model codes instantiating creating Leadenhall and changing attributes then we have them again contextual Logic decide as is is some insight into this summer's not signed into that so there's côte handling different contexts in in the control action then we have a call that logic like do this if that happened and after this to this so is like it's it's a it's a lot of business logic and in the control action and then we also have rendering code sitting sitting in a control of and this is a control makes this is a beautiful control action I've seen control reactions with like as I said earlier 7 levels of if then else and do this and that so this is what happens because we we we chat in all the code into the control or my favorite part into the
model so in models we have them we have them configuration for false I mean I know we don't use as accessible anymore but you know we we define fields for forms and we have the acceptance attributes to handle 10 of them form submissions and to handle and the serialization but we only have 1 form the model because we don't have context and then people Atkinson else due to to configure that Delaney this form in that context and indeed this fall in that context when an admin so in a horrible designers in in in active model and and also we have called x sitting in the model and colleagues that get triggered at them so that they could trigger and you don't want it and sometimes you want them but they don't get triggered and it is smells and it is a nightmare because we collect all code in 1 in 1 s acid in 1 class and of course there's also termed this logic in the most everything sits in the model
and I mean you know just to run through that because there's I think part of red obligations we have
help us and access to models and access to a 7 levels of attributes of models and we have decided as that to decide about the context and if if it's an admin render this if it's not an admin render that so lots of code and then we have help us that that are supposed to help but
they you nightmare because if they pass around 200 wait the it was supposed to your head of but he plays baseball OK so helpers II is that was never had helped me because what what and others that has a million variables and objects to 2 nested helper calls and we have a again deciders due to decide the context we have rent part of this peasant local so that it it is it is and nightmare so when you when you look at it when you look at Plessey web application a doesn't editors rails it's natural what it boils down to the following requirements that we have program the request so the 1st thing is we have to dispatch the we had a requester Mr. dispatch if it is is additional to this is adjacent to that in case you have document API the then we it to authorization is it OK to run this request is it OK to run this logic that we we validate the incoming data and is it OK is it is it all and that this format that I want is is a user allowed to run this task and so on then we actually run the business logic so this is where I am the when you run your you're actually domain code and then this usually stuff gets persisted after you after you run the business logic and in the end we render a result so it's not that hard as the 1 2 3 4 5 6 steps of some of things that we handling request but in rails the controller handles the autonomic parts of that and then the model of renders the higher handles part of this stack and they they also overlap so you have model that should be in the control and you for control a group that should be modeled and then they viewed as a little bit here and there and as of yet something there's a little more so there's a lot of overlapping code this is not the and rails when I put my cold wet what what's what's that was the place for this kind of logic and travel as that which is a cool new
framework and an open source but when you can trigger and it's got the best book cover ever do you recognize people but I just got taught that this 1 is geared to hate that like this the so in Chernobyl is a we have a the Banditron is is take these them with we get this the 6 steps of logic and an application and now take this and structure give me a structured help me structuring my Rails application and
basically this is trailblazers I could just go only so this diagram took me about 10 hours to
do it was a lot of work has been viewed ranks I had a couple doing that you so am and that we have that we we introduce a couple of new abstraction layers that shown in this diagram and water quickly through the EM through the concept after this we're going have a life demonstration by my friend I were jails to new the public privacy last name he re Huey and you can learn a little bit about and how to structure recipes using the trouble is approached so as the 1st thing I
mention is that the old layers are still there so we still have control of a set of models and we still have old fashioned views if you want that travels a non intrusive so you can use it you can use apostrophe you don't have to use every layer and you can use it we feel you need more abstraction so you don't have to use trade as across your application of course I would love to see that but whatever
so in is come on we got em
we get the following and layering so now it is clearly visible which layer is responsible for which task so what we do in is we introduce operations operations are your business logic in operation it is not a monolithic beast and operation internally uses forms uses represent us for that use fossil validation dieselisation use represent as you you run your you're neuron manual business logic in an operation and operations also have access to models but controllers only access operations and use only exist operations and model so there is a clear layering in in Trebizond which layer is supposed to do what it I have this some
new technique in my talks with the where whenever this slide comes we do unit breathing exercise very simple so you inhale as much as possible you keep for 2 seconds at thanks it's great the that but how does it work I have
no idea the and the controller in
Trebizond ends up as a really really slim dispatching acid so there's no business logic no persistence logic note know validation now called x in all play in controllers the controller simply dispatches to the operation so this and up was really really slim controllers
and this is my favorite part the model trade there an is nt although the model dust and readily is it defined associations and it defines so scopes so basically we use such a bore models the way models was supposed to be this this is active record this is active record by Martin follow because per definition and I don't care what definitions patterns usually but active record was supposed to be and persistence layer without business logic and this is what we have in Trebizond you can still happen that in a moment you want that but the definition we say don't put it in the mall and we also have to use we
still use Rails using a number of traders as I
can still use them Hamelin yummy and all that kind of stuff because is also I don't know some people don't like Hamilton that people on the EIB but that's another story them you can still use help as you can still use the apostles all the set but but we offer you some
something new it's called cells actually not use 10 years old it's and the cells of you model so you won't have you to
encapsulate pass all the interview into objects we call it the widget in software engineering and this is what is and missing in rails in the neural stack so a cell ironically is called using a help yet but all that happens is a dispatch to the cell class I'm not gonna go into the detail cells but if you have a class that represents a part of and this class can render a partial view itself we we call we we call posses use because there is no difference between views impossible because everything is a possible the parcel is logic less as I call it so you still use Hamel histories give you can still use help us but you only call methods in your view and the cool thing is if you call a method like body all other top this method is called on the cell instance so we don't have this problem that we have in rails with view context anymore because the cell is the view context so if use if you call methods in the cell it's get it's getting called on the on the instance it's really really helpful to replace help us and to have an object oriented approach to any of you and as you can see it you can still use
image tag and your L on all those great help a simple form whatever in in in cells because that's what makes rails also that the view help that actually help but we don't have this distinguishing between like this is the controller context is a view anymore because everything is just an object enter the brand new thing drovers is
the business logic called Operation the domain name and operation is a class began
minus so many classes I don't know where to put all the classes an operation is consists of a um yeah a contract
to is this 0 as invalid input and business code and so the contract
is defined in the operation of the contract is just a reform class you know which of you know reform reform a form object jam for rails and we use reform in travel to deserialize and validated Diana without touching the model so operation is always have a formal object yeah the
actual business logic happens in 1 method called process and that should be the only public method in that class and that in that process methods I mean we we're probably gonna walk through that In the light among which is so in proper operation and the result is the business logic the actual logic you you EU domain consists of happens in the operate in the process method and them so you you still excess models is still safe models by them a lot of work is already done by the operator for example validating and assigning the data to the actual model is done in the valley they call if you want that you don't have to use it but I like
it began with the they want to read as they should start doing yoga and other the professional voice OK so I am the
last thing in this introduction is I would really wanna talk about high level architecture because where the people of the what is trained as a state it is a high-level architecture for for rails what is a high-level architecture well a high-level architecture everything that sits between the request to dispatch and the persistence that is what I call a high-level architecture this is whereas the leaves you completely and include clueless because there is no high-level architecture there's a control there's a model in this view end of what we have to learn
we have to think in our domain and not in controllers and not in models so as an example every application has functions functions the user can perform like you've you the way to shop like you've used shop and then you can add a comment to the shop and then you can follow the shop to stuff when you click through an application that's functions yet and in them and in domain-driven design I have never read the book but apparently this is what we call a use case and in Cq are as I have no idea what it stands for but it's great this is called a command Bensalem apparently this existing science about this before but this concept so any rails what we have is use cases and commands get implemented in control actions a little bit a little bit in a model and live in view and maybe a little bit in your hand made service object and maybe a little bit in I don't know you presented object and this is the mask and when I when I people tell me rails so simple you can handle the project in the next program is going understand everything if this is not true this is wrong but has seen lots of rest projects every project looks different the great at all with the controller sitting right and over the model sit and I know whether we use a lot but where's busily how structure because it is a nightmare and what trend is
that is it introduces the operation so you you clearly know where is my business logic and what's the structure because every operation should have the same structure validation he civilization business logic call that and them also in operation is not just 1 cracked thing that has 1 models and operation have multiple models and an operation is also not to M and monolithic beast as I said earlier in mind and operation is a composition of objects that help you to em handle your request but and it's it's in orchestrating an instance in your in your em out in the architecture the the coolest thing
about trailers is bad and it has a new structure so instead of clattering a files into at control about and I have you probably have more little you have 1 level of folder in this called the concept so we structure in trailers we structure coat into concepts comment thing um I don't know and in invoice generation that's all concepts and them all the code goes into that folder that has a couple of them benefits for example if you rename something you don't have to rename fought directors you only have to renew 1 directory but that's only 1 of 1 benefit I find it way more intuitive to go through that directories see OK we have you models OK we got operations a here's my model OK here's my and unlike help us and as and also the views for the you must sit in this directory sites it's way more intuitive to to to grasp what what a cone and what a concept is doing tremors yeah them
Austin that she would write a book I I do want to show some some Trebizond action right likewise you got that you only get 10 minutes all thanks to you have the this is a really unprofessional I usually prepare every slide so I don't have to do this kind of stuff but he wanted to be part of the talk so it's all his fault if things go wrong that's all year after the isolated ah yes
so as I said a is actually I
it sits on top rails and as we know is the 1 thing I like about as it gets he said you don't have to abandon your typical reals architectures that the way that you like doing things on so what I did was I basically build a personal blog OK because it's a blog everybody knows that works you know it's you know class example so if the thing will do what I want to do it's not moving window stick technology or most molecular weight you anyway but because I'm full screen of that OK so lost the
ability also water loss this because they are on anyway so the idea obviously it's very simple you know you just for a blog post you know type information title Paul laws and just for fun and said you know this is marked enable he's extremely proud of this marked on feature I I like more down it renders all the front and so is it's implemented in revealing it of the city it's public Nolan here anyway so I presuppose
lot done Greta editorial edges anyway so that's the basic idea that I'm only here now we've all done this in real this is very simple from you know prospective real it's you know molecule of but i in terms of how we do this in trailblazer as they said the controllers are really skinny very tiny as the father of this thing but I don't think you think you are so OK big deal here was controller obviously we have you know you're index all stuff of new OK so funding to create new for new of your post object or doing here saying work on this form method on post create was this post create analysis right this comes from the concepts directory and of course in the process of just got post on a file called which pre of the week so I in here is required from laser operation growing most cited by the way on next so what refers to the wiki and you have project trouble is and in the book that information in a minute yeah yeah he was vise book but but anyway so so that from a sweet obviously reducing here's were subclassing here to be opposed to his racked record effect create class hints form post create and 1 thing I have to mention is just because we reuse the post namespace which is an active record model class does not mean that that operation create does know anything about active fricatives just reusing and Rubina space is a big have confusion there's a lot of confusion traversing in the community people think that create now is inherits from Active Record or something no we just reuse routine space so this is how you create new spaces in a in so I can have classes in classes it's great right trick to have readable and right it's also heard this as well so that there is a question that I'm beginning might have given the fact that would you say we need this in this way but what is the potential of future for separating trailblazer from active records lot of the or em more no or in all what do you think any assessment you know horizon was well Chavez is not limited to Active Record but in an ideal world you had opposed space that's not a model and you had your operations in in that namespace in it and yet the model that's called for example persistence they had post comical common persistence that's my ideal vision but in rails models are on the global namespace so that's my trick to reuse this next but ideally it in a separate it's it's amazing to really space and you have the position sitting in that space and then you can replace it with them in any kind of or and you want to write on OK this is just of that explanation away here basically wikis and you can look over the documentation is scabbard ordering here's this is a contract and this is kind of neat of a public provides some of the stuff you you promising acknowledge example usually goes model but in this case for telling it what you know you have property of a title body teaser which no offer air force catering nested relationships because the post has 1 author and the post 30 the author belongs to the post in terms active records macros here so you see here has 1 author what about OK so we've seen these associations for MT models exactly in the models of know what they're it's the that's pretty pretty all so of course for doing properties here inside the cell this block so what's going on here is this is how we tell us a trailblazer that hey by the way you get this thing called offer and by the way is that these 2 different properties Name e-mail this is what gives us the ability to put this inside the form notion that could foresee reevaluations underselling presidency you know FIL filled out now this is kind of a big bigger the big deal right here this process method II is going to as you see here is that this validate blocked by insisting nature that's all you know princes you pass into it R&D knowledge if so it will call saving so that is how we manage the persistence in this case and now there are a couple things that I'm going to ask me to then we had over right you Active Record of methods as well so we were looking at doing the here the we call a thing is so so that the operation doesn't know anything about having a dozen about the structure of the nesting but the operation does not know how to create and for example how to grade the Knesset off of the common so you have to provide that manually I mean there's ways travel that actually implement this for for you and you can just configured it but um in this example we explicitly create the to add to have this nested models set up exactly so we tell details explained in the book right so in other words this this community is a little tricky around some stuff that record anyway so that is exactly how that piece work for here something inside updates were so inside the post class or it worse idea yeah so the the POS class and will it is my view Nice through the area and I was saying the same thing but then you get 3 more minutes OK for the year so that they were are so anyhow were so inside or pose class here we've got a class called update inherits from create so we can also call up the action this later from 1 to the right that the actual architecture for a forms knowledge as we know the the idea so we also call so small here I in over but it's in the states so moving on here as you can see the QoS controller that use the word is a form of post create done create runners operation post create do OK and that's what I think is only executed when it's when the validation was successful so so that's the only information the operation exposes I'm I was run and I was successful I was not successful so the controller does not know anything else unless you do that and as you and extend their operation right trying to enforce OK so anyway I were basically running this run was create and antimony variables and all acts on it redirects here is not model so in other words this could be you know there's no hard coding of OK post war you know whatever might else might be here just call model that's it so we got for in this case cost of adding and that of course the return parents don't want anything to happen if you know this actually works so as opposed to when new action here shows you see 1 line presented post update OK cool of the actual update method as well same thing I added all that stuff so it cost I'd like a student in and we're all different this is so the point is that the control really just delegates to the the to the operation and handles HTTP specific stuff like redirects because that's not just a concern of the the operation does know anything about HDP and the control doesn't anything about the business logic that's the whole point about this and structuring right so it's say what the if the when the up it fails then and there the block is not hit so you don't have this return redirect to the block is only executed when is valid and that the followers rear ended that doesn't just as you do your control actions and rails for the whole point is that the the block is only executed for successful operations exactly so this this thing doesn't work in the light of the on out of all of this next piece of code 0 here we are retraction new new of it so we got the object accessible inside the former instead of you and we can then look at the errors on the object is like at record In fact show you fighting actually see the screen and of use so I don't have a near you with right is unprofessional right are so and that posts on their use growing posts in 3 simple stuff right OK we've all seen this before here is our form of OK the same if the number of errors objects you know that 0 then I you we are problems wall what we seen this before now in this case using simple form I basically I saw some of the extracted features like units and you tolerances it work the like that so as you see very simple or compared to existing Active Record existing rails very much the same thing you gotta inputs you got all this stuff inheritance fields for author or so of course the form object represent you know the supposed and now we have the the author object of pose and so on so there's the inheritance at 3 simple well just you you know this kind in a nutshell there's a few other things but underline it take this bag others little bit of configuration might have to do you know much of which is documented let's get back on such upon it a POT ON C K and you for the trouble is really just a little troopers acoustic do rocks yeah yeah do that yeah I think your much the fact
so that was awesome like you imagine just wrapping up in the next 2 minutes I'm from the so the thing is we have that is
we can travel we have like negative easily have nested set of like the nested we had you know you
nest the all the into a common and all that kind of stuff so that's really really helpful and all based on the reform jam said nested validations as well clean implemented and I this
great you have a lot of things and travels are based
on inheritance so it you we we use object orientation the way it was supposed to be yes so
we so by inheritance I did not you know that that if you can roll the town and you sibling content is not a sibling but
so this is my sister had apparently unaware that different patterns whether this somewhat inheritance
and so am a is you can operations inherit from from from other operations and you inherit the contract inherit the represent all that kind of stuff is clean inherited into these subclasses and you can also have is made to makes it really easy to alright specific aspects of the inherited stuff like you can override properties in the contract they can over can also already nested attributes in the country you can override the stuff and configuration from the representer you can overwrite your business logic it's just using and plane Ruby inheritance and the way called X in
trade work is also very straightforward
so you remember this ability that we reset the model so usually this goes into like the common model in in in rails in trailblazer this goes into the actual prevalence it'll processed method so you can call them called X explicitly I can use the dispatched define which comics to call
and the cool thing is the so get about inheritance is that we also added no that M like if you
have a gap achieve your siblings are supposed to have a gap as well I don't have a photo to prove it but this is also wrong because my sister's son have a gap and that cheese and that's about 100 solar something is a little thing is you can also the activate and and callbacks in inherited inherited and operations for example in update I might not wanna have the check spelling and call that to be called so I just am skip it so it's really declarative and simple to all right behavior and
also areas words with represent as policies we also have policies in authentication Travis and not talk about this today and I'm sorry and it is also good to inherit configurations
represented also they render and pass stuff so this is helpful for operations when you when
in operation does have Jason there so that the Intel them contract can them build and a representative the represent helps you to work with Jason or the kind of stuff and operation can pass and render Jason as well the 1 that is also and then they can others is not a monolithic piece
it is an orchestration off all objects handling every aspect of your of your request and them because they would only that we
we do this on our own I agree but Petrobras is an attempt to establish a stand up again so
we get also stuff in journalism like polymorphic abrasions and policies and Alliance it's great
to check it out classic often on the impact that comes less Trailblazer the impact that counts slashed trailblazer the part that comes less trailblazer or you can google it we also get stickers
because thing about the because you don't like Trailblazer just cut off here and then you have free Ruby sticker you have how how how how lies a litany I'll give you a circuit maybe and the the
decoding is them and yacht sponsored me to come and give this talk so they basically pay everything they also they're really nice I'm not affiliated with them but I find it a great thing and other companies should adopt this to support open source of this because it is great if you can speak at a conference and and you meet all some people and a great company stays behind you and support you so thank ng out and just to wrap up yes Trevor they give you new
especially as use operations because they help you
structure business logic use all my gems
and a and B and the less each other thank you very much but
the use of arms and hands in
Optimierung
Architektur <Informatik>
Objekt <Kategorie>
Bildschirmmaske
Informationsmodellierung
Datensatz
Zustandsdichte
Klasse <Mathematik>
Computeranimation
Attributierte Grammatik
Aggregatzustand
Rechenschieber
Mapping <Computergraphik>
Bit
Regulärer Graph
Verschlingung
Migration <Informatik>
Garbentheorie
Subtraktion
Familie <Mathematik>
Ranking
Computeranimation
Gradient
Transinformation
Besprechung/Interview
Sprachsynthese
Benutzerbeteiligung
Digitale Photographie
ATM
Physikalisches System
E-Mail
Architektur <Informatik>
Quick-Sort
Framework <Informatik>
Abstraktionsebene
Datenmodell
Kartesische Koordinaten
p-Block
Sichtenkonzept
Iteriertes Funktionensystem
Übergang
Informationsmodellierung
Prozess <Informatik>
Gamecontroller
Mereologie
Gamecontroller
Serviceorientierte Architektur
Analysis
Bit
Programmiergerät
Punkt
Momentenproblem
Stab
Kartesische Koordinaten
Architektur <Informatik>
Code
Computeranimation
Übergang
Informationsmodellierung
Digitale Photographie
Gamecontroller
Äußere Algebra eines Moduls
ATM
Sichtenkonzept
Abstraktionsebene
Datenmodell
Sichtenkonzept
Arithmetisches Mittel
Objekt <Kategorie>
Dienst <Informatik>
Rechter Winkel
Gamecontroller
Standardabweichung
Befehl <Informatik>
Abstraktionsebene
Klasse <Mathematik>
Güte der Anpassung
Zellularer Automat
Kartesische Koordinaten
Benutzerfreundlichkeit
Computeranimation
Objekt <Kategorie>
Informationsmodellierung
Anwendungssoftware
Unternehmensarchitektur
Zeichenkette
Filter <Stochastik>
Subtraktion
Klasse <Mathematik>
Gruppenoperation
Datenmodell
Volumenvisualisierung
Systemaufruf
Kartesische Koordinaten
Digitalfilter
Kontextbezogenes System
Dateiformat
Sichtenkonzept
Mathematische Logik
Code
Computeranimation
Informationsmodellierung
Authentifikation
Prozess <Informatik>
Gamecontroller
Mereologie
Gamecontroller
Codierung
Authentifikation
Strom <Mathematik>
Attributierte Grammatik
Webforum
Atomarität <Informatik>
Klasse <Mathematik>
Datenmodell
Systemverwaltung
Kontextbezogenes System
Sichtenkonzept
Mathematische Logik
Code
Teilmenge
Informationsmodellierung
Bildschirmmaske
Datenfeld
Gamecontroller
Mereologie
Attributierte Grammatik
Serielle Schnittstelle
Resultante
Bit
Mathematische Logik
Web-Applikation
Gruppenkeim
Partielle Differentiation
Mathematische Logik
Code
Übergang
Task
Spezialrechner
Domain-Name
Informationsmodellierung
Variable
Gamecontroller
Autorisierung
Volumenvisualisierung
Strom <Mathematik>
Optimierung
Attributierte Grammatik
Autorisierung
Default
Datenmodell
Thumbnail
Systemverwaltung
Volumenvisualisierung
Systemaufruf
Gemeinsamer Speicher
Kontextbezogenes System
Rendering
Entscheidungstheorie
Objekt <Kategorie>
Texteditor
Verschlingung
Mereologie
Gamecontroller
Dateiformat
Stab
Spielkonsole
Open Source
Datenmodell
Kartesische Koordinaten
Mathematische Logik
Sichtenkonzept
Framework <Informatik>
Computeranimation
Diagramm
Bildschirmmaske
Gamecontroller
Zellularer Automat
Datenstruktur
Hilfesystem
Videospiel
Datenmissbrauch
Sichtenkonzept
Spielkonsole
Wasserdampftafel
Abstraktionsebene
Datenmodell
Kartesische Koordinaten
Bildschirmmaske
Diagramm
Informationsmodellierung
Rangstatistik
Menge
Zellularer Automat
Gamecontroller
Gamecontroller
Mathematische Logik
Spielkonsole
Validität
Datenmodell
Sichtenkonzept
Mathematische Logik
Rendering
TLS
Task
Font
Bildschirmmaske
Bildschirmmaske
Informationsmodellierung
Softwaretest
Zellularer Automat
Gamecontroller
Autorisierung
Gamecontroller
Spielkonsole
Atomarität <Informatik>
Zwei
Besprechung/Interview
Validität
Datenmodell
Mathematische Logik
Sichtenkonzept
Computeranimation
Rechenschieber
Bildschirmmaske
Einheit <Mathematik>
Softwaretest
Zellularer Automat
Gamecontroller
Gamecontroller
Assoziativgesetz
Momentenproblem
Spielkonsole
Datenmodell
Zahlenbereich
Mathematische Logik
Sichtenkonzept
Informationsmodellierung
Datensatz
Bildschirmmaske
Zellularer Automat
Gamecontroller
Mustersprache
Mereologie
Subtraktion
Sichtenkonzept
Spielkonsole
Klasse <Mathematik>
Datenmodell
Zellularer Automat
Volumenvisualisierung
Kontextbezogenes System
Sichtenkonzept
Mathematische Logik
Objekt <Kategorie>
Spezialrechner
Bildschirmmaske
Zellularer Automat
Gamecontroller
Widget
Kategorie <Mathematik>
Software Engineering
Avatar <Informatik>
Hilfesystem
Instantiierung
Sichtenkonzept
Prozess <Informatik>
Spielkonsole
Klasse <Mathematik>
Datenmodell
Zellularer Automat
Kontextbezogenes System
Sichtenkonzept
Mathematische Logik
Design by Contract
Objekt <Kategorie>
Spezialrechner
Bildschirmmaske
Bildschirmmaske
Domain-Name
Design by Contract
Zellularer Automat
Gamecontroller
Fehlererkennungscode
Gamecontroller
Kategorie <Mathematik>
Avatar <Informatik>
Bildgebendes Verfahren
Hilfesystem
Resultante
Prozess <Physik>
Prozess <Informatik>
Spielkonsole
Klasse <Mathematik>
Datenmodell
Ein-Ausgabe
Mathematische Logik
Sichtenkonzept
Code
Design by Contract
Objekt <Kategorie>
Bildschirmmaske
Informationsmodellierung
Bildschirmmaske
Domain-Name
Programmfehler
Design by Contract
Zellularer Automat
Gamecontroller
Fehlererkennungscode
ATM
Kategorie <Mathematik>
Informationsmodellierung
Sichtenkonzept
Acht
Besprechung/Interview
Gamecontroller
Architektur <Informatik>
Aggregatzustand
Übergang
Bit
Gruppenoperation
Kartesische Koordinaten
Baumechanik
Architektur <Informatik>
Mathematische Logik
Font
Informationsmodellierung
Domain-Name
Optimierung
Datenstruktur
Lineares Funktional
Sichtenkonzept
Validität
Datenmodell
Systemaufruf
TLS
Verdeckungsrechnung
Objekt <Kategorie>
Dienst <Informatik>
Bildschirmmaske
Twitter <Softwareplattform>
Gamecontroller
Projektive Ebene
Instantiierung
Web Site
Sichtenkonzept
Gruppenoperation
Elektronische Publikation
Sichtenkonzept
Code
Computeranimation
Übergang
Rechenschieber
Informationsmodellierung
Generator <Informatik>
Rechter Winkel
Zellularer Automat
Primzahlzwillinge
Mereologie
Gamecontroller
Cloud Computing
Datenstruktur
Verzeichnisdienst
Hilfesystem
Cross-site scripting
Drucksondierung
Web log
Weg <Topologie>
Konfigurationsraum
Klasse <Mathematik>
Computeranimation
Umwandlungsenthalpie
Softwaretest
Task
Framework <Informatik>
Wurzel <Mathematik>
Reelle Zahl
Bildschirmfenster
Vorlesung/Konferenz
Generator <Informatik>
Zeitzone
Touchscreen
Bit
Vektorpotenzial
Prozess <Physik>
Punkt
Web log
Natürliche Zahl
Extrempunkt
Gesetz <Physik>
Raum-Zeit
Gradient
Umwandlungsenthalpie
Einheit <Mathematik>
Polygonzug
Gamecontroller
E-Mail
Dienstgüte
Maschinelles Sehen
Hacker
Gerade
Umwandlungsenthalpie
Volltext
Namensraum
Navigieren
Sichtenkonzept
Prozess <Informatik>
Kategorie <Mathematik>
Volumenvisualisierung
Ideal <Mathematik>
p-Block
Ein-Ausgabe
Wiki
Gruppenoperation
Web log
Datenfeld
Framework <Informatik>
Forcing
Wurzel <Mathematik>
Automatische Indexierung
Rechter Winkel
Ein-Ausgabe
Kategorie <Mathematik>
Projektive Ebene
Information
Makrobefehl
Verzeichnisdienst
Aggregatzustand
Fehlermeldung
Subtraktion
Ortsoperator
Klasse <Mathematik>
Gruppenoperation
Zahlenbereich
Zellularer Automat
E-Mail
Architektur <Informatik>
Term
Mathematische Logik
Code
Variable
Informationsmodellierung
Bildschirmmaske
Datensatz
Task
Design by Contract
Datentyp
Vererbungshierarchie
Generator <Informatik>
Datenstruktur
Konfigurationsraum
Touchscreen
Analysis
Assoziativgesetz
Autorisierung
NP-hartes Problem
Trennungsaxiom
Soundverarbeitung
Fehlermeldung
Default
Datenmodell
Validität
Mathematisierung
Indexberechnung
Elektronische Publikation
Design by Contract
Objekt <Kategorie>
Bildschirmmaske
Flächeninhalt
Gamecontroller
Codierung
Wort <Informatik>
Horizontale
PRINCE2
Zeitzone
Design by Contract
Fehlererkennungscode
Besprechung/Interview
Validität
Kategorie <Mathematik>
E-Mail
Computeranimation
Ebene
Kategorie <Mathematik>
Vererbungshierarchie
Selbstrepräsentation
Besprechung/Interview
Mathematische Logik
Computeranimation
Design by Contract
Design by Contract
Objektorientierte Programmiersprache
Fehlererkennungscode
Mustersprache
Vererbungshierarchie
Kategorie <Mathematik>
Inhalt <Mathematik>
Simulation
Konfigurationsraum
Attributierte Grammatik
Informationsmodellierung
Digitale Photographie
Vererbungshierarchie
Design by Contract
Fehlererkennungscode
Datenmodell
Vererbungshierarchie
Kategorie <Mathematik>
Systemaufruf
Computeranimation
Selbstrepräsentation
Konfigurationsraum
Volumenvisualisierung
Parser
Objektklasse
Computeranimation
Design by Contract
Flächeninhalt
Design by Contract
Authentifikation
Kategorie <Mathematik>
Wort <Informatik>
Konfigurationsraum
Architektur <Informatik>
Mathematische Logik
Spielkonsole
Modifikation <Mathematik>
Modifikation <Mathematik>
Datenmodell
Sichtenkonzept
Rendering
Computeranimation
Objekt <Kategorie>
Bildschirmmaske
Gamecontroller
Zellularer Automat
Autorisierung
Mereologie
Freeware
Open Source
Digitaltechnik
Computeranimation
Videokonferenz
Bildschirmmaske
Design by Contract
Zellularer Automat
Gamecontroller
Primzahlzwillinge
Datenmodell
Datenstruktur
Mathematische Logik
Computeranimation

Metadaten

Formale Metadaten

Titel Trailblazer: A new Architecture for Rails
Serientitel RailsConf 2015
Teil 76
Anzahl der Teile 94
Autor Sutterer, Nick
Hughey, J Austin
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/30713
Herausgeber Confreaks, LLC
Erscheinungsjahr 2015
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Trailblazer introduces several new abstraction layers into Rails. It gives developers structure and architectural guidance and finally answers the question of "Where do I put this kind of code?" in Rails. This talk walks you through a realistic development of a Rails application with Trailblazer and discusses every bloody aspect of it.

Ähnliche Filme

Loading...