20 common sense that you must know as a software engineer
| 22922 times |
Source: oschina [65 comments already exist] Comment
| Author: junwong |Add this information to favorites
As a good software development engineer, do you know the following common sense? Has it been summarized in actual work? Let's share with you the 20 common software development knowledge.
1. object-Oriented Design and Analysis: To improve Software maintainability, reusability, and rapid development, the brief OOAD and its solid principles should be kept in mind for every software engineer.
2. Software quality factors: the quality of software engineering is absolutely related to the quality factors of software. Please deeply understand this in the development process.
3. data structures and algorithms: a deep understanding of basic data structures such as arrays, lists, stacks, trees, graphs, and collections, and using good algorithms in key parts of the software development process. In this way, the entire software logic will be clear.
4. big-O symbol to mark algorithm complexity: during development, you must use the big-O symbol to compare the time complexity consumed by two code segments or different algorithms, this is very important in developing high-performance software projects.
5. UML diagram: UML diagram is a common software design and analysis language. If you haven't made a UML diagram while developing the software, you will feel that it is not software engineering at all.
6. correctly measure the software development progress.
7. design pattern: the design pattern is a set of standard countermeasure summarized by the predecessors in the process of solving various problems. In most cases, using these pattern is definitely more advantageous than a disadvantage. If you don't want to recreate a wheel during development, use it directly.
8. understanding the basic principles of the Operating System: because all applications run directly at the operating system level, learning the basic principles of the operating system gives us a better grasp of the underlying and performance of the application.
9. learning the computer composition principle: almost all applications and even operating systems need to deal with physical hardware, therefore, learning the computer composition principles is the same as understanding the operating system principles, which gives you a deeper understanding of applications.
10. Network basics: networks and computer components, operating systems, and transmission processes are closely related. Understanding the network basics helps you develop your skills.
11. Demand Analysis: for software engineering, demand analysis is the starting point of the project and the most important part of the entire project. If you make a mistake, the direction of the entire project will be wrong.
12. Software Testing: in software engineering, testing is also very important. Unit Testing, black box testing, white box testing, TDD, integration testing, and so on are all required.
13. independent Management: mainly refers to the management of class libraries (jar, DLL, etc.). It is very useful to use well-known tools such as Maven, ant, and lvy for class library management of large projects.
14. Continuous integration: continuous integration makes it easier and more automated to test large modules and components. You can learn about Hudson.
15. Orm: it is very helpful to understand hibernate's ing tool for objects and database tables. It can reduce your code volume and save your code maintenance time.
16. Di (independent injection): the implementation framework of Di or IOC (inversion of control) Spring makes it easier for you to create objects, especially for large enterprise-level projects.
17. Version Control System: the VSC tool (SVN, TFS, CVS, etc.) is very important for team development and version control. Skillful Use of such tools is essential.
18. Internationalization: Using i18n to store strings of different languages in other files is the best way for software to support multilingual languages. Therefore, we should understand the i18n methods used in different ides.
19. Architecture mode: It is critical to understand architecture modes like MVC, MVP, and mvvm, which allows you to write code that is easy to maintain, concise, and convenient to test.
20. write clean code: Your code is far from enough to run normally. It must be easily understood by programmers for subsequent maintenance, the code format and the easy-to-read code technology are all key points to understand.
From: oschina