Recommend a book -- the law of construction

Posted by ILMV on Mon, 10 Jan 2022 06:44:16 +0100

Recommend a book called the law of construction.

The book is divided into 17 chapters. The author is Zou Xin. This book tells the author's unique views on programming and project engineering.

It's amazing and amazing to read. I feel like I'm wasting my life without reading this book. (the golden beginning method is full of force and strong sense of substitution)

(the author of this kind of book knows to deceive people and write some messy bastards in the book. Maybe the guy who wrote the book doesn't understand it and writes down what "inspiration" he has. Anyway, I just read it casually, write down what definitions and good ideas I encounter, check online if I'm interested, and skip if I don't understand or don't want to read.)

On the left is the directory (Baidu copy), and on the right is the personal understanding of what he said.

Chapter 1 Introduction / 15
1.1 software = program + software engineering

Software=Single program+Software development process. The software development process includes: construction management, source code management, software design, software testing and project management.

1.2 what is software engineering

Software enterprise=Software+Ways to win users(Marketing means). 

1.3 practice and discussion

There are four categories of software projects:
Build To Learn: Making software for further experiments and trying to find out the objective laws or the advantages and disadvantages of an experimental method is of no use except to make yourself happy. Example: for scientific research papers, we focus on training software made in a few hours.
Build To Show: In order to develop some software for demonstration purposes, but the function may not be comprehensive. Example: I am participating in the "Chinese college student service outsourcing competition"
Build To Serve: Software built to serve a range of target users. Example: educational administration system of Shijiazhuang Iron University
Build To Win: The English name of this book is the software built to win users in the market. Examples: Tencent's "glory of the king" and "Jedi survival".
These four are becoming more and more difficult from top to bottom, which is also our goal step by step.

Chapter 2 personal skills and processes / 35
2.1 unit test

All I know now is java Can use junit Run to test the correctness of local code

2.2 effectiveness analysis tools
2.3 personal development process

Personal development process PSP(Personal Software Process)
This thing is to develop software by yourself. It has both advantages and limitations.
Benefits: it is not limited to a certain software technology, but focuses on the software development process, and the development efficiency is super high
 Limitations: no communication, lack of data, and software quality may not be very good.

2.4 practice
2.5 practice and discussion
Chapter 3 growth of software engineers / 57
3.1 measurement and development of personal ability

Software engineering is not only developing software, but also operating software (updating software and changing software content) and maintaining software (modifying software) bug And enhance software security).

3.2 career development of Software Engineer

Software engineers need to master technical and vocational skills
 Examples of technical skills:
  yes JAVA,C/C++,C#Master, optimize code, improve efficiency, master device drivers, kernel debugger, and master a development platform.
  Accumulate knowledge and experience in problem areas (e.g. knowledge of the medical or financial industry)
  Understanding of general software design ideas and software engineering ideas
 Examples of vocational skills:
  The ability to express and communicate, the ability to cooperate with others, and the ability to dress others.

3.3 the opposite of skills
3.4 practice and discussion
Chapter 4 two person cooperation / 73
4.1 code specification

Hungarian nomenclature: the prefix letter is required to use the abbreviation of variable type, the rest is required to use the English or English abbreviation of variable, and the first letter of the word is capitalized. as  char cMyName[10]; ("c"representative char). yes IDE It is also a product of the age of mental retardation.
Hump nomenclature (small hump nomenclature): the first word is required to be lowercase, followed by other words to be capitalized, which is our common nomenclature.
Pascal nomenclature (large hump nomenclature): the first letter of each word should be capitalized, that is, the first letter of the small hump nomenclature should be capitalized.
Underline nomenclature: it is used more in macro definitions and constants (all capitalized words are separated by underline).

4.2 code style specification
4.3 code design specification
4.4 code review
4.5 pair programming

Two programmers work together on a computer. One person enters the code and another reviews each line of code he enters.
The person who enters the code is called the driver and the person who reviews the code is called the observer(Or navigator). 
Two programmers often swap roles.
I eat hot pot, sing songs, watch him play code, kick "ink what" from time to time, what a warm and happy thing.

4.6 different stages and skills of two people's cooperation
4.7 practice and discussion
Chapter 5 team and process / 101
5.1 non team and team
5.2 software team model

Attending physician mode, star mode, community mode, amateur theater mode, secret team, secret service team, Symphony Orchestra mode, jazz mode, functional team mode and bureaucratic mode.

5.3 development process

Waterfall model: from bottom to top, step by step, no turning back, unable to cope with customers with changing needs.
Rapid prototyping model: from top to bottom, determine the general model according to user needs, and then make software.

5.4 practice and discussion
Chapter 6 agile processes / 118
6.1 agile processes

How fast and how to come is agile development

6.2 problems and solutions of agile process
6.3 agile team
6.4 agile summary
6.5 story of agility - and drunk Q & A
6.6 practice and discussion
Chapter 7 MSF /138
7.1 brief history of MSF
7.2 MSF basic principles
7.3 MSF team model
7.4 MSF process model
7.5 MSF agile development model
7.6 MSF CMMI development mode

Microsoft Solution Framework( Microsoft Solution Framework)
A cooperative way of making software developed by Microsoft
 That is, each member is equal and has a network structure (as opposed to a layered structure)

7.7 practice and discussion
Chapter 8 demand analysis / 157
8.1 software requirements
8.2 stakeholders of software products
8.3 obtaining user needs - User Survey
8.4 framework of competitive demand analysis
8.5 function positioning - four quadrant method

Function classification: killer function, peripheral function, necessary demand and auxiliary demand
 Examples (English Chinese Dictionary) app): 
Killer function: character recognition technology, word selection and explanation on the screen, exclusive authoritative dictionary, etc
 Peripheral functions: it can run on all platforms
 Necessary requirements: the accuracy of word and phrase interpretation (if this is not achieved, the user will not use it)
Auxiliary requirements: various skins can be made (this may make some users prefer the software, but it is not the decisive factor)
Example (glory of the king):
Killer function: Five V Five games, 0 delay, excellent man-machine AI,Support tens of thousands of people online at the same time,wait
 Peripheral functions: support Android,Apple
 Necessary requirements: excellent anti plug-in system and payment system (if this is not achieved, users will not use it)
Auxiliary requirements: the reward system is so good that it is necessary to make an anti addiction system to prove its "innocence" and various skin effects.

8.6 planning and estimation
8.7 Work Breakdown Structure

. . . Is it necessary to see?

8.8 practice and discussion
Chapter 9 Project Manager

PM--manager
 Classification:
  Product Manager: Product Manager - making products
  Project Manager: Project Manager - process

Chapter 13 software testing

The difference between white box test and black box test: the former can see the source code, while the latter pays attention to the function.