Unconditional Code • Michael Feathers • GOTO 2018

GOTO Conferences · 61K views · 2018 · 44:19

Open on YouTube

Software architecture & designSoftware practice, open source & careerstalk

Why Hacker News recommends it

HN recommends it for the idea of giving data instead of asking for it, and ties it to zero values and exception-free design.

What it is

Michael Feathers' GOTO Chicago 2018 talk on reducing error checks and conditional logic in code. He offers a framework for handling errors and decisions at the level of code and architecture.

Recommended by 2 HN commenters across 2 different months, 2018 to 2021.

What Hacker News said

Recommends raghava · 2018-12 · on “Ask HN: Best talks of 2018?”

Blockchains Are a Bad Idea (James Mickens) [LINK] I find almost all from GOTO 2018 very insightful. [LINK] esp ones listed below. GOTO 2018 • The Do's and Don'ts of Error Handling • Joe Armstrong [LINK] GOTO 2018 • Pragmatic Event-Driven Microservices • Allard Buijze [LINK] GOTO 2018 • Why Business Cases are Toxic • Chris Matts [LINK] GOTO 2018 • Unconditional Code • Michael Feathers [this video]

Recommends hinkley · 2020-02 · on “You’re better off using Exceptions”

I was watching this the other day: [this video] Unconditional Code by Michael Feathers One solution to this problem is discussed toward the middle: giving data instead of asking for data avoids error conditions. Doing so pushes use of the data farther down the call tree and pulls acquisition up near the top, where we are closer to the user and thus able to more clearly decide what if anything to do about these corner cases.

Cites cratermoon · 2021-10 · on “Things Go needs more than generics”

Please no on the Universal nil. Meaningful zero values for types are essential. It may be confusing to some that nil is a valid zero value for some types and not others, in which case that needs to be refined, but having a type that can either be a value, a zero value, or a nil introduces complexity where there should be simplicity. Having a zero value enables, for example, Unconditional Programming: [this video]