I come from a computer background and has been an application architect for quite a few years. One of the key principles that we adhere to back then was the separation of layers at the application level. Those layers were:

  • User interface – the mouse clicks, commands syntax, bar codes, voice interaction, character recognition, motion detection, etc. New ways are being created or refined as we speak.
  • Business rules – the logic that understand the business and what needs to be done. If this layer is encapsulated properly, we do not have to reinvent the wheel when the user interface changes or when we need to optimize data storage.
  • Data – integrity of the data, knowledge about how the actual data is stored and optimized.

Before that time, logic that governs one layer bleeds from to another making the code very hard to maintain (and thus the term spaghetti code). The application layer itself is one of the layer of the computer model where all computing devices are separated into:

  • Application – each of the smartphone apps or programs like Excel where they have dedicated purposes. They do not need to know about the hardware because the enabling platform perform the detailed level of talking to the physical device on their behalf.
  • Platform – like Unix, Apple iOS, Android, etc. Their job is to ‘hide’ the details of the interface and coordination with the hardware from the application. They provide shared services to the applications so that the application programmers do not have to worry about that level of detail and therefore saving time and money and also sheltered from changes.
  • Hardware – hardware changes almost every few months with faster devices. By separating the hardware from the application, programmers do not have to rewrite their programs for each new version of CPU or scanner.

Computing expanded from pure number crunching to affecting almost every aspect of our lives. The speed with which things evolve is partly due to the power of the layered architecture. Without which, applications will stop working every new CPU, screen, printer. It is my belief that a similar “layering” concept can be applied to sports and martial arts and hopefully, will help create more adaptable athletes.

Exercise

You can choose to do one of them or both:

  • Given what you understand about martial arts, gymnastics or any specific sports, identify the similarity (or shareable components) between them
  • Separate out the combat triad into 3 layers and give examples.
The Layered computing architecture