Recently, a friend mentioned the design idea in a project:
To achieve a software similar to telecom value-added services (just like the system we often contact: "If the call fee is inquiry, press 1, pay, please press 2 ...")
His design idea is to make basic operations such as dialing, voice operations into an atomic operation. These atomic operating functions are very single, so
His achievement is very reliable. Then he realized a business rule layer, which is equivalent to a special language, and then there is an explanation.
The rule is converted into an atomic operation sequence so that the flexibility of the system is also high while ensuring reliability. If you want to add one
New business, if you don't join a new atomic operation, you can write a new business rule for a few minutes.
After listening to his narrative, my first reflection is the CPU instruction set, compiler, program code, is not very similar.
Many local hardware and software in the computer system have the same design ideas, and there are cache in the hardware system, and many servers in the software are in order to
Improve performance also use cache. There are hierarchical ideas in the hardware system, and there are software in the software. There is a pipeline structure in the CPU technology, and there is parallel processing in the software.
and many more. . .
So, I feel that if you do some software, you will know some of the software design capabilities. Because of hardware, software is many places
In communication, many ideas can be drawn. If someone is very proficient in hardware, it is very popular on the software, then he thinks him when he is developing software.
Designed system, the code written may be much stronger than the average person. Everyone's energy is limited, maybe this is a fantasy.
I have limited level, many understanding or understanding is not in place. For misleading, please forgive me.