1. Initial design:
After getting the project requirements, my partner and I finally decided to make a small Java Web project to meet the requirements.
Login Registration section, the initial account is a few fixed users of personal projects, registered part of the successful registration of direct access to the system (registration is not stored in the database)
Select the test paper type, click Junior High School, then show the type of quiz paper, and based on the number to generate the topic (topic generated by the use of personal projects)
2. Problems encountered:
Encountered the first problem, the mobile phone registration code sent, due to the lack of the required jar package, this problem has plagued us for a long time, the last reference to the online method plus before the application of the SMS gateway to make.
On the topic, because the topic of the previous personal project generated some problems, so the generated topic can not be done, the calculation of the answer is very troublesome. Finally, we reduced the difficulty. For example, the trigonometric functions of high school topics only use special values, so the difficulty is much lower.
In addition, we have solved a series of problems such as 0, modulo 0, random number range, and meet the requirements of a set of UI to provide the file interface.
3. Final realization:
Login registration: A few fixed users of personal projects, registered part of the successful registration of direct access to the system
Title Check weight: Two fork tree node class. There are two kinds of operator nodes and operand nodes, and the operand nodes are divided into integers, decimals and fractions, and three kinds of points. There are recursive computations, recursive parsing to expressions, and determining whether two expressions are equivalent. For determining whether the expression is equivalent , the idea is as follows: first determine whether the root node is equal, and if the two subtrees are not empty, recursively determine whether the two subtrees are equal. If the two subtrees are not equal, but the root node is + or *, then two subtrees are exchanged, and the recursive judgments are equal (i.e., addition and multiplication can be exchanged);
Topic Transformation: In the JS file to write the function of the transformation of the topic, to achieve the click on the topic to switch topics, the final statistical score function.
4. Personal sentiment:
Must be quite guilty to say, before the start of work and my teammates in fact, the understanding of the pair is not too deep, feel that each write each, there is a problem to exchange, the final merger can be. The result is a lot of wasted time because of the docking problem.
In general, the overall experience of this pair of programming is very enjoyable, first of all the discussion before the people feel very rigorous, the plan to choose the best one. Secondly, in the process of writing code, thinking complements each other, and many hidden bugs are presented on the spot and eliminated in the bud. And there's a lot of code optimization steps that are presented and improved when you write code, which I think is very important. Again, the entire code is done together by two people, everyone is very familiar with the entire code, which is very convenient for later bug debugging.
Knot-Pair programming summary and harvesting