Past Meetup

Functional Architecture with Mark Seemann

This Meetup is past

92 people went

Empire State Building

350 5th Avenue · New York

How to find us

Make sure you bring an ID. You'll need to show it to the person at the front desk on the north side of the ground floor and tell them you're there for our group at the 67th floor conference room.

Location image of event venue

What we'll do

Functional Architecture: the Pit of Success

Object-oriented architects and developers have, over the years, learned many hard lessons about successfully designing systems with object-oriented programming. This has led to a plethora of ‘best practices’ that are painfully passed on from older to younger generations via books, lectures, consulting, blog posts, etc. Many of these ‘best practices’ must be explicitly taught, because they don’t evolve naturally from object-oriented programming. Surprisingly, many of these hard-won ‘best practices’ fall naturally into place when applying functional programming. Instead of deliberate design, functional programming forms pits of success where you naturally fall into the same ‘best practices’ that you have to deliberately work for in object-oriented programming. In this session, you’ll learn about a handful of such ‘best practices’, and how functional programming automatically lead you there, without your explicit effort.

A Functional architecture with F#

F# is a Functional language in the .NET framework; while most people still regard it as a niche language, it’s a Turing complete, general purpose language, so you can build almost any sort of application with it. However, with its strong focus on immutability, programmers used to Object Orientation struggle with creating a proper architecture for a Functional system.

One way to approach Functional architecture is to separate the system into abstractions for writing data, and abstractions for reading data.

A set of design patterns collectively known as Pipes and Filters provide a model for receiving and persisting data, while a programming model known as Map/Reduce addresses the concerns of reading (persisted) data and transforming it into useful boundary constructs.

Mark Seemann

Mark Seemann helps programmers make code easier to maintain. His professional interests include functional programming, object-oriented development, software architecture, as well as software development in general. Apart from writing a book about Dependency Injection he has also created several Pluralsight courses, and written numerous articles and blog posts about programming. Originally poised to become a rock star or (failing that) graphic novelist (in the European tradition) he one day found himself with insufficient talent for either, a master’s degree in Economics, and a desire for working with computers. He has been doing the latter intermittently since 1995. When not working with software or spending time with his family, Mark enjoys reading, listening to and playing music, as well as preparing or consuming gourmet food and wine.


6:30 - 7:00 Pizza/Socializing

7:00 - 8:30 Talk

8:30 - ??? Pub Time