Personal blog jobs

Personal blog jobs

Quick question after reading the "Building of the law" proposed

1. Unit testing whether you must be fast?

  • It referred to a good standard unit tests when the second chapter begins. The author believes that unit testing should be accurately and quickly to ensure the correctness of the basic modules of the program, I affirmed this point. But then a description so I have some doubts, as follows

    Unit testing is faster (time is a test run for a few seconds, rather than minutes)

    Fast, in order to maintain efficiency. There are dozens of software as a basic module (class), each module there are several methods, we basically required to test a class to be completed within a few seconds.

    I think it is not any software unit testing are in line with "fast, in order to maintain efficiency". For example, we wrote at the time sophomore learning OO multithreading elevator, because the provisions on a variety of time, people can not take the elevator too fast; involving machine learning test, the face of extremely large amounts of data, it is impossible to test speed how fast. However, it can not therefore be said that there is no unit testing efficiency, not a good test. Perhaps the author is also here that the "unit testing" with the usual understanding of "test" be different?

2.goto compliance with the code design specifications?

  • In section 4.3.2, the authors propose

    Function best with a single outlet, in order to achieve this purpose, you can use goto. As long as clearly reflected aid program logic, what methods can be used, including goto.

    The famous computer scientist Dijkstra original in the "Go To Statement Considered Harmful" (Go to harmful theory) his paper as follows

    More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all "higher level" programming languages.

    He proposed, goto statement has influence "disastrous", should be eliminated from the "high-level" programming language. Modern goto statement is generally considered to reduce the readability of the code, "structured" destroy the program, bringing the programming of confusion and error-prone. I think that this sentence must have the role of its existence, we should try to avoid using goto, replace it with if-else statement to achieve and enhance the readability of the code.

3. Programming About 4.5 nodules

  • In this section, the authors believe

    In the pair programming mode, a pair of side by side programmer, equally, complementarily development.

    In pair programming, as there are at any time to review and exchange of quality in all aspects of the program depends on a bunch of programmers in all aspects of high level that one.

    Three also pointed out the benefits of pair programming. I think it's just a positive idea of ​​pair programming, it is not comprehensive. Assuming this to be the beginning of a programmer complementary equal work, but one day the two men suddenly produced an invisible contradictions, such as programmers A think his contribution is greater than B in the development process, become arrogant, B a ······ has refused to accept this pair programming would be counterproductive, there is no real purpose in pairs, so that the case be substantial.

4. How do you find the motivation behind user?

  • In 10.1, the author web comic as an example, noting that

    Just look at the surface of the user's language or action is not enough. We also find user language or action motivation behind! According to the user's language can not just rush to make a decision.

    The implication is that we want to speculate deeper needs of users. But the reality is that many users like comics inside the same, and sometimes hope developers can Zhaomaohuahu, to describe their needs are often not very professional, not completely let developers understand. Some time ago a case like the spread of the Internet, some people call resembles Party, said: "You first this, then this, then this way again, and finally this is very simple, right?" In other words, some users difficult communication, it is difficult to find the motivation behind them, even his own want to do are not quite sure. This case, should we direct to the user's face language development or action, or what better way to discover the motive behind?

5. whether technological innovation is the key?

  • In Section 16.1.6, the authors believe that "innovation is the key" is a myth, citing an innovative business model, an example of innovative user experience, innovative ecosystem. I think the analogy is not quite complete, only shows that except through technological innovation, there are many other innovative ways, can prove "innovation does not exist in the technology." The key innovation comes, I still think the technology.

"Software" and "software engineering" is how these words appear - when, where, who?

  • Software (Software) - 1958 was put forward by Bell Labs famous statistician John Tukey, published in the paper "The teaching of concrete mathematics"
  • Software Engineering (Software Engineering) - Apollo 11 made in the design process by Margaret Hamilton

The process of software engineering development of interesting trivia and stories

  • Computer virus is not designed to cause damage.

    History of the first computer virus, is a technical defense expert Fred Cohen personally designed. The purpose of his creation of computer viruses just to prove the feasibility of the program infected computer, hoping to never cause any harm to your computer. However, this application was able to infect the computer, floppy disks and other removable media and can spread between different computers, so named for the virus. Later, he created a computer virus active, the main purpose is to help computer users find uninfected executables.

Popular source code version management software and project management software, what you are, what advantages and disadvantages?

Microsoft TFS

advantage:

  • Can on demand version of the task, project progress glance, for a small team, more useful than the Gantt chart integrates project management, version control, BUG tracking.
  • SCRUM be effective in achieving seamless engagement with the VS.

Disadvantages:

  • Construction, maintenance tfs more complex, the hardware requirements are relatively high.
  • The whole system is implemented using asp, accessed using the browser rather slow.

Git

advantage:

  • Suitable for distributed development, emphasis on the individual.
  • Public pressure on the server and the amount of data that will not be too large.
  • Fast and flexible.
  • You can easily resolve any conflict between two developers.
  • Work offline.

Disadvantages:

  • High learning costs, it is very difficult to learn.
  • Git repository requires frequent manual maintenance.

Trac

advantage:

  • Very flexible and can be arbitrary control and SVN integration.

Disadvantages:

  • Function is not very powerful.

Bugzilla

advantage:

  • Free, there are Chinese version support.

Disadvantages:

  • Quick search results are not accurate. Only manage defects.

Apple XCode

advantage:

  • Compile fast, each operation is very quick and easy. Automatically provides undo, redo and save functions without writing any code.

Disadvantages:

  • After the updated version of a plug-in might fail.

Mercurial(hg)

advantage:

  • A lower barrier of entry. Overall, hg need to know a lot less command than git.
  • It can be a key to a fully restored version of a slice of history.
  • Good package. Compared git, hg rarely reveal details in some implementations.
  • Svn take care of the migration of users.
  • More hg pull of time allows you to avoid creating a branch.
  • hg repository does not require maintenance.

Disadvantages:

  • Branch management is not flexible. Mercurial and Git's branch management is not very convenient compared.

Reference 1 Reference 2 Reference 3

Guess you like

Origin www.cnblogs.com/Geraint23/p/12393054.html