All of a sudden, said the end is over.
Obviously is always feel headache incomparable, time occupies huge this course, at the end of time, but did not imagine the relaxed, but have a trace of loss.
1. Course Summary:
Open the first class to write the goal, read between the lines, half is longing, half is confused. Some of the plans to do are not completed:
Originally intended to learn Java, but finally learned some PHP and MySQL;
Want to learn better management time, the number of nights seems to be more frequent;
Originally thought can initially grow into a qualified pm, but look back to see what they do not seem to do.
. Of course, there are a lot of gains:
Learned some of the use of software, such as prototyping software axure, class drawing example drawing Software Star UML, as well as JS Unit Test tool (although only used once), the most important of course is the use of version management tools git , Of course, the Web page is not always a headache, so that the beginning of the use of QQ Group for file management, this will be said later;
Learned some PHP, mainly MySQL and web development;
Also learned about the deployment of servers, etc...
These are the main skills gains, and there are some more important changes in mindset:
First of all, is to be brave to learn new things, many times, encounter problems always want to from already mastered the ability to solve, because this is more labor-saving, but in fact, this often leads to a lot of ability does not get the exercise, but just waste time on the repetitive work, not conducive to their ability to improve;
Second, the problem should be resolved as soon as possible, procrastination will make the cost of solving the problem rising, especially in the team development, the problem may lead to more serious consequences;
Finally, in fact, the TA has always mentioned a sentence: in any case, must adhere to the end. throughout the course, you will encounter a lot of difficulties, even if you can not complete the very beautiful, at least to achieve the beginning and finish, the moment of completion of the task, the incomparable sense of accomplishment will tell you that everything is worth it ~
2. Project history:
Project development occupies the majority of the practice curriculum, from the very beginning of the pair programming, to later team development, have to say, is a difficult and memorable memories.
The development process of the project has gained a lot of valuable experience, extracts some of the more impressive examples:
-
- How to deal with the record of the report and corresponding notes during the teacher's newspaper class
(for convenience of illustration, the following quoted fields, such as "notes" indicate the table header's Memo field, "Report Class" indicates the header selection of the course field)
When dealing with the course page, for the judgmentIf we are going to class, we are using an indefinite array to name the "lesson case" name.The way that the
The advantage of this processing is that as long as the value of the Class_select array is obtained in the background, it is possible to determine the number of courses selected from the length of the array, without having to use a traversal method to decide which classes are selected and improve the processing efficiency, but also introduce a new problem-how to deal with the corresponding remarks?
Assuming that we are dealing with the same way we do in the report class, we can get the correct number of "notes", but because "memo" is not required,Choose a course but don't write the corresponding notescase (e.g.), this method will result in the acquisition of the record and notes can not be a correspondence, then all the information of the class will be voided;
If we use progressive traversal to check the way, the efficiency is too low, once the data volume expands, processing speed will be very slow; After a panel discussion, we changed the course of thinking: "Note "The completion of the acquisition to be dependent on the" Report class situation "fill in, that is, "a line of the" Report class record "is selected, get the corresponding notes", and finally we identified the following scenarios:
Step1. Use the ID value of the course as the value of "Report Class", because the class is only a multi-box, its value is not actually used, so we use this property,Name Value as "Memo";
Step2. When using an array in the background to get all the "reporting lessons", iterate over the array,for each value, (in fact, the name of the corresponding "Memo"), get the corresponding value (this is the corresponding comment on the course), so that the "report class situation" and "notes" one by one can be accurately matched, and did not reduce to the original efficiency.
In the simplest case, the name of the corresponding note is stored in the "report Class" array, and the corresponding value is found according to the name;
- Whitespace handling problem for account password string
This is also our time in the process of encountering a more classic problem, because the use of the customer provided the account password information table, using the WPS form to save, in the background of the import database we found that the import account password before a space;
Check it out. The space removal function of PHP is trim (), but after use, it is found to have no effect; after finding and using regular expressions Mb_ereg_replace (' ^ (|) + ', ', $str), to solve the problem, later after the guidance of seniors:
Perhaps because the WPS encoding is GBK encoded, we see not half-width spaces but full-width spaces, so follow these steps:
(1). Turn the GBK string into UTF-8,
(2). Turn the full-width space into UTF-8
(3). Change the replaced string to GBK
(4). Remove the Kinsoku space
(5). Return string
In order to deal with the string problem completely;
There are some errors due to the bad PHP syntax, such as the use of string matching "= =" instead of "= = =", the direct consequence is like "00012" such an account only need to enter "12" to match, because "= =" is only a value match, "= = =" is an exact match, The values and types are equal, and in the case of PHP MySQL connection, MySQL and mysqli are mixed with two connection methods and corresponding functions, and in the alpha version there is no null judgment on the results of SQL, resulting in an error when the result of the search does not exist.
Say something about the experience gained from teamwork:
1. The time of the meeting should be set in 15 minutes; First, the benefit of a standing meeting is that the person in the meeting can be more focused, but if the time is too long, the members will be exhausted, and the assignment and summary of the daily task should be completed in 15 minutes; In order to better realize this way, Some measures can be used to assist: the team leader to prepare the time of today's meeting and the main content, so that members are prepared to avoid the time spent on the content of the meeting, in the day after the end of the day to summarize the meeting situation, timely improvement of the problem;
2. If you want to make a project sprint, it is best to schedule it for a continuous period of time. For example, the task requires 7 days of Sprint, the total time given is 14 days, it is best to arrange for 3/4 consecutive days of sprint, rather than completely fragmented into 1-2 days of multiple sprints, the more the number of divisions, it will take more time to recall the progress of the project;
3. In the task process if the team members have a task can not be completed, the leader may find a way to deploy personnel assistance to complete, but absolutely can not delay progress, once there is a bad beginning, it is difficult to achieve the expected results;
4. The Daily Record of the meeting should be concise and clear, and the task should be implemented to the specific members;
5. Finally talk about the use of GitHub. GitHub is a version management tool, because of early knowledge and experience, only think of it as a network disk, QQ group of storage-like tools, plus access to GitHub Web page often do not go, so did not appreciate its advantages, in the beta version, due to the strict requirements of the teacher, Having to use Git for a while, has become accustomed to using git for iterative management of projects. Compared to the QQ group file, the biggest advantage of GitHub is the version of the management, we write the project process, there will be constant updates and iterations, if the daily changes are packaged, packaged, saved, one workload is very large, and secondly can not see the differences between the various files, and GitHub not only retained from the project to the end of each version, and can see each change and update the content notes, with branch management features, in the team development time will be more convenient, as for the page often do not go to the problem, I later use the software Fq method to solve, There is a way to get from the students, if the sharp jie on not to go, you can even mobile phone hotspots up, Git has just been used to have a lot of problems, but wait until the proficiency will feel the benefits, like the game in the late hero, the more tired early, the later the more able to save the world.
3. Addressed to the later learning younger brother
1. Building software engineering compared to other teachers is indeed more tired, and will require the use of blog to record each task situation, arranged in the junior year This course is close to the outrageous, and all are specialized courses in the semester, stay up basic is not to hide, but harvest is certainly there will be. Before choosing a teacher, please think carefully about your starting point, if you feel that you have no strong control ability but want to learn something, then choose a brother's class, if selected, please stick to the end anyway!
2. Software engineering lesson does not teach programming!
Software engineering class does not teach programming!
Software engineering class does not teach programming!
Important things say three times, in this course, the teacher will introduce a variety of software development process tools to use, but also basically limited to the introduction, or to rely on their own to explore, so if there is no language or technical basis of the students, suggest that you should be serious in the team, It is best that one of them has a certain foundation or enthusiasm for learning, so it is not too tiring to develop the project at the back, but it is recommended that you have some relevant reserves before starting the course.
3. Start by using Git instead of GitHub for Windows,git is a command-line operation, GitHub for Windows is a graphical interface, and for beginners, nature tends to be less difficult for the latter (as I did before), But the process of using git will deepen the understanding of GitHub with each command, which mentions that GitHub can be difficult for beginners, and that Git is the best tool to keep up with the process, and GitHub for Windows does little to help understand git; GitHub for Windows is only suitable for simple operations such as commit, sync (actually push), and if you encounter a merge conflict, version fallback, and so on, you still need to use the command line to solve. Git has a lot of tutorials here do not provide links, another: I have a blog on the git use of common problems in the solution experience, I hope it will help you!
4. There are some team project experience, please refer to the previous content
5. The junior high school curriculum will be very tight and more difficult than before (all are specialized courses, there is no sports Mao horse Zhe line to test this category); So timing and target choice is very important, come on!
4. Expectations for the future
1. Although the course is over, the project has achieved its goals and will continue to be revised;
2. Hope that in the following days, will be more positive attitude to learn new knowledge;
3. While the coding ability is strengthened, the understanding of various ideas in the software development process will be more profound;
5. The final summary
In fact, some regret, this semester of the soft practice course is not very serious to learn, especially in the previous sections on the introduction and use of various tools, due to unreasonable personal time, the basic is to deal with the past.
In any case, fortunately, still insisted on going to the end.
When I first started teaming up, I wore the short sleeves of autumn;
By the end of the last time, they had worn a thick winter coat.
From October to December, from the autumn to the winter, two months of common struggle also cultivated a few people's friendship, words not much but careful CSL, occasionally will be late, good at fighting, humorous and funny Yu Shun, serious study and often committed two of Kunming, there are also hanging the name of the leader is often no patience, work impatient of their own ... Several personalities of different people, for a common goal to meet together to discuss together, stay up late overtime, exchange study together, this unforgettable memories, will be engraved in the valuable university career. We are the code. R!
School when the elder brother said a word "no beginning, fresh grams have the end." The students who can persist in the end are good. All the way, thanks to the careful planning of each course, thank the TA teacher every blog meticulous review, as well as put forward the valuable advice, thanks to the students in the process of reminding and help, thank you all the way, has been diligent, fully cooperate, not disgruntled teammates. Special thanks has been providing technical help and answer the handsome and can write code of Wei Peng seniors.
The road to the practice of soft work is here, but the road to becoming a qualified programmer is still a long way off.
There is no beginning, the fresh Gram has the end.
Soft Work Practice Summary work