Pseudo-abstraction in Backbone
As has been mostly disseminated, JavaScript, being a dynamic, prototypal language, affords developers the ability to design outside the rigid confines inherent to statically typed languages....
View ArticleFluent APIs and Method Chaining
Of the vast catalog of Design Patterns available at our disposal, often times I find it is the simpler, less prominent patterns which are used quite frequently, yet recieve much less recognition; a...
View ArticleBDD/TDD Mental Models
Recently, I shared a simple 8-step procedure with my team which outlines some of the general questions I tend to ask myself when writing tests, even if, perhaps, only subconsciously so. While quite...
View ArticleQuick Tip: Backbone Collection Validation
Often times I find the native Backbone Collection implementation to be lacking when compared to it’s Backbone.Model counterpart. In particular, Collections generally lack in terms of direct integration...
View ArticleIIFE in ES6
Unlike ES5, which is syntactically less opinionated, in ES6, when using an IIFE, parenthetical order matters. For instance, in ES5 an IIFE could be written either as: // parentheses wrap expression and...
View ArticleSimplified Partial Application with ES6
When implementing Partial Application in ES6, implementations naturally become quite easier to reason about as default parameters, rest parameters and arrow functions can be leveraged to provide a much...
View ArticleReact PropTypes and ES6 Destructuring
At times one may be justified in the argument that cognitive (over)load is just an expected part of the overall developer experience. Fortunately, there are numerous steps we can take to minimize the...
View ArticleSeparation of Concerns: propTypes and Immutable.js
When considering the separation of concerns between Container and Presentational Components (stateful / stateless components), I find it useful to leverage the core concepts of these patterns in order...
View ArticleSynchronizing package.json with yarn.lock
After having used Yarn almost exclusively for the past couple of years, there has been one nagging issue which seemed to continually crop up. Specifically, the inability to have a project’s...
View ArticleFacilitating Reuse with TypeScript Generics
As is so often emphasized in my articles, facilitating reuse is perhaps one of the most import aspects of system design. For over a decade, languages such as Java, and C# have used generics as one of...
View ArticleCode Review Essentials
Code Reviews are an essential part of Software Engineering, providing numerous benefits for teams and the products they deliver. Having spent a significant amount of time conducting them for many years...
View ArticleFront-End System Design: 12 Fundamentals You Need to Know
To commemorate the 20th Anniversary of this Blog, I wanted to publish an Article which would stand the test of time; providing value to developers of all levels; both now, and for many years to come....
View Article