Software engineering work --- summary review questions and personal summary

project content
This work belongs to the Northern software engineering courses Park class blog link
Please click on the link to see the job requirements Work requirements
My goal of this course is A developer has a certain experience, familiar with the difference between the company's development model and mode of operation of the school
In particular aspects of the job which helped me achieve goals Let me summarize start from the beginning of the semester to present their own growth and change

First, the beginning of the semester Review Questions

In the beginning of the semester, the teacher asked us to build a quick read of the law, and make some of their own issues on the basis of a quick read on, see the specific issue before the original blog .

Second, find an answer to the problem

1. unit tests to cover all the code paths that need to be completed or that the proceeds from the program code after completing basic code debugging and performance optimization? Later in the book you mentioned the need to maintain unit tests with code, if every change needs to do to cover that all code paths bring the maintenance costs will be too large?

Background The issues raised at that time there really is no formal development experience (although the OO class also written unit tests, but in retrospect really is to deal with the job at that time), but fortunately this semester met a very rich experience in the development of students under his guidance really put the right processes developed successfully gone again. Since our group has no formal separation of testers, so are the front and rear ends of each person to their own code to write unit tests, I think now is even better unit tests to be completed earlier than the program code will be in programming most of the time while writing unit tests and real-time operation can avoid a lot of late because the previous code errors should also be amended later wasted effort. From the point of view of security software, maintenance, code coverage is necessary, which is directly related to the quality and number of software vulnerabilities.

2. Computer professional grading test is really useful

Now I have to answer this question yourself, this certificate is not particularly important, it is important to master new knowledge in Grading process, constantly Grading is a continuous learning process more positive attitude and constantly self-improvement process.

3-6 Conventions relating to the encoding of the book do not quite understand the

After a semester of training in this code is, in fact, I think these are not the problem, the programming itself is not the kind of physical sciences like mathematics natural science has the absolute truth and answers. More often rely on the convention, different people different rules and conventions have a different view is normal. I think as long as a team in the process of coding in even one person to comply with a specification. For example, I personally like the same type of variable defined on a single line, even if the write JS variable name will not only appropriate but with a simplified alphabet, basic encoding process does not use the goto statement, c ++ is more accustomed to using class.

7. Pair programming scenarios for what use?

Now consider the case of using pair programming actually is not suitable for the development of the code requirements, and the higher the accuracy of the requirements of the code, the more suitable for use pair programming.

8. Does Agile processes too dependent on individual ability scrum master's?

In the actual development process of this semester, I have gradually come to understand the personal ability master is very important, because it is really PM and our front and rear end the person in charge to promote and to determine the progress and completion of quality of the entire project together, they are quite developers pathfinder and communicator, continue to lead the team on time and quality completion of related work.

How to develop performance costs and the cost of 10 programs looking to play the right balance

The team also encountered in our development process, especially in the beta version, because the addition of more than thirty new back-end interface, development and testing tasks are very heavy. At the end it was a little time is not sufficient in the case, our strategy of last resort is to ensure the completion of the degree, then you can optimize the code in the reconstruction of beta and gamma transition period after completion of the basic requirements. So I feel that both in the long line of view are not in conflict. In the case of tight schedule requirements can start with a minimum development cost of rapid development, we can then optimize performance at a later stage.

Third, the problem is not yet understood and new issues

Fortunately, no new problems in the process, but on a question raised before, because there is no relevant experience has not confirmed the answer.

The relationship between innovation and expert in this field do not 9 a field?

Although there is no exact answer, but I can say that about their own views on this issue. I have a positive attitude toward this point of view as a whole, it is true, everything is not absolute, not to become an expert in the field of innovation. But I "70% of the innovators say their most successful innovation in areas outside their specialty found" the book said that for 70% of the proportion of some doubt, I think outside of the field of innovation exist, but in the proportion of innovation for the entire field is occupied by smaller. Most of the proposed innovation in this field is based on a deep understanding and knowledge reserves, in addition to luck and Emmanuel ingredients. If a certain area of ​​a layman may propose an innovative point, I think the latter is the main factor, but for long-term development in this field and industry, and to promote the role of experts in the field often still done.

Fourth, learning by doing - the various stages of learned knowledge

  • demand analysis

    Needs analysis when the PM and developers must fully communicate, to avoid not communicate that "this is very simple. It's very easy to achieve a" situation, this will determine the duration of a larger deviation. For courses of view, PM communication needs to be reasonable based on our time and users should be appropriate cut some less essential needs.

  • Code design

    Both front and rear ends, the code can not write up, at least find a good basic design before you start coding.

  • Code

    To more advice to others encountered tricky implementation issues, and more to find information. In the process of writing code in the first consider how fast implementation, but should also think about how to improve code performance.

  • Code Testing

    The beginning of the unit test done well, the easier it behind debug.

  • Code release

    The user environment with state of the environment when developing our general will be very different, so it is best to find some beta users to test carried out before the official release, modifications made to avoid too much after release.

  • Code Maintenance

    To emphasize the maintenance phase agility, feedback to the user submitted the best timely response, so the experience can be maximized to reduce the impact on users.

V. semester experience

During development of this semester, my identity has been the back-end developers and testers. Just up on the experience of what is a short crash a new language and framework, using the Ching Ming Festival Express ruby ​​on rails.

My visual experience, the project sounds like our group, though not difficult, but to be involved in all aspects of technology, and comparison group most logical and physical relationships are complex. The process of developing a large part of the time is spent from the abstract needs to implement the interface, and the front and rear end design for the back-end interface for interacting. Much of the code is not difficult to write, but that is a lot to write control logic.

In this semester soft engineering development process, I also gradually develop the habit of writing code and more time in consideration. The most impressive is when the alpha stage near the end, has a wealth of experience in the development of Zhang Shao students told me that during review my code Although the code to achieve is not the issue, but I need to check a classic 1 + N problems and then correct. Through access to information, I found it to be a typical query performance trap. Scenario is: the number of rows need to query the value of a column in the table value occurs, if each count of each time for a different element count will table all the time to conduct a scan, the price is N. This parity is a big performance bottleneck, but if the first time we were on the first group of the different values, then count the number of times you just need to value each group, equivalent to only scan again table. Before writing the code when there is no thought about this problem, after this question every time I write the code will think about, think there is no better or more efficient implementation.

Finally, I am grateful to my team, to develop soft work this semester is very pleasant a learning process. Although the middle but also because too much food reviewer is crazy diss, but also in time and time again after being criticized in the process of continuous improvement and constantly improve their own ability.

Guess you like

Origin www.cnblogs.com/mzybuaa/p/11100962.html