Large-scale JavaScript Application Architecture
Developers creating JavaScript applications these days usually use a combination of MVC, modules, widgets and plugins for their architecture. They also use a DOM manipulation li...
You can find my latest AI engineering articles on Substack, leadership on LeadDev, or browse my topic guides and personal blog posts below.
Developers creating JavaScript applications these days usually use a combination of MVC, modules, widgets and plugins for their architecture. They also use a DOM manipulation li...
In a perfect world, cross-browser testing would be straightforward. We would download a legacy version of a browser, run it, and be able to instantly test our pages and scripts ...
In JavaScript, logical operators are used for boolean logic where a boolean value may be returned depending on the outcome of an expression. With the || (OR) operator, since val...
Today I'd like to talk about how you can involved with open-source, making the web a better place and standards. Interested? Hit the shiny play button below (or click here&n...
When we say an application is modular, we generally mean it's composed of a set of highly decoupled, distinct pieces of functionality stored in modules. As you probably know...
Before we start, I’d like to pose a question: when was the last time you asked someone to review your code? Reviewing code is possibly the single best technique to improve...
We all know that web standards are important. They help ensure the code we write works across different technologies, for people of different abilities and most importantl...
A brand new feature introduced in jQuery 1.7 is $.Callbacks, which we'll be taking a look at today. $.Callbacks are a multi-purpose callbacks list object and if you'...
I occasionally write about implementing design patterns in JavaScript. They’re an excellent way of building upon proven approaches to solving common development problems, ...
In this post, I'll be discussing both intermediate and advanced patterns and approaches for namespacing in JavaScript. We're going to begin with the latter as I believe ...
Whilst not new by any means, memoization is a useful optimization technique for caching the results of function calls such that lengthy lookups or expensive recursive computatio...
Today we're going to discuss an effective set of patterns for large-scale JavaScript application architecture. The material is based on my talk of the same name, last presen...
Untitled DocumentI was recently asked to review some code for a new JavaScript application and thought I might share some of the feedback I provided as it includes a mention of...
I believe it's one of our responsibilities as designers and developers to both advocate for best practices and encourage others to make the leap to using modern features for...
Welcome to Part 1 of a two-part tutorial on building complete mobile web applications in JavaScript using DocumentCloud's Backbone.js, jQuery Mobile and LABjs.In Part 1, I...
Today we'll be taking a look at the decorator pattern, a structural pattern that promotes code reuse and is a flexible alternative to subclassing. This pattern is also usefu...
Understanding the factors that impact performance is essential for the development of memory and data-intensive apps, especially those relying on JavaScript and DOM-manipulation...
In design patterns, the flyweight is considered one of the most useful classical solutions for code that's repetitive, slow and inefficient - for example: situations where w...
Design patterns are an invaluable tool for modern JavaScript developers, providing us with generalized reusable solutions to commonly occurring problems in application design th...
Hey guys. As a few readers have been asking about the 'Tools for jQuery Application Architecture' talk I gave at Web Directions in London, I wanted to make sure anyone i...
IntroductionThe concept of the JavaScript micro-framework has always existed, tackling tasks ranging from client-side templating through compact solutions for MVC-architecture a...
A well defined build process ensures that the output of your project is built in a consistent manner every time a new build is run. Today we're going to take a look at h...
This post is directed at jQuery users interested in building large applications. Quite often, when you discuss the options that are available for developing large-scale Ja...
Practical strategies for engineering careers in the future
A field guide and why we need to rethink our expectations
Engineering with user empathy is the foundation of great products
How to thrive in imperfect conditions
Navigating comparison with mindfulness
Actionable advice for empowerment
My lessons learned along the way.
Extending your influence past your immediate circle isn't as straightforward as you'd like to hope. But there are a few strategies you can employ to help.
Building a tech strategy requires a lot of moving parts. Learn about what routes to take and whether decisions should be top-down.
With so many developments in the tech world it's difficult to keep up. Here are some strategies to stay on top of your upskilling.
How can you prioritize when everyone's ask is an urgency and you don't have time to fit it all in?
It's time to examine the good, the bad, and the very ugly elements of context switching. Even better, we'll take a look at some strategies for managing it.
Software engineering teams should focus on outcomes over outputs to deliver the best user and business value.
Being a good software engineer is not necessarily the same as being an effective one. Here, Google's Addy Osmani identifies the ten key traits of effective software engineers.