10
Building the Router DSL
In this chapter, we will continue using the metaprogramming skills learned in Chapter 8 to make Goldcrest easier to use and adopt. In the previous chapter, we used metaprogramming to create a DSL around our controller and view modules. Doing this eliminated a lot of boilerplate code while significantly increasing the readability of those modules. We also added reflections and test helpers to allow us to test and debug those modules well. In this chapter, we will do the same for the router module. Similar to Chapter 9, we will start by defining the requirements for our router interface, see why metaprogramming makes sense for this use case, and finally, build the DSL along with high reflectivity and testability.
Get Build Your Own Web Framework in Elixir 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.