I’ve been working with Backbone for years and it suited me pretty well. I do love its conciseness. It gives the desired abstraction and yet leaves you at the full control of your app. When you need to know what exactly is happening in your app behind your code, it’s matter of minutes to go though the Backbone annotated sources and figure out the flow. That’s something you hardly can afford with other frameworks such as Angular, React, Vue or Amber.
As developers we spend a lot of our time on debugging and particularly on spotting the source of a problem. DevTools guides us though the call stack, but the tracing process can be still pretty time consuming, especially on a cascade of asynchronous calls. The remedy here is early problem reporting. Let’s say we have a function to search trough a multidimensional structure for the elements containing a given string. We make a call that looks like legit:
Modern application get complex, we cannot go without automated testing. The canonical agile testing quadrants are split to technology-facing and business-facing tests. As for technology-facing testing I believe nowadays everybody has dealt with unit-tests. Thus we make sure that the smallest parts of the system act as intended in isolation. Also we use component tests to verify the behavior of large parts of the system and integration tests to check if communication between object isn’t broken.
CSS may look as a simple language. In fact it can be simple only to use, but definitely not simple to maintain. Observing that the maximum number of people who can productively simultaneously work on CSS is one – @threedaymonk The skills required to write good CSS code are by and large the same skills required to write good code in general. – Lea Verou Everybody who used to work on a large-scale projects knows how hard it can be to keep constantly growing CSS sources readable and consistent, styles reusable and loosely coupled.