Training
A collection of expert-led training videos on C++ development, produced by Adobe's top engineers
Adobe Software Technology Lab's Better Code Seminar
The Better Code Seminar is an interactive and informative event designed to enhance your programming skills and elevate the quality of your code. Our goal is to provide you with a comprehensive understanding of the principles that underlie great code, based on the latest research and deep thinking in the field.
Better Code: Contracts
Does it sometimes feel like all computer systems are held together with duct
tape and good intentions? Do you have confidence that the code you write, and
the changes you make, are correct? What does “correct” even mean? How do we know
the code we write today won’t become a long-term liability? These persistent
questions can be enough to suck all the fun out of programming, but it doesn’t
have to be that way. In this talk, we’ll look at the connective tissue of good
code, and show how to keep it strong and supple. We’ll suggest replacing code
reviews with something better and chart the path to a more hopeful future of
software.
Dave Abrahams
Better Code: Algorithms - Preliminaries
A function is a fundamental building block in software development and a key
tool for designing efficient and maintainable systems. This talk looks at the
characteristics of a “good” function and provides practical guidance on when and
how to refactor and utilize existing libraries to develop Better Code.
Sean Parent
Better Code: Functional Design
Functional languages emphasize powerful, simple, and composable APIs, but you don't need to use these languages to benefit from their advantages.
This talk introduces functional design and showcases its application to several real-world problems. It covers denotational semantics and several math-based programming abstractions. Finally, functional solutions are compared with traditional ones.
No prior knowledge of functional programming is required for this talk.
David Sankel
Better Code: Reliable Types
Types are as fundamental as algorithms when architecting any software system. By
designing our types around relationships already in our code, and rigorously
upholding those relationships with our type invariants, we can build more
reliable systems that are easier to reason about. We cover type design and
making invalid states unrepresentable with algebraic data types.
Nick DeMarco
Better Code: Algorithms - Composition
Algorithm composition is the process of combining existing algorithms to create
new ones that solve complex problems. This talk looks at different forms of
composition with different trade-offs. The talk will inspire you to think of
algorithms as reusable building blocks that can be combined in novel ways.
Sean Parent