Merken

Dispelling The 'Genius Programmer' Myth Through Code Review

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
I know it and the and the and the the the the act and good morning
everyone I am a software engineer
living in sentences go of you may know me from 1 or more of these other places this is my 1st general content and also but worse than that of the the sun some really excited to reading the campus was like amazing so on ever since I was a kid I had always wanted to be good things the without trying the 1st time I came across a piano I tried to play my favorite song on and I somehow expected to get it all right enough like any training I feel the and the 1st time I tried to write it like I wanted to get a right once again and might not fun at all and involved the and I I say these things as that will be reused in the wiser but that's not really
true so every 9 even today trying do something new eyes Carlos together excellent results on my 1st event many sensible also variously there now I knew that this is not how things work I had held the same when I
started to me it was like I didn't say I was lazy at that popular culture that make success stories sound like and is on dates that a successful person has an intellectual gift there is far greater than what most people have in a given area of another programming that's like mathematics music dancing running any athletic sport and by that natural ability they're going to fire excel the rest of us and almost as if by destiny you can then accreting destinies so it doesn't mind about things and then you engineers from Google be really analyze that's the grafted on minutes behind this the ideal program you say hey here's a gene is the gene is goes often appear rights this brilliant thing reveals into the walls and becomes famous forever I mean I hear it's often I'm sure those of you who are software engineers improve like as a in a professional capacity but also here it's often X by dental and go x is really smart
so I started investigating what are the genius programmers are like where do they get their ideas for from how can they look at a piece of code and say hey Balram work on Hey don't scale it is sure that was being skilled in town dead hell I'm did lies that enlarged by investors because these experts have put in a lot of Benadryl practice behind their work then iterated through so many failure modes so much that now when the work is part of the years to be instantaneous and so many objects in that moment of specific 6 you realize that there is no reason why these things cannot be stopped practiced by Mary the and greatly perhaps the best really to the comic expect from is still haven't been to unfortunately just simply walking up to 1 and being I hate each feel like make me like the you that word that doesn't always work at least but I know this because I tried so then strategy here is to ask me and the group you something that you've done and other the and it's even better if that's something that is a project began about and cooked in the projects that programmers scary me about hired their own open source libraries felt going to be into their projects
if you haven't already need any open source contributions yet I think about how you would want that experienced if you have already think about your experiences so far do you feel happy accomplished or rewarding if you're patches accepted and modest the do you feel valued and someone thanks you for your time I know I'm definitely jail and most people would agree successful contributions to make us feel happy and productive and I don't just mean a successful words by a contribution and I contribution I mean right from the point where 1 starts working on an issue to render dinners spot other community members started viewing the code the final even said contribution gets words so let's assume we all buying into the part that we all want to see more successful contributions and we wanna actors to get accepted also is made in areas V 1 would quality about for our software this leads us to the next part how do we make this process Spain let's but contributors and efficient forming dinners and Laura selfishly how do i become an expiry contributor and how do I get more people to work on improving the library I mean the and care about we following I
we address those issues we have a problem this this whole part about a non experts seeking feedback from the expert but this but is a little scary it means that you have to sometimes show people go that you wrote that isn't already in great shape and people want to be seen as clever and however people
don't like mistakes right Rob had this well let's take an example from my father time there is those library called there is a part of life called the sink I know there's a lot of people have been really excited about recently it looks quite good now but the of the into its history shows that a lot of discussions took place during its conception the somewhere in person in some rare on mining the round mailing letters and there are many iterations of design variables and quite some mean rights and that is how we got that we got to the current state of basic a lot of people involved in that 1 person alone did not write it when operation is not just essential it's a prerequisite it's a mast have it is not a nice to have and no thing that no 1 of those things allows not we go Jessica not clear enough Gannett and they experienced programmers just needed their projects at the end of its collaboration and build a community around the things they care about that said it and sometimes frustrating to contravene then the main donors would just marginal and prove that they accept BO and suggest an improved implementation and requested the right but I have good reason to do it what's a patterns most in the other ones will be to maintain that from there the goal is to make black crosses that the process of maintaining it as being this is possible because all this is happening on 1 times especially for open source of libraries that have been here for a while the and I got this year there was an amazing got by on already showed a slight with never ending lines will be on the scope this
light was kind mediated tritium and really well written but every maintenance the room the instant the sight of that size they it recognized the need of maintaining such a project the out secretly hope that their work does not impose an ever like that so every time someone mentions that the leaders of coverage and any of its integration with tools part just more at best or more for tests they're not trying to block the progress by being thinking they're trying to maintain school quality and there are
always things didn't get around those mandates look for example look for
encoding standard got by every large open source project welcoming contributions should on by making sure your code follows means the same guidelines before you submit it for review you're making the viewers job a lot easier and the but like the final you actually go on to contribute knowing the process is useful at the same time it's also important to respect the process many open source libraries have these VAD established step spot processes that they like the following sometimes it can be hard to understand why this process was use our y it is so important the fastest many rock in the long are you may be missing some context I would recommend saving that fight for the area never forget that the reason you started doing this in the 1st place was to learn you always go contains the process are modified or ask questions but you need to ask questions even initially I don't think anyone would mind that but that has as about the fight change it you can save it for later and so every potential code and you in this room would say that you for it that's it makes their lives very very difficult if you use set met like but useful request made lots of changes and and this is not just for new contributors of i in I will bring an example from trusted where the someone uh longtime contributor made some really amazing changes to the modern system of justice the only problem was that bad this is extremely large and so despite having act development community but then stopped side the review key for the agent we finally had to like dedicate 1 holds spring 8 and I got to review it and get modest so gonna feedback the yeah
even if things don't feed them fully shorter code that's the right thing to do also respect the maintainers time it's not to ask them questions and ask them to elaborate on their comments and suggestions but respectfully not in an argument the money In knows maybe you were right all along maybe the expert programmer made a mistake it happens it happens a lot it I say all this but I know criticism is hard even when it is presented Object deadly without judgment or prejudice in the nicest possible manner and that's really just human nature let me show you an example from of 1 of my 1st contributions to the state where I was working on implementing it by on implementing some and point in the eyes and there was this 1 thing that kept showing up on my own views repeatedly white
space because I was getting the same thing about were only where I realize that I mean think in a systematic state may be the answer to this does not mean going fixing whitespace maybe I need a systematic solution for that so I'm going around I asked the experience and figured that it is possible to configure extended together whitespaces you enough to bother it and that's shade the rate for my future systems that as well I read that on the system the 1st thing they do is to configure the extended autonomy average go clean up as possible and I'm really sorry you comment about white space and for that project any other so a nice
serious it is easier said than done but now I am still pleasantly surprised that everyone interested in Python community associates me all of the things that I built and not let my might whitespace mistakes the but was 148 is that you learn from the mistakes and build the along the same thing the rather than being embarrassed by and consider them to be context around your top process and document intensively then will look back I
know document in like mistakes is it it not use the annual Bakhshali building cases where go hey found some complete nonsense I wrote what was wrong with me I also be cases of that approach many nowhere or it makes the system failed let's not repeat it or you might say well that's why I did it it makes sense that context might help in fixing broken by later the not thing for contributors I my doctors not not just for that and I also have something to say then so-called reviewers and might make an inference here the hello
many communicating of nuclear and effective to understand I reviews non-personal an educational that well let's see non-personal that is for the review on the code itself does not only were still quite active and should be the part where you found people for their time and effort and that art should definitely exist people have their quirks I for example like desktop docstrings at the extent that they do not look at the company's go itself until the patch has unit tests Richard docstrings that tells me exactly what's happening this is really not all these important for all projects but it matters to me so when I build up of library that I made in a library I don't know the doc strings are important to me and I will likely look for them in any people request that sounds fair if I just document that in the contributing guidelines because I'm a American I have clearly communicated a prerequisite for making changes to my project it is not enough to just documented that what you have to also make it visible the state for example had like find contributing document document instead of bedeviled over the years and we tried for a long time to you make build 1 single single-document out of that I think I was the 6th 1 that was even that collaborating all 5 and that still hasn't completed so we have 6 contributing documentation that's not nearly invisible and that's also not the right way to go about telling a contributors what you get about and so even if you do that even if he document visibly people like Ms. things people might overlook some seemingly obvious what it that does not make them blind please don't be unkind about and they do not deserve and kindness for that I going out and asking my friends about their worst go do you experience he had a who maintains a bunch of open source libraries including requests said that 1 of the views he regrets the most is from the class library In all requests there was 1 point right instead of describing why something with a bad idea he just wrote that's below the and they contributed politely ask for more context behind all the notes and explain that's not the baseline was things and the would request was merged eventually but you said that things that have gone so much better in school there and he objectively describe the point 1st time itself it might it might not feel like it's important while you're doing a good and you can see the same thing being done over and over again but it's still worth the effort to explain why this
reminds me of of the time when I was making a logical manner in my research was is not so obvious to me I think it was about how I was organizing might be fell statements and my review where my to teach provided a self-contained example to help me understand the error that I was doing and describe in detail why this was important and I know it was a mistake in that they're working to treat people as human beings who cannot prove that we don't have a lot of discussion case described by the changes investing is necessary on this side
there's a review that I once got for a simple problem in gone to get an improvement implementation I was doing for interested it I've been working on this with needs and when I submitted for review again after a lot of friends and this is what I got it started with a thank you that's nice in say is that things that good that's nicer and I'm mentions that my my branch means a lot of changes also going because I'm already happened from the 1st 2 sentences not to actually care about what the next line says is really end in blind even ends with the smiley like from a new exporter programmers use my please it also users me that I'm going in the right direction so I think this was a great poem you know they think that even though the changes that we days to complete and it was a while before this thing was marched I feel like the kind of happiness this review gave me was a really nice and rarely seen so what would the contributors B and the reading of thank them for their time and then only if the taking the right around the province so they know when not in a particular track I have set a lot of
things in the last 3 years on and hence the to both contributors and being there's a node these things because I was a contributor for a long time before putting on my mean but have and that we'll have not new not of things and brought with them a massive change in perspective the most important 1 being that you hear always qualified part of many years I did not review what I've just to go I I contributed a lot I build a lot of things I responded and participated in discussions but I rarely reviewed actual code from other people the reason being that the people I was working with were excellent expert programmers and their annealed Toro educational and self to the a shot and I was a prerequisite for reviewing as I did not feel was knowledgeable enough to do that well I didn't know was that good good reviews also common practice being an expert isn't a prerequisite it is a result of is and that's why there's a community-wide right so once again contributors you will need to work with me in a sense that half way and my main inference here you will have to be the contributors have they been nice guy and was all thank you and these dimensions notice anything I we have time for 1 question but that does it took
out a major getting getting from the perspective of predicting time animals but also from of what's your opinion about automated tools to doing some of these review process things like the what's buys trailing and even some of us all that stuff the try was talking about the previous 2 can be picked up automated and you can write 4 grams it'll just jump in automatic is echoed by the way but patrolling was about the why this thing is small IT character whatever the problem that the and that's incredibly impressive which completely reported but it's a verbal do you think that's a good approach a better partial particle I think if requested I definitely think that's a really good approach of this holds but like all through the stop the point that have been trying to convey for the reviewers was that you review needs to be personal no 1 takes what the robot states firstly so I think if the more robots your code review process the better this is the more not personally good so the rating so what's that choice and the
high end of the year and the
Güte der Anpassung
Software Engineering
Resultante
Wellenpaket
Rechter Winkel
Inhalt <Mathematik>
Ereignishorizont
Expertensystem
ATM
Zentrische Streckung
Natürliche Zahl
Open Source
Mathematisierung
Programm
Gruppenkeim
Kanalkapazität
Maschinensprache
Objekt <Kategorie>
Flächeninhalt
Rechter Winkel
Gruppe <Mathematik>
Mereologie
Programmbibliothek
Strategisches Spiel
Projektive Ebene
Software Engineering
Rückkopplung
Expertensystem
Patch <Software>
Shape <Informatik>
Prozess <Physik>
Punkt
Flächeninhalt
Software
Open Source
Mereologie
Volumenvisualisierung
Wort <Informatik>
Maschinensprache
Softwaretest
Nichtlinearer Operator
Videospiel
Prozess <Physik>
Open Source
Programm
Iteration
Implementierung
Unrundheit
Gerichteter Graph
Integral
Eins
Softwarewartung
Variable
Arithmetische Folge
Rechter Winkel
Mustersprache
Mereologie
Programmbibliothek
Projektive Ebene
E-Mail
Gerade
Quelle <Physik>
Rückkopplung
Prozess <Physik>
Flächeninhalt
Prozess <Informatik>
Open Source
Mathematisierung
Programmbibliothek
Projektive Ebene
Physikalisches System
Maschinensprache
Softwareentwickler
Kontextbezogenes System
Schlüsselverwaltung
Viewer
Expertensystem
Parametersystem
Punkt
Sichtenkonzept
Natürliche Zahl
Programm
Physikalisches System
Maschinensprache
Bitrate
Raum-Zeit
Objekt <Kategorie>
Softwarewartung
Mittelwert
Projektive Ebene
Maßerweiterung
Aggregatzustand
Assoziativgesetz
Prozess <Physik>
Inferenz <Künstliche Intelligenz>
Gebäude <Mathematik>
Physikalisches System
Kontextbezogenes System
Befehl <Informatik>
Komponententest
Punkt
Sichtenkonzept
Kategorie <Mathematik>
Open Source
Mathematisierung
Maschinensprache
Kontextbezogenes System
Patch <Software>
Rechter Winkel
Mereologie
Programmbibliothek
Projektive Ebene
Maßerweiterung
Fehlermeldung
Aggregatzustand
Zeichenkette
Resultante
Expertensystem
Inferenz <Künstliche Intelligenz>
Hausdorff-Dimension
Mathematisierung
Verzweigendes Programm
Programm
Implementierung
Ruhmasse
Maschinensprache
Richtung
Knotenmenge
Weg <Topologie>
Simulated annealing
Rechter Winkel
Perspektive
Mereologie
Gerade
Prozess <Physik>
Punkt
Perspektive
Maschinensprache
Partikelsystem
Bitrate
Auswahlaxiom
Roboter

Metadaten

Formale Metadaten

Titel Dispelling The 'Genius Programmer' Myth Through Code Review
Serientitel DjangoCon US 2016
Teil 15
Anzahl der Teile 52
Autor Oruganti, Ashwini
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/32688
Herausgeber DjangoCon US
Erscheinungsjahr 2016
Sprache Englisch

Inhaltliche Metadaten

Fachgebiet Informatik
Abstract Open source libraries have high quality standards. And understandably so, since the more important and widely used a project becomes, the more essential it is to maintain it. But this at times affects one of the fundamental advantages of open source software - contributions. Strict quality requirements and harsh code reviews make the process of contributing patches discouraging, disappointing, and even stressful. In this talk, I will discuss tools and processes used by major Python libraries to maintain a high level of code quality and a robust code review culture. I will work through a list of people's code review fears with personal anecdotes, and how to deal with them and be more receptive to critical feedback. Through real examples taken from popular open source Python libraries, I will try to show what makes a good code review, what makes a bad code review, and what minor changes can turn the latter into the former.

Ähnliche Filme

Loading...