Circumventing Conditional Comparisons
Often during the course of my day I come across code which evaluates the same conditional comparisons in multiple contexts. Understandably, this is rather typical of most software systems, and while it...
View ArticleOne-time function initialization
When developing Mobile Web Applications, even the seemingly marginal micro-optimizations can result in a noticeable performance improvement over time and, therefore should be implemented where...
View ArticleJasmine matchers for Sinon.JS
Lately I have been finding myself writing custom Jasmine matchers which wrap the Sinon.JS API as a convenience. After repeating this process quite a few times I took a step back to see if there was a...
View ArticleDecoupling Backbone Modules
One of the principle design philosophies I have advocated over the years, especially through various articles on this site, has been the importance of decoupling. And while I could go into significant...
View ArticleOrganizing Require JS Dependencies
When developing large scale web applications leveraging RequireJS, at times, even the most highly cohesive of modules will require quite a few other modules as dependencies. As such, maintaining the...
View ArticleManaging Client-side Templates with RequireJS
When developing single page web applications, patterns of structure, organization and reuse become ever more important. This especially holds true when there is a need to maintain mulitiple web...
View ArticleSimplifying Testing of Sign-up Processes
When testing the various steps of account sign-up, creation and activation processess, one must be mindful of designs which call for unique email addresses to be confirmed for each new account. While...
View ArticleFunction Modules in RequireJS
Having leveraged RequireJS as part of my preferred client-side web stack for some time now, I find it rather surprising how often I recall various features from the API docs which I have yet to use,...
View ArticleSimplifying Designs with Parameter Objects
Recently, while reading the HTML5 Doctor interview with Ian Hickson, when asked what some of his regrets have been over the years, the one he mentions, rather comically so as being his “favorite...
View ArticleTest First Workflow – A Short Story
As a depiction of the typical approach taken when solving a problem with Test First practices in mind, below is a brief excerpt from a recent conversation with a collegue who inquired of me as to how...
View ArticlePseudo-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 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 ArticleAtom Quick Tip
Often during the course of the day we spend a considerable amount of time dealing with repetitive tasks manually. It’s only after taking a step back to spend just a fraction of that time to find an...
View ArticleIIFE (Immediately-invoked Function Expressions)
When developing Mobile Web Applications, even the seemingly marginal micro-optimizations can result in a noticeable performance improvement over time and, therefore should be implemented where...
View ArticleNPM & Root Permissions
When dealing with NPM Permissions, often times it can be tempting to resort to installing modules as root (sudo), especially when under tight time constraints; where troubleshooting such issues will...
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 ArticlePrinciple of Least Knowledge
One very important (yet often overlooked) design guideline which I advocate is the Principle of least knowledge. The Principle of Least knowledge, also known as The law of Demeter, or more precisely,...
View Article
More Pages to Explore .....