Original article: http://www.cnblogs.com/salomon/archive/2012/07/26/2609590.html
As a common programmer, consider implementation details. In practice, the so-called "technology" has nothing to do with the language to a large extent. It is a second question not to worry about the language. Programmers will consider a lot of things, such:
1. process Communication: Interprocess Communication IPC, large commercial software, viruses, anti-virus software, and so on all involve inter-process communication issues, which cannot be avoided during development, it is also the biggest impact on efficiency and security. Accidental handling will seriously affect the software quality. In summary, inter-process communication is huge.
2. asynchronous programming: this is a big part of content that avoids the "false dead" ui or software execution efficiency and considers multithreading or asynchronous programming, different Languages have different implementation mechanisms. Taking C # as an example, Microsoft has defined a series of multi-threaded operation modes and Synchronization Methods to help programmers. This section is a separate introduction.
3. memory Management: memory management, delayed start, cold start, and hot start should be considered for hardware restrictions and efficiency security issues. Memory Management is also a large part, which involves memory leakage, C # garbage collection and so on. The problem of delayed start and cold start and hot start is always ignored, but this item can affect user experience most, speaking of this, I would like to mention that I was a loyal user of thunder, but I cannot stand the start time of thunder. I doubt that I did not consider these things during software development, so I uninstalled it and used the simple version of thunder.
4. interaction between languages: As mentioned above, many software are not written in the same language. This involves multi-language interaction. Different Languages have different syntax semantics and different technical details, to create a common protocol for interaction, there are many issues to consider, such as boudary security, interface efficiency, and memory management.
5. remote method call: In fact, I just want to talk about Windows Service and Web Service. In actual applications, services are everywhere, and services are not as good as common applications, it seems inappropriate to put this article here. It is mainly because the programmers around me are not very familiar with the service.
The above technology is a cross-cutting part, and only some of the content is displayed, there are still a lot of content that have not been taken into account for future completion, all of this is for the security, robustness, efficiency, scalability of the applications developed by yourself, this is the second stage of the so-called advanced programmer. At this stage, you have been freed from the constraint of language and can begin to soar in the sky of real technology.