Better Code: Relationships - Sean Parent - CppCon 2019

  Рет қаралды 45,786

CppCon

CppCon

4 жыл бұрын

CppCon.org
Discussion & Comments: / cpp
Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2019
-
Better Code: Relationships
Computer scientists are bad at relationships. Nearly every program crash is rooted in a mismanaged relationship, yet we spend most of our time discussing types and functions and not the relationships connecting them together. This talk looks at common ways data and code are connected in an application, how those relationships are typically represented, and the problems caused by the use, and misuse of these paradigms. Then we'll look at ways to model these relationships in C++ and use them to build correct applications.
-
Sean Parent
Sean Parent is a principal scientist and software architect for Adobe’s digital imaging group. Sean has been at Adobe since 1993 when he joined as a senior engineer working on Photoshop and later managed Adobe’s Software Technology Lab. In 2009 Sean spent a year at Google working on Chrome OS before returning to Adobe to work on mobile and web technology. From 1988 through 1993 Sean worked at Apple, where he was part of the system software team that developed the technologies allowing Apple’s successful transition to PowerPC.
-
Videos Filmed & Edited by Bash Films: www.BashFilms.com
*-----*
Register Now For CppCon 2022: cppcon.org/registration/
*-----*

Пікірлер: 13
@pazdziochowaty
@pazdziochowaty 4 жыл бұрын
I would add ranges and views as one more thing in C++20 which helps express relationships. Ranges give a meaning to a pair of iterators and views help better understand relationships between output from one transformation and input for another one.
@MrCOPYPASTE
@MrCOPYPASTE 2 жыл бұрын
God damn... I go to this same se of rules when I was implementing my NodeRelator class... It defined a lot of those relation operations and I could infer for example instancing on duplication of nodes... And it worked as a charm... Only took a couple of months do archive it... :)
@angelmarauder5647
@angelmarauder5647 4 жыл бұрын
Great! Thank you, CppCon~
@supersearch
@supersearch 4 жыл бұрын
Excellent conceptual talk. Relationships are in everything.
@Vermilicious
@Vermilicious 4 жыл бұрын
There are few of these talks I manage to bare through, but this one was pretty good, if not a bit esoteric and theoretic. At the end, I'm not quite sure what he actually meant - what was the conclusion? One central topic seems to be formality, and that is something I've felt as missing too. Formality in the form of "contracts" (how can/should this be used), parameter restrictions or guarantees (what is assumed), and how things interact over time in concurrency situations (who does what and when). Formality makes programs more robust, and less error prone. What is/was your intent? Be as specific as you can be.
@cynicist8114
@cynicist8114 3 жыл бұрын
The conclusion is to make your relationships concrete rather than incidental. Architect your software by designing and implementing structures rather than allowing them to be implied by the nature of what your software is doing. Make something concrete and you can reason about it, manipulate it, etc. If you don't, the incidental complexity will overwhelm you. So one example he gave is that he implemented this logic for determining elapsed time and then executing a task on that basis. That's not the most complicated thing, but you have to sit there and analyze the code a bit to determine what is going on, and you lack flexibility because you are relying on a global to determine the time, etc. Instead of doing that, encapsulate the logic into a concrete type or function, like a Timer, that everyone is going to instantly recognize and comprehend. Now you have some entity which can be passed as an argument and customized, lowering your dependencies, increasing flexibility, and making relationships more explicit.
@italoaugustooliveira9664
@italoaugustooliveira9664 2 жыл бұрын
Great talk.
@AceHardy
@AceHardy 4 жыл бұрын
👑🙏
@bocckoka
@bocckoka 4 жыл бұрын
operations *on a single* datatype are nonsensical, apart from currying, maybe. multiple dispatch is the way to go, as Bjarne said.
@joeedh
@joeedh 2 жыл бұрын
On around 50:25, gotta love the irony that the only regional dialect in America to invent a genderless plural pronoun is the South. Northern and West Coast people cannot bring themselves to use the genderless "y'all"--instead they clumsily try to de-gender "guy" when used anonymously or in plural form. But not when talking about their male buddies. It is absolutely hilarious, and I say this as a Northern Californian who has never been able to bring himself to use "y'all."
@zakeria
@zakeria 4 жыл бұрын
generic programming killed the object oriented star
@zakeria
@zakeria 4 жыл бұрын
Concepts came and broke ur heart
@RishabhRD
@RishabhRD 2 жыл бұрын
Andrie is looking for design by introspection
CppCon 2015: Sean Parent "Better Code: Data Structures"
1:04:00
Её Старший Брат Настоящий Джентельмен ❤️
00:18
Глеб Рандалайнен
Рет қаралды 8 МЛН
1❤️#thankyou #shorts
00:21
あみか部
Рет қаралды 86 МЛН
Каха инструкция по шашлыку
01:00
К-Media
Рет қаралды 8 МЛН
CppCon 2018: Jason Turner “Applied Best Practices”
1:03:19
All the Safeties: Safety in C++ - Sean Parent - CppNow 2023
1:28:03
Better Code: Runtime Polymorphism - Sean Parent
57:33
NDC Conferences
Рет қаралды 70 М.
CppCon 2016: Jason Turner “Practical Performance Practices"
1:00:29
Дени против умной колонки😁
0:40
Deni & Mani
Рет қаралды 12 МЛН
ПОКУПКА ТЕЛЕФОНА С АВИТО?🤭
1:00
Корнеич
Рет қаралды 1,8 МЛН
Cadiz smart lock official account unlocks the aesthetics of returning home
0:30
iPhone 15 Pro vs Samsung s24🤣 #shorts
0:10
Tech Tonics
Рет қаралды 14 МЛН