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

Sdílet
Vložit
  • čas přidán 4. 10. 2016
  • 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/
    *-----*

Komentáře • 47

  • @barrettellisadair
    @barrettellisadair Před 7 lety +31

    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 Před 2 lety +3

    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  Před rokem +2

      Glad it was helpful!

  • @allopeth
    @allopeth Před 5 lety

    Amazing talk, really inspiring. Loved Lakos' intervention at the end =)

  • @origamibulldoser1618
    @origamibulldoser1618 Před 7 lety +2

    "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 Před 7 lety

    Story of my life. thanks for this.

  • @MrAbrazildo
    @MrAbrazildo Před 3 lety

    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 Před 7 lety +3

    @40:38 Which clang tool can be used to update your code to C++11?

    • @camior1
      @camior1 Před 7 lety +5

      It used to be called clang-modernize, but that functionality has been moved to clang-tidy.

    • @Wimpielef
      @Wimpielef Před 7 lety

      Thx!

  • @andik70
    @andik70 Před 7 lety +2

    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 Před 7 lety

      He mentioned that it should be enforced thought core review.

  • @bhardwajutkarsh
    @bhardwajutkarsh Před 7 lety +1

    @25:00: Did you not consider using policy design pattern. ;)

  • @qwertyuiop-cu2ve
    @qwertyuiop-cu2ve Před 9 měsíci

    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.

  • @benoitjauvin-girard592
    @benoitjauvin-girard592 Před 6 lety +7

    IT'S "PRINCIPLE", NOT "PRINCIPAL". Oh, that drives me nuts.

  • @perfectionbox
    @perfectionbox Před 3 lety

    Just become a big company like MS or Adobe and then you can afford to create software capital.

  • @yondam1
    @yondam1 Před 7 lety +1

    Clojure make programmer happier

  • @b33thr33kay
    @b33thr33kay Před 5 lety

    Why does he pronounce "technical" like "tactical"? Is this a common pronunciation in some country?

  • @Spiderboydk
    @Spiderboydk Před 2 lety

    27:57 If a contract is violated, the entire contract it NOT automatically void.

  • @Xeverous
    @Xeverous Před 5 lety

    And now contracts are in C++20.

    • @kuhluhOG
      @kuhluhOG Před 4 lety +1

      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

  • @rickdg
    @rickdg Před 5 lety

    tough crowd

  • @dimitrisbenis7598
    @dimitrisbenis7598 Před 6 lety +5

    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 Před 4 lety +2

      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

  • @yondam1
    @yondam1 Před 7 lety

    just use clojure problem solve.

    • @yondam1
      @yondam1 Před 7 lety

      are you c++ programmer?

    • @Evan490BC
      @Evan490BC Před 5 lety

      @Robert w In that case that should've been (solve problem), though...

  • @gasquakestudios
    @gasquakestudios Před 7 lety +8

    This guy is very arrogant in the question portion of the talk.

    • @Ivar77777
      @Ivar77777 Před 7 lety +1

      Yeah, I agree, not the best attitude from such a smart guy! Maybe he was just tired :-)

  • @videofountain
    @videofountain Před 7 lety +5

    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 Před 6 lety +6

      lol. You didn't understand his point.

  • @victorsavu7724
    @victorsavu7724 Před 7 lety +31

    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 Před 7 lety +15

      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 Před 7 lety +3

      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 Před 7 lety +8

      Don't apologise for your aversion to ignorance. His gender biased speech is jarring and embarrassing. I actually can't watch it.

    • @victorsavu7724
      @victorsavu7724 Před 7 lety +1

      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 Před 7 lety +27

      Nice trolling,
      ...man :)