Merken

Perusing the Rails Source Code - A Beginners Guide

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
the V a E Asia a very big everyone for coming to my talk of the start off
1st with a on Janet my son so my family's was watching Lifestream of in my 16 month old son his favored new word is flowers so that's in much flowers and so I had the it it so I had this weird
habit of storing they have repositories and never looking at the source code I have light 270 something stars and in the so the rails and I even when a step further with rails I cloned the rails repository and never looked at the source code for a long time and then finally when I did this is a little bit of how I'm Western perusing cells the source code how I was comprehending I had his little ah ha moments and they've boost minor learning the source code but I had those over time and so what I wanna do today is I wanna share with you so the aha moment I had so that you can get up and running in real source code what quicker than I did and I there's a few side effects of perusing arose source code going through thousands of lines of recoded gonna learn Poisson new methods that you may not have used before and you learn a lot about up optimizations and Ruby and you might even be introduced a metaprogramming if you never gonna programming you see how rails use metaprogramming this source repository 4 rails is over 10 years old and it stands over tens of thousands of commits also serves as a good playground for learning some new get methods and also some options for methods URI no I'm just digging through information you can learn a lot about get and then there's this 1 thing that I heard a lot when I was getting into rails is there's lot magic in rails and it is really easy to get up and running very quickly and rails with very little code but it turns out there's no magic and rails there's just a really good at public API and it does a lot of the heavy lifting for users so that users can get up and running without I'm hitting these implementation hurdles so the started you need a copy of the real source and you can get better get then I recommend setting it up for development and and the rails guides has a good set up a good step by step process and how they get a set of Fidel development this couple dependencies that you need and this allows you to run the tests for the rail source when you get the source code and this is a top level view of the repository see how these folders for all the different modules and then you have a some documentation like the license contributing read me as well as the gym files in the gym spec now now the rails modules an hour independent and so that they each have their own folder and they each have their own gym and the reason that rails team does this is because they want them to be interchangeable so if you're if you when use a different ORM the neck record in rounds you can and also means you can take actor record outside of rails in use in another project and I've done this couple times and then to run through the different modules Understand go through a typical rails requests a starry rels afebrile server the request comes in and their requests permission to the routs neurons is going to pass it into this into controller the controller is going to grab I'm usually a model and but it's also going revenue and is going to go back up to the ransom and you can get a response now the routing the controller those our both the part of action dispatch or act sorry action pack an action-packed is actually made up of 2 separate models of action dispatch in action controller and the routers action dispatch the controllers action control and then the models are usually I after record or actor model don't do a database interaction or the 1 rank graph record the more the and then you on the is action view in the world in the initialization of rails in the command line interface that handled by rail ties and then sprinkled throughout the act is active support and actors for its can extend their Ruby standard library classes as wasn't at some other helpers and and then there's 3 other model I consider these of additional modules so action molarity 1 is to include mail delivery into your app so for like user registrations with that you do that active job that's going to handle the background tasks and jobs the action cable that's a newer module and action cables really call it integrates WebSockets growls and so it allows for a lot of I'm a real time application uses and of you an add user stories to any of the acts as well
as have real-time chat you can and set also in the
top-level directory of are the guys and this is this is guides that we're going start work and you had there the source code for that so when you clone the rails repository you have a copy of the guys with the energy will make changes to it you can just and make changes in here in Singapore request recall that's actually how I I 1st started in rails laughter bounded typo in in the guides and Sussman a pull request land that added also play the matter that the so because only look at a
module in on these record but the seasonally showing you you can do from model the module so that the 1st level the model is going to have the lib directory that's where the the code is going to lie on the stand the test and be there as well as the reading I think the reason is a good place to start if you're familiar with the module your point finally someone to take waste from an energy not familiar with model it's a good on overview of the modules and in the gym spac I also think is going to look at because you get to see the dependencies of the module so here you see I after record depends on active support active model and then another gym call Errol an aerial does a lot of the sequel generation with an active record if we seem to live directory I'm usually can see a folder with the modeling you're going to see the iron rails folder and the rails folder is going to handle a lot of the initialization sign up that it's going to handle a lot of the generators so if you're using Active Record within rails this is going to be where I Wells generate model where rails generate generate migrations live and an actor record Bobby and this is filed the model name that's where a lot of initializations can be configured so if you've heard terms like evil loading unloading that's where that's of majority that's handled so we see the Inspectorate through our yeah that module directory this is where you can see the classes for 5 actor record ended they'd the
documentation files that's what makes up the documentation for the API website and so just like with the have you have the guys with you you also have API website by reading through the different files I good place when when
you are looking through here your privacy key terms that you may recognize like at tributes in relation schema and then applying as the ones that you don't recognize like at attribute dictation tracker and persistence stuff and the ones they do recognize as a good place to start because you're gonna be familiar with some of the things that the mouse and you get a see how they're implemented so I did this with how I find by cremated method and find line where they're pretty similar the passing and you attributes of parameters so when final of post by name title I and they're they're similar except that finalized can be returning 1 object and where's the new returning Active Record relation collection of objects and I wanna see how similar the coders the so if we were defined by you see that find my actually uses where and then it just takes the 1st item in as pretty cool it's sort of any and it's sort of a syntactic sugar for 4 where now that it's called the see that but it's not as simple as saying I wanna see what what Active Record creates doing so ability to create file that there's a really work that way you have to do some digging and find out where these methods live and 1 of my 1st aha moments was learning about rubies introspection that's Alan about a lot of these from Aaron Patterson blog called I'm a puts debugger in goes over different ways that he debugs with just simple Ruby methods Ruby has is methods call introspection that's and they allow you to call on a class or even a method and learn about that cluster method 1 I use a very often is method of source location and so you can you can just call here we have a classical post recall method and the method we will look at we put it as you the strain or as a symbol and called . source location thus the return where that lives within the rails I repository now I can go look at that we see here that create Britain object saves it and then returns and that's a pretty straightforward version of this is sometimes not so safe straightforward way that source location so for instance save recall posts news and save as an instance method a method saves source location is going to return a suppressor what's interesting is the Wikimapia website you're going to see
that it wasn't persistence so why a source location giving us a different version I'm maybe a website with turns out that say it has to do some when all sort housekeeping before actually gets to the core or other than that then the necessary running through what saved as I here's suppressor
said that save lives with source location and was suppressor does is if you're trying to suppress these kinds of records I'm saying you don't want them created a sister return true we're doing that so it's gonna super on and that's supers into a method called i in transactions and but this is going to do is it's going to save the state undirected that end if something happens within a or something fails the that it will this rolled back the their original state of that when you called save as in a super into a class called dirty and dirty tracks changes I see smile pan it tracks changes to the objects events since you've interacted with the database and as I can do anything here sort dinner follow along to validations in this is where validations are performed if we don't validations here by a 1 failed they would return false here's the super and that's gonna take us to persistence analogous we could look to the API website and seen this right here what same is actually doing causation but you have this knowledge gap between what source location is giving you In 1 and API website has I think you're better off by filling knowledge gaps now there is another method called super method making calls and so after method saving calls for methods and you see here it returns transactions but because we have so many Super here I tend to use in situations like this sudden used by about and I am by bugs really cool it allows you to traverse code as its executing and to do this you need a square to to put by bargain and the rails source actually has some templates for the for creating a script that it's just a minimal version of these modules so that you can play around with an exploring and do some assertions and so we're gonna look at the Active Record master script and what is starts off doing is it 1st requires bond wearing and this creates an inline Jim file and what is going to do if you don't have a copy of these gyms on a computer it's going to ground for you and here you see that were actually using but the get version so that we need to get out like that it's just going to grab the master version of get have and we're also doing with aerial reason and word using arrows masters because usually if using rels master they're using an unreleased version of Aero something maintain as well as a need that then we also have the gym for the database using can change that to whichever 1 1 use and since we're using the clone version of on a computer you can change that from that have to pack and you can you can make more changes to and all you can see those changes being filed when you're running through they were going to smack director configuration were established connection to the database we're going to and he's logger or defined the schema and here I am I'm just creating table called post in i in and adding a title and actually I think it's good have in actually in there so you can see how those at Japan's bar pass through and then we have the our words calling the class that's or and then it has a many test set up here so if you're asserting stepping want to see if something true or false you can do that I'm usually I just take out something like consider these exploration scripts I'm not gonna a that friends can do my code line in what's causing if you want to use something similar to or else consul you can also in the script you can require prime and then you called binding not cry and I will give you an interactive consul in you can tree and just as the typical I rails consul and he's by but we need required by bug and he called by but right before the line you're wanting to explore and I was gonna run through a some the cool methods you can use of by about so here were opposed create and if I wanna step in to create I just I tight ass and that'll take me to the 1st line create then Neapolis skip over something so I wanna skip over this if statement I can type in a in a sense for next not taken into the 1st line in a the else statement and a policy local variables so here we have at tributes and of what you there those past and var local would give me the local variables into here we see that title icles now running through the scripts where we're playing around with and you look at the variables I have I run into what I call highs and bugs debugging of uncertainty principle that's not it it is a troubling you know simultaneously the exact value incorrect execution of about value variable so that means is around this I seems happen a lot in records query methods I'm I'm exploring query method like where and I wanna see this variable it keeps getting passed through inside a look at that and the query methods in actor record they they do what a lazy query so that it's not gonna call the actual query to the database until you really need it and that's what allows you to change the scoring method like where God water well what I'm but when I look at the variable as saying hey I need that and so it's going to call that that sequel query and a lot of the internals of the query methods depend on that query not being called so actually taken a different path it would have had you not looked at that variable now as you're going through here you're going to see on you're going to the classes you know and as a going to those you're gonna be introduced to the classes you don't know and this gives you a little context to those of tweets so you can start digging into those the more you do this the moriori be acquainted to a large amount of rails no 1 thing that I like to do if if there's a line of code that I don't understand and what I like to do is I like to change it or delete it's just just get rid of it end after I do that I like to run the test for model I want to
see what broke and I was doing this a couple months ago with the method called find method actually equals and what this method does is it use metaprogramming In actor record to create and for all the different attributes is going to create the title equals or description equals methods and just run through it what it does is it takes the name here we passed a name as title it's not unpack it into hexadecimal so he it's going to impact that into the 4 7 9 the a string and then it's going to save as a statement and then it as a little bit metaprogramming there's this I'm module called generated actually methods that all these these methods live on and it's going to create a new method on that and the way it does that is at 1st creates a method called underscore underscore to understand the score safe name so it's been at that for some 9 that aliases back to the i method name that we're looking for so it's the daily said to title equals we then it under finds the underscore underscore to underscore underscore method and not by the some weird feels like it's going to some extra steps here why why creative method and then alias that and then get rid of it right away so I decided to change it to what thought should be in just from the test so I go to the 10 method to standard name equals then we don't need alias method and we don't need the undefined at this so we can get rid of those and that just leaves us with the name equals ran the test and sure enough some fail and this is an example of 1 of the it's call is trying to define a method called a dollar sign B the and in Ruby there's a limitation of that you can use dollar signs and method names sound so it turns out what rails is doing here is it's bypassing their Ruby limitations on method names way does is it 1st creates a method that it knows it can be saved I has the same name and then Israeli said to what we needed to be is going define that 2 methods work use that I'm and how this is this is a really cool once for a sneaky way of getting that the functionality that we need our rails involve as as interested in how they came up with this new did this exist very early on in in rails or when division decided this should be a else and has this coder evolved over time they so my my 2nd aha moment was learning how to use jet effectively to find information about or find the story about the code is the commits within the rails repository they they tell a story they they tell you how the UN repository for the best source code has changed over time and you can follow the git commit messages and hopefully it's a good message in its explain exactly why they did this and so I this take he'll on sort of a journey it wasn't a straightforward journey of finding out the original command for this code but it was some cool cool get methods that learn along the way so that 1st are about which is getting blame and that's in return the latest commit hash for each 1 line of code and file their returns 2016 by Rio are really and about as Laszlo where that's pretty new but the time just it the added to rails and it turns out what I found was an indentation change so in 20 16 that the rails team they implemented rule cop style guidelines real source code it it and this was part of them cleaning up on the source code to make it match the style guidelines we don't wanna see whitespace changes and so there's an option would give when can pass called best w it's ignore white-space changes and that gives us a committed by Aaron Patterson in 2013 but turns out and that's still not the original committee for this and this code a little different this could actually existed before and then Aaron changed it and in the had reverted back and get going is 0 and you only can give you the latest from there but we wanna see all those and so I found that get log works a little better with still log has an option that's dashed by capital x you pass the search string in which induces can returning all the commits that have that search string by that match the search string in the changes of the commits and so that's a return several commits here now like to clean this up a little so it's in by easier for me to read i to couple options ones dashed edge patch and as such patch or dashed the arm for sure it's shows you the actual change that happens commits so you can see is said just the commitments and you can see the actual changes and then destination pickaxe special all that actually comes along with that stretch patch in and if you don't pass in an options it's only gonna return the files on those commits that match a search string so its owner return us right but you want to see all the changes that happen to commit because usually those have context of actual change and so passing here in you can really see that the 1st 1 is of the read file I and then dash dash reverse changes it from being the newest commits to all this 5 dollars commits instead we're gonna do oldest to newest and I feel like this tells a little better story you see it from where 1st existed and followed along and back bekommen wasn't actually the commit that created the functionality was actually the 1 I created this code but from here what I can do is I can take the commit hatch from there I can check out the repository and from there from the the Committee for that and I can follow that along hope select find the commit added the functionally looking for I did this and my family coming from 2011 along the way I learned of the original purposes the code I learned some optimizations that they made to it and also some bugs that they addressed in the code of there is another option for another feature that similar to what I just did called and 2 places I know that have rewinding been fugitive and get help women fugitive is event log that sir wraps didn't provide some really cool get functionality within them so you'll have to leave then you can in use on the line and show you every blaming is on
get have so here we have the honor you for that right file and you'll see down here for you'll see a
little icon you blame prior to this change and from from what I can gather what this does is to check out from the repository does what it looked like before this time it was added and instead of going from there it's really close from there you can just keep clicking that link it to the find we're looking for and yet has a lot of
cool features like this gets sort of serves as an extension to our get hot sources of an extension de gets whereas get provides you with a commit message I get help provides you with the whole conversation on for example when I was upgrading 1 my Rails apps from rails forward rails 5 I kept hitting this deprecation in my controllers that said you redirect to back was deprecated for redirect back of fallback location I wanna see why this changes implemented so I ran get log the chests with some the deprecation string the return of the Internet from their prior and they're corre may have heard his talk earlier the hill reason he made this changes he said that when no refer is available redirecting back can lead to an application error and so she provides a great commit messages a very long commit message I was you what was also 1 year how where extra information I could
find and so I took the commit hash for his command and I searched by it and I found his pull request and in his book request he has a conversation with the maintainers and other contributors to rails yeah and they're asking held the real life scenarios where is is actually gonna happen and he provides a real life scenarios in he also provides a link to a security cycle the loss about unsafe redirect their practices this information for me I had never heard I I heard about loss widened know about unsafe redirect practices this information was very valuable to me in a lot of pull requests in issues have this kind of information so there he works for thought by at rails console there and he looks at all these different Rails apps I find that this is day-to-day job I let my day-to-day job I worked on 2 maybe 3 roles apps as somebody introduced all these different use cases for rails is very like unique ways of doing things maybe not always great but the need and so I I sort of think about it
this way there's there's this tree and I'm I'm using military analogy that this is tree in at the trunk of it you have the general rails knowledge this is the stuff every 2 rails at does record creates and stuff in the real source has this handle word the valleys Testing wise and I can see a whole lot of bugs here but as you're dealing with the larger rails that as those rows that grow word when you're dealing with ones that are doing very particular things the going got these branches in you're going to see on little issues that most people don't experience and I'm not saying that my day-to-day job that I'm expecting that it can take a long time before see all these different ways of using rails or even the issues with rails but with the issues on get how
I can look at an issue I can see 1 with reproduction script that'll 1 and that we looked at earlier In end this reproduction scripts saying there's a bug right here it's a little map and I can take that reproduction script I can round my own sh machine on my own source of rails and I can see where that lives and how it may be if it's a feature that I'm not used to I'm getting to see how someone else is using and I can learn a little bit more about it I can follow this branch down and add it to my knowledge of rails rails also
serves as a forecaster changes and additions being made to it i it filing was just talking here about how she added system testing and it took her 6 months from when the ball request was created to when it was actually merchant and this is how typical pull request ghostly up pull request is received usually there's a discussion between the maintainers roads contributors and maybe you we really like this while I think should make this little change here or I'll I like the idea of it but I think you need to do in a completely different way In so more commits may be added to the sport quest images and build up the several comments you can follow along this commits you can see I'm sort of the thinking process behind the person that's submitted the spore quest and then if they accepted those 2 minutes maybe rebased into 1 and if you have if you haven't been introduced rebasing what it does is it takes all commits and it's going this tournament a 1 command and so we're going to lose a lot about contextual information from following along all those commands and finally to merge into master and what is worse than the master this is where it gets starts so if you were just looking at get this is where you 1st are introduced this code by with get 100 seeing all this other contextual information in your learning from now a
quiet you have really enjoyed reading 2 issues and pull requests on rails because there's all these little nuggets of knowledge in these poor request but the problem with that is when I 1st started doing this it's not always easy to follow along with what the issues are for requests are especially if you're not familiar with what it's talking about and so I read too many issues and for quest with glazed eyes but over time I I I would find little nuggets of knowledge little ah hearts us on the ballot I learn something new about rails and as I did this more and more I found more and more takeaways by more frequently now just as we looked at
what's familiar to us in the code base you can also look at what's familiar to you In get held by using the labels and so each module has a label so you see after record action patch where the ash action packed end you can if you only 1 see issues or pull requests from action you can go look at that label annual it'll pull up the issues and for what's related that then this is more of this a cool thing and that that found going to the we get out of they they mark the milestones on for the different releases for rails so you can see Figure milestones you see like 5 . 2 5 . 1 . 0 and you get see what they're working on and what they wanna get accomplish before they release that version this with Eileen there was no 6 months sitting and get help before it was finally became something and I am I was watching a repository Nassau when she submitted file submitted the pull request inside the 6 months before that they were trying to add system testing 2 rails and 3 points and sort of insider knowledge that
this is my final and deployment biggest aha moment I decided I wanna start trying to tackle issues or at least get into the nitty gritty of issues and so what I recommend is when you start no getting comfortable with the issues in may be seeing some in areas that you're comfortable with rails find an issue that has a reproduction script and maybe even attached p or the meeting is using but I'm look at this issue ends don't want the pull request yeah take that script running on your machine see if fails fails to see if you can find the issue and if you find the issue you see the can make the test pass change code and see if see if you can make that reproductions repast they want you do that look at that p or and see when you did verses what the person that's some that P. did I bet you you're going from had taken different ways of that making that P or or making that reproduction script past that he cancel the issue which I'm going to tell you it's it can be hard I've I've I looked at a lot of issues right and again and I was allowed Caddo modes 1 here going on here on mine and try to fix and that's fine too that the tiny have spin in the code and the the color you've been introduced to you understand a little more and then you can go look at that call request and that you'll have a little more contextual information to understand what's going on a pull request and not all K I A I we were saying that that's that's is actually pretty simple now Nanette leave you with some resources that really helped me as I started perusing resourceful i'm found these really handy first one it is talk or the blog by Aaron Patterson on what's debugger talked about that earlier he has a lot of great dividing methods it uses then I lean gave a talk in 2015 on contributing rails and she goes until a lot of really in-depth things like get bisect and it's an hour 20 minutes so she has a little more time to going to more of the details and contributing to rail side deftly recommend checking out in check out her pull request for system test purple request has 37 comments on it they did rebase some when when it was merged it so you can start from when she 1st and therefore requests you can follow along and see her thinking process behind behind adding this feature a really cool and then check out the for the podcast account bike should so they're acquired and he's on the co-host and Sean Griffin is I maintain that the record they both that tackle rails issues and speeches and every oral alone lot of the episodes Yiddish on saying hey I were Derek say hey I have a question about rails and and they go into something with rail service or Sean says I'm working on this take are working on this feature rails and it's sort of like sitting in and the developer lunch and would I would like you said I of in the middle of nowhere and so I don't get a sit in on these kinds of conversations everyday so it's it's collaborators that goes into the podcast than another good a good book is tracking rules for applications it's written by Josie Bellini he was found at the rails member he starts off the book by talking about how to create a renderer plugin within rails and as he's doing that and he goes into how rendering works with animals so as just the 1st chapter is a really good book and then last
and zebra he's another 1 of the core members he gave a talk last year about everything that rails does in the boot process so I definitely recommend checking that out and if you need to find the slides there my website out kitchens honest laterals come and thank you for coming also my talk I had on me I'll be out here taking questions I'm not sure if I've gone over time where how I'm doing so I'm if you wanna ask me any questions you talk to me I'll be down in the audience right here that's why
I hate bonds
Elektronischer Programmführer
Code
Familie <Mathematik>
Wort <Informatik>
Computeranimation
Bit
Prozess <Physik>
Momentenproblem
Gemeinsamer Speicher
Dokumentenserver
Minimierung
Kartesische Koordinaten
Computeranimation
Übergang
Prozess <Informatik>
Objektrelationale Abbildung
Router
Elektronischer Programmführer
E-Mail
Gerade
Softwaretest
App <Programm>
Sichtenkonzept
Dokumentenserver
Datenhaltung
Güte der Anpassung
Quellcode
Gruppenoperation
Konfiguration <Informatik>
Menge
Transcodierung
Registrierung <Bildverarbeitung>
Server
Projektive Ebene
Information
Standardabweichung
Gruppenoperation
Klasse <Mathematik>
Implementierung
Interaktives Fernsehen
Zellularer Automat
Unrundheit
Code
Task
Datensatz
Informationsmodellierung
Rangstatistik
Reelle Zahl
Endogene Variable
Programmbibliothek
Optimierung
Inklusion <Mathematik>
Softwareentwickler
Soundverarbeitung
Trennungsaxiom
Zehn
Graph
Stochastische Abhängigkeit
Datenmodell
Routing
Elektronische Publikation
Modul
Echtzeitsystem
Mereologie
Gamecontroller
Punkt
Dokumentenserver
Klasse <Mathematik>
Mathematisierung
Systemaufruf
Fortsetzung <Mathematik>
Spiegelung <Mathematik>
Quellcode
Modul
Code
Computeranimation
Übergang
Energiedichte
Datensatz
Generator <Informatik>
Informationsmodellierung
Vorzeichen <Mathematik>
Programmbibliothek
Attributierte Grammatik
Binäre Relation
Elektronischer Programmführer
Verzeichnisdienst
Lesen <Datenverarbeitung>
Objekt <Kategorie>
Web Site
Web log
Momentenproblem
Klasse <Mathematik>
Versionsverwaltung
Term
Computeranimation
Eins
Datensatz
Code
Gerade
Attributierte Grammatik
Parametersystem
Datenmissbrauch
Relativitätstheorie
Klassische Physik
Symboltabelle
Spiegelung <Mathematik>
Quellcode
Elektronische Publikation
Quick-Sort
Objekt <Kategorie>
Debugging
Attributierte Grammatik
Binäre Relation
URL
Schlüsselverwaltung
Message-Passing
Instantiierung
Stellenring
Versionsverwaltung
Fortsetzung <Mathematik>
Computer
Computeranimation
Netzwerktopologie
Skript <Programm>
Gerade
Softwaretest
Befehl <Informatik>
Physikalischer Effekt
Template
Datenhaltung
Stellenring
Unschärferelation
Systemaufruf
Abfrage
Quellcode
Kontextbezogenes System
Variable
Ereignishorizont
Twitter <Softwareplattform>
Rechter Winkel
Grundsätze ordnungsmäßiger Datenverarbeitung
URL
Message-Passing
Tabelle <Informatik>
Aggregatzustand
Dualitätstheorie
Subtraktion
Web Site
Wasserdampftafel
Mathematisierung
Klasse <Mathematik>
Code
Quellcode
Variable
Informationsmodellierung
Datensatz
Weg <Topologie>
Datentyp
Vererbungshierarchie
Zeitrichtung
Konfigurationsraum
Varianz
Einfach zusammenhängender Raum
sinc-Funktion
Validität
Spiegelung <Mathematik>
Elektronische Publikation
Quick-Sort
Programmfehler
Objekt <Kategorie>
Assoziativgesetz
Quadratzahl
Schnelltaste
Attributierte Grammatik
Wort <Informatik>
Binäre Relation
Klon <Mathematik>
Aliasing
Bit
Momentenproblem
Minimierung
Mathematisierung
Familie <Mathematik>
Patch <Software>
Extrempunkt
Information
Hinterlegungsverfahren <Kryptologie>
Code
Division
Computeranimation
Eins
Deskriptive Statistik
Datensatz
Reverse Engineering
Reelle Zahl
Vorzeichen <Mathematik>
Hash-Algorithmus
Inverser Limes
Gerade
Attributierte Grammatik
Softwaretest
Lineares Funktional
Befehl <Informatik>
Dokumentenserver
Matching <Graphentheorie>
Reverse Engineering
Schlussregel
Quellcode
Kontextbezogenes System
Elektronische Publikation
Modul
Ereignishorizont
Quick-Sort
Programmfehler
Konfiguration <Informatik>
Patch <Software>
Mereologie
Message-Passing
Lesen <Datenverarbeitung>
Zeichenkette
Dokumentenserver
Bildschirmsymbol
Binder <Informatik>
Computeranimation
Umsetzung <Informatik>
Subtraktion
Einfügungsdämpfung
Mathematisierung
Computeranimation
Internetworking
Reelle Zahl
Prozess <Informatik>
Hash-Algorithmus
Maßerweiterung
Videospiel
Korrelation
Computersicherheit
Quellcode
Binder <Informatik>
Hill-Differentialgleichung
Quick-Sort
Programmfehler
Softwarewartung
Dreiecksfreier Graph
Gamecontroller
Information
URL
Message-Passing
Zeichenkette
Softwaretest
Bit
Verzweigendes Programm
Quellcode
Computeranimation
Programmfehler
Eins
Mapping <Computergraphik>
Netzwerktopologie
Virtuelle Maschine
Datensatz
Prozess <Informatik>
Rechter Winkel
Bildschirmschoner
Skript <Programm>
Wort <Informatik>
Analogieschluss
Softwaretest
Turnier <Mathematik>
Addition
Prozess <Physik>
Mathematisierung
Physikalisches System
Elektronische Publikation
Quick-Sort
Computeranimation
Softwarewartung
Information
Bildgebendes Verfahren
Lesen <Datenverarbeitung>
Subtraktion
Umsetzung <Informatik>
Punkt
Prozess <Physik>
Momentenproblem
Web log
Mathematisierung
Gruppenoperation
Versionsverwaltung
Kartesische Koordinaten
Sprachsynthese
Code
Computeranimation
Physikalisches System
Datensatz
Volumenvisualisierung
Skript <Programm>
Softwareentwickler
Figurierte Zahl
NP-hartes Problem
Softwaretest
ATM
Systemaufruf
Debugging
Plug in
Schlussregel
Physikalisches System
Elektronische Publikation
Modul
Quick-Sort
Patch <Software>
Feuchteleitung
Kollaboration <Informatik>
Flächeninhalt
Verbandstheorie
Hill-Differentialgleichung
Information
Kantenfärbung
Message-Passing
Rechenschieber
Web Site
Prozess <Informatik>
Booten
COM
Rechter Winkel
Hyperbelverfahren
Rechenschieber
Vorlesung/Konferenz
Speicherabzug
Booten

Metadaten

Formale Metadaten

Titel Perusing the Rails Source Code - A Beginners Guide
Serientitel RailsConf 2017
Teil 06
Anzahl der Teile 86
Autor Kitchens, Alex
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/31269
Herausgeber Confreaks, LLC
Erscheinungsjahr 2017
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Open source projects like Rails are intimidating, especially as a beginner. It’s hard to look at the code and know what it does. But Ruby on Rails is more than just code. Written into it are years of research, discussions, and motivations. Also written into it are bugs, typos, and all of the pieces that make the code human. This talk outlines steps you can take to explore the inner workings of Rails and gain context on its design. Understanding how Rails works will allow you to write better Rails applications and better Ruby code. You will leave with many resources and tips on perusing Rails.

Ähnliche Filme

Loading...