You may have heard the advice that maintainable software is build using highly cohesive and loosely coupled building blocks. This is a statement that’s easy to remember, but difficult to understand. This article will clarify cohesion and coupling. Cohesion According […]

Understanding Cohesion and Coupling

Logging Reference Types
Following the previous post about principles of debugging web applications, it is time to explore JavaScript debugging in practice. Browser Developer Tools My personal favorite is the Chrome Developer Tools. Safari and Firefox don’t match the high standards set by […]

JavaScript Debugging Tips and Tricks

Regardless of our coding skills we all make mistakes. Bugs do not only appear in our own code. Most web-applications are created by teams, and your teammates have the same right to make mistakes as you do. In addition, inheriting […]

Principles of Debugging Web Applications

JavaScript made its way from being a toy language for simple animations to becoming a language for client side and server side web application development. Some generic concepts also made their way to the JavaScript world and developers become more […]

Cloning Objects in JavaScript

Reference Types
JavaScript does not give you full access to your data structures in memory. However, reference types still exist in the language. Mixing value and reference types comes with unwanted side-effects and bugs. Understanding the difference between value and reference types […]

Understand Value and Reference Types in JavaScript

Developing and maintaining web applications requires code changes of excellent quality. When a team develops an application for years, team members lose track of some updates. Developers tend to make more mistakes when touching code they are not familiar with. […]

My 8 Step Code Review Process

Most people work about 40 hours a week, some more, others less. Given that you have 168 hours a week, maximizing your achievements does not scale with maximizing the amount of time spent on work. Instead of focusing on quantity, […]

Ten Productivity Tips for Software Developers

One of the most powerful features of SinonJs is the ability to create a fake server. This feature is very useful when unit testing a component that’s connected to a server via an API. Fake servers let you write real […]

Fake Servers in SinonJs

Writing maintainable code is not easy in any frameworks or libraries. The fact that BackboneJs does not tie your hands makes your work even harder. Therefore, I will give you ten tips on tidying up your Backbone code. While some […]

Ten Tips for Writing Maintainable Code in BackboneJs

Tests suites tend to grow together with applications. It is quite common that you need a significant amount of time to execute all your unit tests. Under these circumstances, you cannot afford to waste 5 secons on waiting for a […]

Fake Timers with SinonJs

This is part 5 of the automating testing series with Mocha, Chai and SinonJs. Part 1 and part 2 introduce the Mocha automated testing framework and the Chai assertion library. We then learned how to use SinonJs spies and stubs. […]

SinonJs Mocks