3 Abstractions for Building Better Forms

Our primary goal is to build forms that are completely composable, meaning that we should be able to take two completely different forms, snap them together like LEGO bricks, and then drop them on a page without needing to sacrifice a goat or a kidney to the Form-Gods. To do this, we will split our forms into three different levels of abstraction.

Since abstraction is a fancy word that gets bandied about regularly in buzz-word bingo, so let’s be clear about what I’m talking about.

The Good

“The purpose of abstraction is not to be vague, but to create a new semantic…

FP and JavaScript

I absolutely love functional programming (FP). For me it is like Vim — once I committed to learning it, it is hard to imagine life differently. However, many people take an all-or-nothing perspective which can be both confusing and overwhelming to a beginner.

Historically, there are two camps that the FP community have divided into. Pure languages: such as Miranda and Haskell which are pure implementations of lambda calculus; and impure languages: such as Scheme and Standard ML which augment lambda calculus with various effects including assignment, exceptions, and continuations (Walder 1995). …

Creating modular validations for JavaScript/React

Last year my company was hired to rebuild and extend a 20 year-old system that managed all of the educational programs, grant applications, and data collection across all middle, secondary, and postsecondary schools for an entire state. With hundreds of unique forms, we knew from day one there would be a lot of validations on this project, but we didn’t really think that much of it because after all, they’re just validations — we’ve done lots of those. However, after validations started requiring intermittent refactoring to handle emerging or undiscovered requirements when features became integrated, hard lessons reminded us that…

Prescott Breeden

Full-stack software developer at Amplify Consulting Parterns.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store