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

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ต.ค. 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/
    *-----*

ความคิดเห็น • 47

  • @barrettellisadair
    @barrettellisadair 7 ปีที่แล้ว +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 2 ปีที่แล้ว +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  2 ปีที่แล้ว +2

      Glad it was helpful!

  • @origamibulldoser1618
    @origamibulldoser1618 7 ปีที่แล้ว +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.

  • @allopeth
    @allopeth 5 ปีที่แล้ว

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

  • @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 ปีที่แล้ว +3

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

    • @camior1
      @camior1 7 ปีที่แล้ว +5

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

    • @Wimpielef
      @Wimpielef 7 ปีที่แล้ว

      Thx!

  • @andik70
    @andik70 7 ปีที่แล้ว +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 7 ปีที่แล้ว

      He mentioned that it should be enforced thought core review.

  • @qwertyuiop-cu2ve
    @qwertyuiop-cu2ve 10 หลายเดือนก่อน

    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.

  • @bhardwajutkarsh
    @bhardwajutkarsh 7 ปีที่แล้ว +1

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

  • @benoitjauvin-girard592
    @benoitjauvin-girard592 6 ปีที่แล้ว +7

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

    • @27182818284590452354
      @27182818284590452354 5 ปีที่แล้ว +2

      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.

  • @yondam1
    @yondam1 7 ปีที่แล้ว +1

    Clojure make programmer happier

  • @b33thr33kay
    @b33thr33kay 5 ปีที่แล้ว

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

  • @Spiderboydk
    @Spiderboydk 3 ปีที่แล้ว

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

  • @Xeverous
    @Xeverous 5 ปีที่แล้ว

    And now contracts are in C++20.

    • @kuhluhOG
      @kuhluhOG 4 ปีที่แล้ว +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 5 ปีที่แล้ว

    tough crowd

  • @dimitrisbenis7598
    @dimitrisbenis7598 6 ปีที่แล้ว +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 4 ปีที่แล้ว +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 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...

  • @gasquakestudios
    @gasquakestudios 7 ปีที่แล้ว +8

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

    • @Ivar77777
      @Ivar77777 7 ปีที่แล้ว +1

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

  • @videofountain
    @videofountain 7 ปีที่แล้ว +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 6 ปีที่แล้ว +6

      lol. You didn't understand his point.

  • @victorsavu7724
    @victorsavu7724 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +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 7 ปีที่แล้ว +27

      Nice trolling,
      ...man :)