Personal blog Work--Summary of lessons

Source: Internet
Author: User

Stage again feeling

Before touching the soft worker this semester, there is only one understanding of software engineering: writing code. Through this semester two team development stage, gradually to the software engineering has a more in-depth understanding, self-thought already has the most basic team development accomplishment and ability. I am a member of the Love Code room team, in the M1 stage due to the lack of experience, we can only follow the teacher's suggested development mode, not careful time planning errors may lead to the completion of the phased goal is not ideal. And in the M2 Phase I think our development, although the finishing touches are not particularly perfect, but this stage is certainly a success. We have summed up the various problems in the M1 phase, as well as the advice given by our teachers and teaching assistants, the importance of unit testing, code review and management of TFS source code, and so on, the whole M2 phase is more normative and systematic than M1.

In the M1 I was the dev, in this period gave me a very deep feeling is: code members like a car, even if I am full of petrol, even if my horsepower is amazing, but the lack of roads and road signs, still useless, not to mention my horsepower is not so full of cars, and then meet the Bumpy Ke road, What should you do when you have a puzzling road sign? In the M1 phase, all of our team members are zero-based: Touch the UI control from scratch, touch the database from scratch, touch Web file analysis from scratch, and touch the soft worker from scratch. We are moving very slowly because we have to think over and over that we are going in the right direction, not the opposite. After the end of the M1 phase we review the results, found that although the tension is slow, the final function is slightly rough, but our crawler performance has been enhanced, the files crawled down is real deal, which for our M2 stage laid the foundation, while the M1 stage of the various problems have become the direction of our M2 stage.

In M2, I volunteered for PM, because in the M1 phase of coding, I thought that the understanding and development experience of our team was enough for me to set a good direction for our development members at this stage, so that the development members would march in a reckless way. In this one-month pm, my feeling is that PM is what we need to lead this team to operate the guiding mark. I need to discuss with the developers, develop design, test plan. Each development phase is required to measure the progress of Dev and to update the progress of the project. And this is not the only one, it needs to fill our entire development path, encourage dev on the right path to continue to develop, but also to the wrong path to the Dev guide back. Finally due to the joint efforts of our team members to complete a brand-new crawler: The thread pool Let it refuse to crash, dynamic crawl Let it travelled day, exception cleaner Let it stay healthy, video crawl Let it nutrition balanced not picky eaters, both eat HTML, PDF also eat mp4.

Review of the problem

Questions raised at the beginning of the course blog: http://www.cnblogs.com/FUduomi/p/4830411.html

1. In general, we spend more time reading software than writing software. Because it is easier to write software than to read software, the readability of the code is particularly important. So how do we avoid unnecessary, misleading comments when we write a program, and write a note that helps others understand the program?

A: The two development stages have a deeper understanding of code writing and commenting. First of all: whether Java, C is a language, if your language so that people who know the language does not understand, can only explain a problem: Your language organization ability is too poor. For example: How to name a scanned PDF method, some people: Pdfscan (), and some people: Haha233 (). This is like in our real life, some restaurants named Rice bowls King, some restaurants named thumb, for the former, people do not need to look at the introduction of a specific can guess its nature. In coding is such a truth, our name is "as the name implies" rather than a trick, our code organization wants to be concise rather than all kinds of "rhetoric." In the complex algorithm block, we can add the necessary annotations for functional introduction and approximate algorithm implementation. As the TA teacher reminds me, no comment is the best comment, and if I write a program that makes a person understand, why take the time to think about the annotation?

2. The needs of people in today's world are varied, and a software team with a keen sense of smell can capture people's needs accurately and comprehensively, thus designing software that meets people's needs. How do inexperienced software teams like us, which have just been born, get to know the needs of market customers?

A: These two stages come down, still do not understand this question. Because the current needs of our crawlers come from the following groups, but I think that the two phases of demand analysis is some simple: fast climbing, crawling, long crawl and so on, more important or realized, so there is no better understanding of demand analysis.

3. A team of members of the software team work together to collaborate, in the book specifically introduced the project manager--pm this role, and proposed that the PM is in addition to development and testing all things. However, the positioning of this role for me is still too vague, there are no classic PM work examples?

