Chapter 2. Creating Web Services with F#

Inside every large program, there is a small program trying to get out.

C.A.R. Hoare

Throughout my career, the things that intrigued me the most, such as design patterns, principles, and architectural approaches, often caused me to focus primarily on the service layer. With the heart of the application, and sometimes even the entire enterprise, encapsulated in these services, this also seemed like the most important place to be. While my focus has expanded over the years, those things that I found intriguing still drive most of my thinking. Additionally, services are still one of my favorite things to create.

With the shift that is moving many of those patterns, principles, and practices that we know and love to the client side, the role of services is changing. While this change should cause you to embrace client-side architecture and development with as much ferocity as you have the service layer, it doesn’t remove the need or importance of services acting as the workhorses of a solution. If anything, the shift provides better separation of concerns and improves the ability to create services that have a laser focus on the tasks that they are best suited to accomplish. By breaking a solution into small pieces that do specific things very well, the solution becomes more maintainable, extensible, testable, and easier to understand. Alex MacCaw, in The Little Book on CoffeeScript (O’Reilly), said it well: “The secret to building maintainable ...

Get Building Web, Cloud, and Mobile Solutions with F# now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.