The Eric Normand Podcast - podcast cover

The Eric Normand Podcast

Eric Normandericnormand.me
An off-the-cuff stream of Functional Programming ideas, skills, patterns, and news from Functional Programming expert Eric Normand of LispCast. Formerly known as Thoughts on Functional Programming.

Episodes

All about the time lens

In this episode, I introduce the time lens, and I posit a law about representing time in complex domains.

Sep 19, 202311 min

All about the volatility lens

In this episode, I introduce the volatility lens, which seeks to help us write code that deals with a changing world.

Sep 11, 202318 min

All about the architecture lens

In this episode, I introduce the architecture lens, its questions, and its goal of modeling architectural domains to manage complexity.

Jul 31, 202324 min

All about the executable specification lens

In this episode, I introduce the executable specification lens, its questions, and its goal of getting to runnable, testable code as quickly as possible.

Jul 24, 202315 min

All about the composition lens

In this episode, I introduce the composition lens, its questions, and its goal of figuring what's true when you perform multiple operations in a row.

Jul 10, 202314 min

All about the operation lens

In this episode, I introduce the operation lens, its questions, and its goal of capturing the use cases of your software.

Jul 03, 202320 min

Data lens

In this episode, I introduce the data lens, its questions, and its goals of capturing relationships among data values in data.

Jun 26, 202323 min

What are the domain modeling lenses?

I'm organizing my new book in terms of lenses. Each lens focuses our attention on one important aspect of software design. In this episode, I briefly introduce each lens.

May 29, 202321 min

What is the "reify to an interpreter" refactoring?

Eric Normand discusses the "reify to an interpreter" refactoring technique, which involves turning functions into data representations. He explains the steps to mechanically refactor mutation functions into data, using a pizza domain example. This allows for recording user actions and simplifies interpreter creation.

May 08, 20237 min

How to teach an essential skill in domain modeling?

One important skill in domain modeling is learning to see the semantics of your language, past the habits you've developed. To do that, it helps to see the same example in multiple languages. So how do I show examples in multiple languages without expanding the size of my book?

Apr 24, 202312 min

What is an isomorphism?

An isomorphism is a one-to-one mapping from two sets, and encoding your domain model involves finding a mapping between the real world and your code. So does domain modeling involve isomorphism?

Apr 17, 20235 min

What is the closure property?

I discuss the closure property, which creates operations that can be nested. It's one thing that makes an API feel like a DSL.

Jan 23, 20238 min

What is a mutation function?

Mutation functions let you represent changing state over time. They are easily reified, used as reducing functions, and can operate on nested data.

Dec 12, 20226 min

What is Signature-Driven Development?

Signature-Driven Development means starting with function signatures before you implement them. I also discuss why we implement the hardest function first.

Dec 06, 202211 min