PurelyFunctional.tv Newsletter 463: What is beautiful code?
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 463 – March 02, 2022 · Archives · Subscribe Clojure tip ? what is beautiful code? I’ve been reading Coders at Work by Peter Seibel and in the interview with Fran Allen, Seibel asks “What makes a program beautiful?” Her answer surprised me with its insight: That it is a simple straightforward solution to a problem; that has some intrinsic structure and obviousness about it that isn’t obvious from the problem itself. I love the answer. To paraphrase: “The solution is obvious, but it isn’t obvious from the problem itself.” It reminds me a lot of Aristotle’s advice for a good ending to a ..read more
Visit website
PurelyFunctional.tv Newsletter 462: PurelyFunctional.tv Migration
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 462 – February 21, 2022 · Archives · Subscribe Housekeeping ? PurelyFunctional.tv Migration A little housekeeping this week. I’m migrating all of my video courses from PurelyFunctional.tv to a new platform called Podia. In fact, that has been the only way to get access to them for about a year. As I’ve said before (but maybe not enough times?), I’m going to totally remove access to the videos on PurelyFunctional.tv on March 7. Current members’ subscriptions have already been canceled, so no one will be charged. Even after you’ve been canceled, you still have access until your expiration ..read more
Visit website
PurelyFunctional.tv Newsletter 461: Rules of thumb don’t scale
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 461 – February 7, 2022 · Archives · Subscribe Follow-up ? Last week’s issue was confusing. There were lots of ideas swirling around. Here they are in bullet form: We should analyze the structure of the domain. An important structural feature is alternative. We should analyze the features of our language for ways to represent that alternative. I identified three in Java: enum, interface, and data class. There are probably more. We need a principled way to choose between them when designing our software. We need to consider the semantics of the language feature and choose one that meets ..read more
Visit website
PurelyFunctional.tv Newsletter 460: Interface polymorphism
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 460 – February 01, 2022 · Archives · Subscribe Design Idea ? Interface polymorphism This essay continues the series about Domain Modeling. Java and similar languages have the idea of an interface. An interface is useful because it allows you to add new implementations without modifying the original. Interfaces provide extension points. But when should we insert an extension point? We should insert one when you have to encode a set of alternatives—and you need to add new alternatives at a slower cadence than your release cycle. If you squint at your domain, you can see alternatives. They ..read more
Visit website
PurelyFunctional.tv Newsletter 459: Revisiting the open/closed principle
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 459 – January 17, 2022 · Archives · Subscribe Design Idea ? Revisiting the open/closed principle This essay continues the series about Domain Modeling. I’ve been thinking about domain model evolution. And that brought me to the open/closed principle. The open/closed principle is the O in SOLID, a collection of software design guidelines widely supported in the OOP community. Once again, I found that Clojure has a perfect answer to the problem the principle tries to solve. The open/closed principle has always been my least favorite of the SOLID principles. It states that “software entiti ..read more
Visit website
PurelyFunctional.tv Newsletter 458: Three doorways of domain modeling
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 458 – January 10, 2022 · Archives · Subscribe Design Idea ? Three doorways of domain modeling This essay continues the series about Domain Modeling. I have come up with a three-level model for the skills in domain modeling, which will linearize the material from most fundamental to least fundamental. The three levels, more fundamental first, are: data modeling, operations first, and algebraic composition. When I wrote Grokking Simplicity (GS), I created a three-level model of functional programming (FP). When teaching complex material, you need to linearize it. And, of course, you need ..read more
Visit website
PurelyFunctional.tv Newsletter 457: Take a stance
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 457 – January 03, 2022 · Archives · Subscribe Design Idea ? Take a stance This essay continues the series about Domain Modeling. “But what if my model isn’t flexible enough? I can’t predict the future.” I hear fears like this whenever I suggest defining the domain model. People often prefer the messy tangle of if statements to a clear and orderly model. Let’s address this fear from several angles since there are likely different causes behind it. 1. No need to worry: Your domain model is certainly wrong already! You can’t know how wrong it is until you write it down. Are you afraid of l ..read more
Visit website
PurelyFunctional.tv Newsletter 456: A sense of mystery
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 456 – December 27, 2021 · Archives · Subscribe Design Idea ? A sense of mystery This essay continues the series about Domain Modeling. As you may know, I’ve been reading the ACM Turing Award lectures in order, starting with the first by Alan Perlis on my podcast. It’s essential to understand the past, and these lectures give a snapshot of what was significant each year. One thing that I think is missing from today’s landscape is a sense of awe and mystery at the phenomenon of computing. I grew up on the likes of Carl Sagan and Richard Feynman. They always stressed the importance of the ..read more
Visit website
PurelyFunctional.tv Newsletter 455: How and when to apply domain modeling
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 455 – December 21, 2021 · Archives · Subscribe Design Idea ? How and when to apply domain modeling This essay continues the series about Domain Modeling. During my re:Clojure talk Q&A, Filipe Silva asked whether I had successfully applied domain modeling to a real project. I wasn’t prepared to answer it, and it seemed like a process question, so I took it as such. But I’ve since had time to think about it, and I have realized that I do indeed have successes to report. For brevity’s sake, I’ll focus on one interesting success that shows that domain modeling doesn’t have to be all-or ..read more
Visit website
PurelyFunctional.tv Newsletter 454: Not a prescriptive process
PurelyFunctional.tv
by Eric Normand
2y ago
Issue 454 – December 13, 2021 · Archives · Subscribe Design Idea ? Not a prescriptive process This essay continues the series about Domain Modeling. On December 04, I presented a 25-minute version of the organization of my notes on Domain Modeling. It was good to synthesize the information into a presentable form. I’m glad I gave the talk and learned important things. And I’m grateful to the audience for being a sounding board for incomplete ideas. It really does help to know how my material will be received before I commit to it. I learned that there is a great desire to do better design, at ..read more
Visit website

Follow PurelyFunctional.tv on FeedSpot

Continue with Google
Continue with Apple
OR