CppCon 2016: David Sankel “Building Software Capital: How to write the highest quality code and why"

  Рет қаралды 41,085

CppCon

CppCon

7 жыл бұрын

CppCon.org
-
Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/cppcon/cppcon2016
-
This talk discusses the ins and outs of how to write software that is at such a high standard that it gets reused everywhere. It covers organization, design, infrastructure, testing, documentation, reviews, and general suggestions based on my experience in the industry.
-
David Sankel
Bloomberg
New York, New York
David Sankel is a professional software developer/architect based in the USA and an active member of the C++ Standardization Committee. His prolific software developments have included CAD/CAM, computer graphics, visual programming languages, web applications, computer vision, and cryptography. He is a frequent speaker at the C++Now conferences and is especially well known for his advanced functional programming in C++ talks. David’s interests include large-scale development, dependently typed languages, semantic domains, EDSLs, and functional reactive programming. David's current research interests include dependently typed languages, semantic domains, EDSLs, and functional reactive programming. He currently works for Bloomberg.
-
Videos Filmed & Edited by Bash Films: www.BashFilms.com
*-----*
Register Now For CppCon 2022: cppcon.org/registration/
*-----*

Пікірлер: 47
@barrettellisadair
@barrettellisadair 7 жыл бұрын
I wholeheartedly recommend this talk to any developer or stakeholder of software, regardless of programming experience. It would not be an exaggeration to say that I agreed with every sentence. From a public speaking perspective, this was an *excellent* presentation. There is not an ounce of fluff, repetition, or hesitation, which is rare for a 60 minute technical presentation. David was very well-prepared; he delivered flawlessly. The Q & A session is historically the most dreadful aspect of a C++ conference talk, yet David fielded the questions and comments with grace and confidence. By the way, you won't want to miss the comments from Dr. John Lakos near the end. Interestingly, this talk is almost entirely devoid of C++ code or lingo (despite David's achievements in the field). This video will resonate with anyone who has ever developed software, and I hope this is shared far and wide. This is a real CppCon gem.
@magfal
@magfal Жыл бұрын
I credit this video as the most important video I've watched with an appreciable margin. It's lessons are among the key reasons that the company that I helped found is outclassing companies 100+ times our size whenever a customer has to choose between us or them. Reading the machine that changed the world is also a brilliant read if you understand the value of this talk.
@CppCon
@CppCon Жыл бұрын
Glad it was helpful!
@allopeth
@allopeth 5 жыл бұрын
Amazing talk, really inspiring. Loved Lakos' intervention at the end =)
@origamibulldoser1618
@origamibulldoser1618 7 жыл бұрын
"Watch the first 15 minutes of this talk" .. That's exactly what I would have done if I thought it possible to achieve in my current job.
@davidmott2090
@davidmott2090 7 жыл бұрын
Story of my life. thanks for this.
@MrAbrazildo
@MrAbrazildo 3 жыл бұрын
I guess it's important to start writing something, instead of just planning. And then sooner than later, make the software capital on top of a borning "debt". 57:05, sometimes the code is already nice, efficient and polished enough to not be touched. 57:40, there are hirable companies that make tons of tests, from the user perspective. You can earn a certificate from them, and then show it to other clients, when your app has less bugs than a certain margin.
@Wimpielef
@Wimpielef 7 жыл бұрын
@40:38 Which clang tool can be used to update your code to C++11?
@camior1
@camior1 7 жыл бұрын
It used to be called clang-modernize, but that functionality has been moved to clang-tidy.
@Wimpielef
@Wimpielef 7 жыл бұрын
Thx!
@bhardwajutkarsh
@bhardwajutkarsh 7 жыл бұрын
@25:00: Did you not consider using policy design pattern. ;)
@andik70
@andik70 7 жыл бұрын
More nitpicking: 31:03 how can a void function return a value. Ok this was mentioned then ard 47:30. But too easily dismissed. It is actually a core problem. How do you sync contract and code; if it even cannot do in a presentation.
@Houd1ny
@Houd1ny 7 жыл бұрын
He mentioned that it should be enforced thought core review.
@qwertyuiop-cu2ve
@qwertyuiop-cu2ve 8 ай бұрын
I don't fully agree with the innovation part. It has to be an actual improvement, or useful additional feature, not just a slightly different syntax.
@yondam1
@yondam1 7 жыл бұрын
Clojure make programmer happier
@benoitjauvin-girard592
@benoitjauvin-girard592 6 жыл бұрын
IT'S "PRINCIPLE", NOT "PRINCIPAL". Oh, that drives me nuts.
@27182818284590452354
@27182818284590452354 5 жыл бұрын
No, it's “principal” here, as he uses terms of economics.
@perfectionbox
@perfectionbox 3 жыл бұрын
Just become a big company like MS or Adobe and then you can afford to create software capital.
@rickdg
@rickdg 5 жыл бұрын
tough crowd
@b33thr33kay
@b33thr33kay 4 жыл бұрын
Why does he pronounce "technical" like "tactical"? Is this a common pronunciation in some country?
@Xeverous
@Xeverous 5 жыл бұрын
And now contracts are in C++20.
@kuhluhOG
@kuhluhOG 3 жыл бұрын
one side of contracts another would be something like that: int do_something(int i); i must be positive the return value is going to be between 500 and 600 that would also be a form of a contract
@Spiderboydk
@Spiderboydk 2 жыл бұрын
27:57 If a contract is violated, the entire contract it NOT automatically void.
@yondam1
@yondam1 7 жыл бұрын
just use clojure problem solve.
@yondam1
@yondam1 7 жыл бұрын
are you c++ programmer?
@Evan490BC
@Evan490BC 5 жыл бұрын
@Robert w In that case that should've been (solve problem), though...
@dimitrisbenis7598
@dimitrisbenis7598 6 жыл бұрын
Well... This kind of talk should not be more that 15 minutes. All the rules were common sense and many times repeated in artircles, books, etc...- no rocket science:-) Anyway worths watching for entry level software engineers..
@Boopadee
@Boopadee 4 жыл бұрын
This stuff is common sense for software engineers but certainly not for many programmers. I just got off a team where technical debt was rampant. It was led by a software engineer but simultaneously had no other engineers and loads of pressure from management to get it done "fast", quality be damned
@gasquakestudios
@gasquakestudios 7 жыл бұрын
This guy is very arrogant in the question portion of the talk.
@Ivar77777
@Ivar77777 7 жыл бұрын
Yeah, I agree, not the best attitude from such a smart guy! Maybe he was just tired :-)
@videofountain
@videofountain 7 жыл бұрын
Showing a picture of a baby and commenting on beauty is unnecessary and rude. Why would he have such a bizarre interest in that topic for a CppCon presentation?
@numv2
@numv2 6 жыл бұрын
lol. You didn't understand his point.
@victorsavu7724
@victorsavu7724 7 жыл бұрын
It really pains me to hear "man" to refer to "developer" as if "adding more women" to the team was out of the question to begin with :( I only listened to the first 10 min yet. I hope there is a twist at some point where the speaker breaks the fourth wall and says: "Are your ears bleeding because of the utter ignorance with regards to the merits of having gender agnostic presentations? Good! Let's continue the talk in a considerate and inclusive tone to make everyone feel welcome and most importantly to let everyone who is listening know that they __are__ the target audience."
@SaiTorrKalFas
@SaiTorrKalFas 7 жыл бұрын
I am not quite sure, but I think what you refer to, and if I remember the talk correctly, David is referring to "the man" as "the boss", "some stakeholder that tells you what to do". en.wikipedia.org/wiki/The_Man
@victorsavu7724
@victorsavu7724 7 жыл бұрын
Firstly, reading my comment again, it does come across as aggressive and I really didn't mean it to be. I was trying to be "witty" and I ended up patronizing. I am sorry about that. I would like to clarify my message: The speaker used at least two cultural references, one which you correctly identified ("The Man") and one in the plot at 1m6s, which set up the stage very well for a remark along the lines of that in my initial comment. To clarify regarding the plot, though the speaker does make a reference to "The Mythical Man-Month" (en.wikipedia.org/wiki/The_Mythical_Man-Month), using "developers" instead of "men" would not have confused the audience: "Wait... he was talking about developers on a project. How is that related to Man-Months?" It is true that a lot of historical references do make the simplification "s/developer/man" or even "s/manager/Man" for reasons which sadden me, so I wanted to propose that the speaker could point out these problems in order to re-connect with the general audience. The problems are intrinsic to the references and using the references does not make the speaker accountable for them, but the speaker is responsible to make the general tone of the talk equally engaging for all the people in the target audience group. It may be that there are several target audience groups for the same talk (e.g. "specialists" vs "enthusiasts") which may receive slightly different amounts of "attention". That is fine especially if there is some forewarning when the difference is considerable in order for the listeners to make an informed decision about their time investment. My message is that for a technical (or scientific) talk, it is a bad sign when the separation of target audience groups ends up correlating with the lines between genders, races, religions, nationalities, sexual orientation, etc.
@ashw6015
@ashw6015 7 жыл бұрын
Don't apologise for your aversion to ignorance. His gender biased speech is jarring and embarrassing. I actually can't watch it.
@victorsavu7724
@victorsavu7724 7 жыл бұрын
The first time I could only go through the first 10 minutes before I had to close it and watch something else. It is very strange because it's not something I can put my finder on and I just feel like we should have an active conversation on this matter in the community. It is a real pity because everyone is so bright and forward thinking in topics they are interested in. If only we were more interested in having an inclusive and welcoming environment, highly intelligent people like the speaker himself might actually contribute ideas to improve the status quo and swiftly get rid of this embarrassing situation.
@heyheyhophop
@heyheyhophop 7 жыл бұрын
Nice trolling, ...man :)
CppCon 2016: Nat Goodspeed “Elegant Asynchronous Code"
54:59
Заметили?
00:11
Double Bubble
Рет қаралды 2,8 МЛН
100❤️ #shorts #construction #mizumayuuki
00:18
MY💝No War🤝
Рет қаралды 20 МЛН
David Sankel :: The Semicolon is a Lie
38:13
CoreCppIL
Рет қаралды 1,2 М.
C++ Code Smells - Jason Turner - CppCon 2019
58:35
CppCon
Рет қаралды 76 М.
CppCon 2017: Chandler Carruth “Going Nowhere Faster”
1:00:58
Заметили?
00:11
Double Bubble
Рет қаралды 2,8 МЛН