Chapter One: Introduction
1) Before reading this book, I always thought that when a team decided to take charge of a project, their members would no longer have to change, and would be responsible for the project to the end. But in fact, the software team will flow. Why should there be a movement of people? Is there a technical difficulty that the existing team can not solve, the need for new technology knowledge support, or the existing team to take on multiple jobs, need help? In addition, not only the software program will have bugs, the team will also have bugs. Dealing with bugs is the basis for creating "good enough" software, but in the course of campus learning, we often ignore bugs and even leave it at the end of the process.
2) User experience, many times we will be in the software store to download a variety of features similar applications, for example, we have downloaded countless English words of the app, and can stay until the end only "hundred words chop." The software user experience is good or bad whether he is better than the same type of software. The user experience of a software test is very large, there are many new software developed in the market, some of these software has soared overnight, some have failed, and some have soared in a period of time before being eliminated. For example, pixel birds, the previous period of time is very popular, now also gradually retreat to Halo. I think this also has a close relationship with the user experience, as a game, some time ago because the game is very difficult and popular, and later heard that some big avatar off, but I believe most people are not a few pillars on the game over. In this way there is no reward and repeatedly defeated the game, the user probably also do not want to persist in playing. But the game is creative and easy to get started, is too easy game over.
3) What exactly is the API, and what does the Java API mean?
Baidu Encyclopedia Analysis: API (Application Programming Interface, Application programming Interface) is a number of pre-defined functions, the purpose is to provide applications and developers based on a software or hardware to access a set of routines, without access to the source code, Or understand the details of the internal working mechanism.
4) "No silver bullet" assertion?
Interactive encyclopedia: No silver bullet--a classic paper on software engineering published by Fred Brooks in 1987. The discussion emphasizes that the real silver bullet does not exist, while the so-called silver bullet means that there is no technology or method that can increase the productivity of software engineering by 10 times times in 10 years.
5) The book mentions three kinds of colleges, explaining the difference between computer science and software engineering and their mutual assistance, what is the difference between the software college and the engineering school?
Chapter II: Personal Skills and processes
1) Individual writing module should have unit test, after all, the final software is done by the cooperation of many people. We want to make sure that the modules we write can be called by others, and that the code is clear and understandable without affecting other modules. Using VSTS to write unit tests we have not touched, look at the book is not too deep, it can test all the computer language it. Hope to have time to practice the operation. In addition, for unit test automation, what is unit automation, how to do it. Baidu has also very faint. As well as GitHub before the icon is very cute, have to know, but do not understand what it can do.
2) originally called A.lenght with A For loop; The method of getting the array length of these calls increases the complexity of time
Chapter III: The growth of Engineers
The first section is about the growth of personal ability, so at present we as students, how to improve ourselves, I think a person's growth needs to experience, join the team and team progress together, I think the fourth chapter of the knot pair programming is very good, but when a team level reached a certain capacity, we need to go to other teams to learn? Now the Internet is developing rapidly, what will be the obstacle to software engineering?
The fourth chapter: two people cooperation
Ask questions: How to improve work efficiency in two-person cooperation? (from section 4.6)
A: In practice II, I ended up with my little partner to program, and gained a lot. In the beginning, the two people should make their own views, respect each other's suggestions, write a preliminary plan (like the beginning of the book), and then in the process of writing code will appear differences of opinion, to control their own emotions, compare their views, or combine the opinions of two people to propose new ideas (like the book in the running-in phase). Finally, after the program has been knocked out will be tested, some code format specifications, vulnerability issues, or new idea, can be added in this phase (specification phase), the final completion of the program (creation phase). To do these four links, I believe that can effectively improve the efficiency of cooperation between the two people. In the process of cooperation between the two people, I enjoy the process, enjoying it. So, having a good attitude to do things is also good.
Fifth: Teams and processes
1) See a lot of software team model, have the attending Doctor mode, star mode, community mode and so on. and functional team mode, with bureaucratic patterns. The development process has written a re-change mode, and so on. But maybe I didn't read it well, after reading it, I was able to sort out how the team worked together and what everyone in the team was responsible for. Do you want to write a demand design together? Or is it part of the people responsible? There are no concrete examples to help understand it. A company develops a big project, how to get a software team to work in a methodical way, how do they divide, and how to integrate all the parts that are responsible for a project?
"The Law of Construction" 1-5 chapter sense of feeling