Link: release of personal accounting software version 0.1
First, let's talk about the failure (becauseCodeIn comparison, the write is really bad ):
1,The design is not documented.Although the preliminary design has been around for ten days, it has always been a fragmented idea and is not documented on the computer. As a result, some of the ideas are relatively sloppy and I don't know where to go next time. Even more times I don't know where to go, so the cycle is long. At the next development, you should force yourselfDevelop logs every dayQuestions, new ideas, browsing Resources.
2 , focus too much on details, not on the whole. I have been reading design patterns for the past few days. The author believes that the previous development models are the nouns and verbs of exploration needs, and then convert them into classes and methods, as a result, the overall structure is unreasonable. A more reasonable development model requires us to we cannot focus on details too early, consider the context of the details, that is, the overall environment . After obtaining this question, I divided it into several winform class, without too much consideration for the design pattern, the code looks very elegant. Specifically, it violates the principle of "one design, multiple use" (encapsulating repeated places. For example, the processing of nodes involves repeated processing on the daily, monthly, yearly, and ledger nodes in many places, switch case such bad code. In fact, a tree node class is designed, which is inherited by day, month, year, and account book respectively. The effect should be better if multi-state processing is used.
Previously UsedJavaWhen developing, the habit is to considerProgramArchitecture,. NetAfter that, we often unconsciously think about the controls that can be used first, without the overall picture.Pai_^.
3 ,Useless UML . I used to think that it is unnecessary to make a small software. UML In fact UML It is useful not only for large projects but also for personal projects. After the development stage, there are many classes, and sometimes they are all confused. I don't know which function of the class to use. If there is a class diagram at this time, it would be nice. In the early stage of development, if a use case diagram, time sequence diagram, and class diagram are drawn to guide the subsequent development work, the subsequent development will not be the same as patching, and there will be no replacement. Of course, this is also based on the full design. My two data access interfaces are designed to be rough. As a result, the method declaration is added to the interface when functions are missing in the future, then change the implementation class. When I make the second version after development, I may forget which module is what I do without these graphs, and it is not easy to communicate with others. Wait until you have time. UML Learn more.
4 ,No plan.Though not used Office Inside Project This is a big guy, but it is always good to use a software record. After I write a function, I forget what to do next and want to spend a long time (I'm forgetful ). Later I found that Vs. NET 2003 The following task list It's a good thing, just use this recording task. But I think it is not strong enough. Todolist ( Http://www.abstractspoon.com/ ), free of charge, and powerful and practical.
5 , mainform there are too many codes in it. although MVC it feels like a website is used only, however, for personal software, the interface and functions should not be too coupled. Many of my operations on Tree nodes are placed in mainform when you wait for the next version, be sure to streamline it.
For other version control,Nant,BugRecord, log, and so on. I will learn it slowly.
There are a lot of failures, but there are still some that make me feel better.
1,Iterative development.The goal I set for myself is to make it first, and then implement it after the feature can be used. If you want to use the first version, I guess I will not be fighting until the next version comes out. Too long cycles and too high development difficulty can easily lead to frustration, and the goal is broken down to complete better.
2 ,Diligently query data.Multi-Query Msdn Naturally, it is quite old-fashioned. I am used to directly look at the instance code. I feel dizzy when I have more words. Msdn The code in is well written. In addition Codeproject This is also a must-have. It makes me understand it soon. XML , Ado. net I am eager to read the books.BlogGood insideArticleThere are also many good things that can be found through intra-site search.
3,Data category.If you have more materials, you must divide them into classes. I used images, reference articles, and referencesSource codePut it together with the program directory, and write an index on the resource (record what the resource is for development), which makes it easier to find.
4,Write down the skills learned in the development processIn this way, the next time you do the same thing, it will be much faster. I putMessageBox,Treeview,DataGridSome of them write down their own examples. If you use these controls next time, it will be easy to get started.
the above is my feeling. Maybe it's a beginner. If the homepage is inappropriate, I will move it to the newbie area. You are welcome to talk about your experience in developing personal software.