One, "Thousand Road" and "Grind tofu"
A long time ago to listen to a story: once there was a young man, a little ambition, grew up without a good life, opened a tofu workshop, daily grind tofu tired waist acid back pain. Every night, the lad tossing and turning, always want to find a better "cause of the road", but think about Chiba, tried dozens of roads, all go. Night does not sleep, day work more tired, the lad is not sigh with lament: "At night think Thousand road, day still have to grind tofu".
Not long ago read an article: "CMM deceived China's software industry," the content of the CMM is a reflection of the heat. The CMM certainly does not take the initiative to deceive people, it is actually our software industry deceive itself. We never lack of "so-and-so Mode", "for So-and-so", "So-and-so" and so on sounds wonderful things, the problem is the actual research and development process can do to get the code? The reality is cruel, the wonderful concept flying all over the sky, the development process is still workshop-style, it is: "At night think Thousand road, day also have to grind tofu".
Chinese stories usually have a happy ending, and now the story of "grinding tofu." After a long time, the lad finally faced the reality, no longer indulge in unrealistic fantasy, hard to grind tofu, idle pondering posting tips, slowly, his tofu quality more and more good, daily production is more and more, the workshop opened more and more, became well-known "tofu Boss", and later, he started another business, The discovery of a young fantasy, in fact, many are feasible, because now "ability" and "financial" are different.
Besides software development. We are not opposed to any theory, technology, methods, models, etc., but first, your business or team can do it? Do not make meaningless assumptions like "if the development time is one times longer, you can do it". Second, did it really make a profit? Benefit refers to the profit after deducting the cost. If you do not have these two points, then still don't think "thousand Way" all day, first think how good "grind tofu" bar.
For all software development, code writing is an inescapable "grinding tofu." To improve the code writing, high efficiency and low cost to develop high-quality code, for software products can be in the fierce competition, for the survival and development of software enterprises, have important practical significance.
This article is the subject document of the sample project C + + code documentation builder for Visual unit applications, it is the method and tool to improve code writing, all contents are tested by actual combat, have "feasible" and "benefit" two characteristics, "feasible" means lower threshold or no threshold, can be implemented by existing conditions; "Benefit" means to have an immediate effect.
The example project cited in this article, simulates the worst development team, the most chaotic development process: by the very few code writing test and the Research department development, the personnel is not fixed, the time is not fixed, who has the space to write some; there is no design, no documentation, and the base does not save the coded person's information in the code file, Members rely entirely on reading code and test cases to understand the code written by other members, except for simple naming rules, there are no other specifications, and even a function cannot be more than 50 lines in principle or not (the example has more than 200 lines of function Cmacro::unwind (), More than 10,000 paths). Any development team and development process will be better than the development team and development process of the sample project, so the methodologies and tools demonstrated by the paradigm are "broadly feasible".
This article describes how to perform efficient coding debugging and achieve thorough unit testing. Coding debugging is any software development can not escape the work, under the support of Visual unit coding debugging, just the work must be done to change the way, do not need to do more, you can significantly improve the efficiency and quality of programming; On the other hand, Visual The unit has radically changed the way units test is difficult to implement or expensive, and it is easy and quick to achieve thorough unit testing, regardless of the proportion of developers and testers in the team.