A: I am successful in the M2 phase of PM. And the beginning of the thinking is not the same, in the imagination, PM at least a manager, should be able to make a difference in the team, members should not dare not from. In fact, development members often put forward their own different views, PM needs and development members to analyze the possible results of different implementations, and sometimes in the development of strong arguments, PM may also need to adjust the implementation plan. And after M2 I think this is the team development on the right track, PM is the whole team progress of the most knowledgeable people, need real-time progress updates and the assessment of the remaining tasks, but also to play the effect of lubricating oil so that our team of large machines can run in the gap.

4. After the completion of a software design, the software should not be updated and maintained according to customer's requirements during the product use. When we write software design and code, how to avoid the major changes in the late stage of product development resulting in the chain reaction of other modules, improve the maintainability of the code?

A: There was such a tragedy at the M1 stage. We attach particular importance to unit testing and code review at the M2 stage through the advice of teachers and teaching assistants. So during the development phase of unit testing and code review, it is possible to effectively exclude bugs from the bottom and avoid major changes due to bugs later on. At the same time the program each module should design good code specification (we M2 did not do), each module each other, minimize the kind of code block that runs through the program.

5. We all know that an online game will be on the inside again beta, but also constantly encourage players to find and raise bugs. Testing after a software development is complete, debugging is essential. So how do we do efficient testing, not exhaustive, carpet-type testing?

A: This question is similar to the previous one, and the test is invaluable, and in the project presentation we mention the inefficiency of the carpet-type Debug. So we let the unit test accompany the development work, can effectively prevent the bug.

6. A division of software team members collaborate. However, in the software development process, the work is often not at the same time. How we should fully coordinate the working relationship between members, so that members can learn as much as possible about the software development process, rather than just learn the part of the work they are responsible for the knowledge and experience.

A: We scum meeting each developer will carry on the daily work report and the progress situation, this should be able to increase the other member's understanding to this module. (Well, by knowing the other members, I admit that they don't know much about the other parts!!) )

New questions raised

1. In fact, during the two-week development phase of the week after the stabilization phase of our team is quite confused. To do stability, to do the system test, how to do? System tests are different than unit tests can have the help of a control like JUnit, so we do have slow work this week.

2. Most of the issues outside the development phase, such as the M2 stage, we have formed a development framework between groups, most of the team has to teachers to reflect the problem of intra-group and inter-group docking, how can we better achieve docking?

Review of related papers

Alpha stage, in the two software engineering development models of the cathedral and the bazaar, we belong to the cathedral model. The reasons we chose at that time were as follows:

1. The needs of all users cannot be consistent, and the needs of users are often not easily changed in the short term. As long as the team captures the needs of most people in the demand analysis, the user will buy it after the software is implemented.

2. Code changes tend to be reaching. If we are going to make changes to one of the algorithms, or a function, then the rest of the contact with it will inevitably need to change. I think the code changes should be made after the implementation, fully analyze the gains and losses of code changes to make judgments.

3. Most people prefer to choose rather than design. There is a sentence in the network: The decay of a game is because there are more fun games appear. The game is software, the user's needs are sometimes difficult to express or never need, they need to compare two software to choose the better side. This means that some users prefer to experience the entity rather than feel the concept.

And at the end of the alpha phase we found a problem: because of all the reasons (mostly docking problems), the next few groups have hardly used our data. Although this is mainly due to docking problems, but also triggered our thinking, if we crawl the content of no one to use, then we crawl what is the meaning of it? So at the M2 stage we overturned the cathedral model, affirmed the impact of demand on our team, developed the "market" model, and successfully developed video link crawling and base site-based specification crawling. Market mode "Crowds", can fully understand the needs of users, timely modification, more in line with the development of this stage and other groups to develop features.

Do High School

1. Requirements: Access to user needs-in-depth interviews with user surveys.

Our group and data processing team have extensive and in-depth knowledge of the background and requirements of the data processing team through detailed interviews. This method is time-consuming and laborious, but it can obtain the demand information directly.

2. Design: Design Method--uml.

Drawing a design into a picture is easier to understand.

  

3. Implementation: Development phase-daily build.

Daily scrum and TFS source code control.

4. Test: Unit test-through the JUnit tool.

5. Release: Announcement and time Zhuge Liang meeting.

  

6. Maintenance: Design changes.

Changes to new designs are reduced by reducing complexity after a dynamic crawl that begins with a time relationship is not implemented.

Personal blog Work--Summary of lessons

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.