# Some thoughts for CS methodology

### 关于手段与目的, 具体技术与使用场景

cs本身的知识 还是说cs在某一个场景下的应用

### 系统性思维

https://thesystemsthinker.com/systems-thinking-what-why-when-where-and-how/

### Consider interface first

This is also typical when we set the header part of the file. For example when we write sth into a file, the length of the header is always fixed. This part can contain more informations about the actual contents. Maybe there are some resoundant space in this part, but it is necessary to make it fixed.

### The namespace and the isolation

It is natual to scope your code or things to do into a specific space, or privilage. For the program level, when you create a class, you may make some varaibles or some functinos private and make others public. For the program level, you may need to use the namespace to scope the avaliblity of the varaible to avoid the conflicts with other system library. Even if there is no capability of the namespace for programming language such as c, we may set a scope prefix manually such as projectname_var1. This is because it is easy to confuse the name with other libraraies, there are some common keywords such as file, memory, which are used widely in different libraries.

### How to understand a new software system or introduce your system to others

The hierarchical architecture is the natural idea in the domain of cs. When you discuss the system, you may first divided it by software system and the hardware system. Then for the software system, you may consider it from the aspects of data flow and control flow (data management layer/middleware layer and application layer). Or maybe there is a lower level layer such as communication layer. Anyway, by describing the system from these aspects, you may figure out it quickly. Or when you try to introduce your system to others, it is natual to consider things by this way. And the introduction can be also in a systamatical way. It is much easier to describe your contribution or what you work on by this way and to see it’s location in the whole system.