Code Daquan 2 Study notes 1

Source: Internet
Author: User

The first part: lay the groundwork.

Chapter I.

The build includes a large scope:

Defining issues

Demand analysis

Planning and building

Software architecture (high-level design)

Detailed design

Coding and debugging

Unit Test

Integration Testing

Integration

System Maintenance

Guaranteed Maintenance

----------------

The usual contact is from detailed design to system maintenance,

The testing and technical support behind it all has to be dealt with,

But the definition of problems and requirements, basically belong to the product department.

----------------

P7: "A lot of projects, the only document the programmer gets is the source code itself." The requirements specification and design documentation may be outdated, but the source code is up-to-date "

--Basically, many projects only need documents and design documents before coding, and in future revisions, they will not modify these 2 documents.

----------------

Building activities are mainly from detailed design to developer testing, that is, the work of programmers, from design to coding implementation, to the final self-test.

P7: "Build activity is the only thing that ensures that it will work"

Because the requirements may be temporary for time reasons, the test may not be sufficient, but the code must be coded to complete.

--there was a training, ranking programmer's conditions, I put honesty back, not it is not important, but there is no way to dishonest, with the sale of goods are not the same, there is no realization of demand, lying on the mouth will soon be revealed.

Chapter II

"The importance of metaphor. ”

"Using metaphors is called modeling. For example, the molecular motion theory is the collision of the ball, light wave-particle duality. ”

"The biggest adjustment in programming is the conceptualization of problems, and many errors in programming are conceptual errors. "--personally, it should not be programming, the basic concept of starting programming has been identified, but in the first three steps (definition problem, requirement analysis, planning build)

"The software construction process is likened to the construction process of the house, the mobile load-bearing wall is certainly lower than the mobile partition cost, the software structure change is also more expensive than the surrounding function changes." ”

Chapter III

"The central goal of preparedness is to reduce risk. ”

"The preparation of the building and the building of the kennel must be different. ”

"The test cannot be tested to ' design a faulty product ' to resolve the defect to be completed before the build activity."

The reason for the ill-prepared work "

1, the vast majority of developers do not have the requirements, product experience and training.

2, programmers can not resist the ' start coding as soon as possible ' desire.

3. Managers do not understand the importance of preparation work.

--------------------

--2 deep experience, each always like to write a rough detailed design, and then immediately put into the code, but it seems only in the code can be better to imagine the details, if not coded so there is no specific impression in the head, may be not using pseudo-code programming habits, in the following chapters there are pseudo-code programming examples.

This also led me to prefer to work overtime on a single person, or to collaborate with others to complete a program.

However, in practice, it may be that my team is very small, a person's efficiency is more than a few people co-operation is much higher. And even if each person maintains a module, the debugging of the interface will take a lot of time. If 2 modules are self-responsible, the debugging of the interface is passed quickly. This may also be the earliest time to design the message format is not a thoughtful result.

-------------------

"Sometimes users are not entirely sure what they want at first, and figuring out what they really want is much better than making a mistake and correcting it." ”

There is no direct face to the customer, there is no direct feeling, but the customer often will never use to have to have the function.

"Demand, architecture, construction, the more the defect, the greater the cost of modification." ”

------------------

"We'd better code right away, there's a lot of debugging to do." "and" We did not schedule too much time for the test because we would not find too many defects in the future. ”

Comparatively speaking, the second one is better than the first one.

-----------------

"Iterative approach to development cost savings compared to sequential development"

The iterative approach is to start checking and rework as the project progresses, and then to develop the next step.

The sequence method is to check and rework after the development is completed.

-----------------

"The problem definition simply defines what the problem is and does not involve a solution." ”

"The problem definition is written in the language of the customer, not in the jargon of the computer." ”

' Our export bandwidth is always full ', ' We need to optimize the cache system so that the egress bandwidth does not run full '

Obviously the previous one is a problem, and the latter one is not like a problem, but a solution.

----------------

"Clear requirements help users navigate the system, helping to avoid arguments between programmers"

--feel a lot of procedures to make, found that the need to understand the different, often the development of irrelevant between the paste passed, the most controversy lies in the development and testing of its different understanding.

"Customers often change demand, and IBM's statistical average development process requires a 25% change in demand." ”

"Customers often like to shoot the forehead and remind them of the cost and schedule. ”

--Ha

P42 for functional requirements, so detailed external interface, including handshake protocol, whether the communication protocol is a requirement or a detailed design? The feeling should not be the demand layer of AH.

P46 data design is the same question, but in the context of what data structures or algorithms are used to write the benefits of why this is used, it is easy for programmers to gain insight into the architect's ideas.

"Data typically has only one subroutine or one class to access"

"Programmers will be in professional pride and over-engineering their own classes."

It is true, but is it not good if there is time?

"Architecture should describe the motivations for all major decisions, not always."

"Good architecture is largely independent of machine and programming language, but it can't ignore the environment. The advantage of being independent of the environment is to avoid over-architecture. ”

Fourth Chapter

Architectural Decisions:

Choosing a programming language

Programming conventions (Code specification and style, performance or stability)

Team work (Code management CVS, how to Division)

Quality assurance (first write test case, review)

Tools (Code management tools, compilation tools)


This article is from "Flying Justice Blog" blog, please be sure to keep this source http://xzq2000.blog.51cto.com/2487359/1767389

Code Daquan 2 Study notes 1

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.