Some Thoughts on Open Source Software Design

I haven't updated my blog for a long time. I plan to write an article. I have written Telegram SMS for more than a year and received a lot of issues. I think it would be better to summarize my experience.

Any unit test and fully covered manual test

From experience, unit testing is very important, and a program can not develop stably without unit testing. I personally prefer complex and extreme test cases. After all, many errors are caused by the fact that some extreme situations are not handled. But don't rely too much on unit testing. Manual testing should start before the release of each candidate version. Unit testing deals more with common logic errors, And whether it can continue to work normally when some errors occur. While manual testing pays more attention to UI experience, function status under normal use, and overall experience.

Do not add any function at will

Personally, I think this problem is quite common. Many functions seem to be very practical, but in fact, they are randomly added to the main line of the project, and then they are neglected in maintenance, which will lead to the rotten end of this function. Personally, I think it is better not to provide this function than to provide a function that is not easy to use. After all, many times we don't need so many functions. It would be better to make the project simpler and rougher. I often receive many suggestions on personal needs in the issue. I think these suggestions are a good idea for individuals. But these functions should not be added to the main line of the project. The main line of the project should be universal functions. If you need some private customization functions, I think it would be more reasonable to open a branch project to deal with them. Many projects will soon add a function with an unclear purpose. I think this is not desirable, because it will put this function in a dilemma. On the one hand, it will face users who need this function, but because of the design interface and development bottlenecks. Can't be implemented well

Do not start any function by default at will

This view is also related to the above. It has been proved that letting the function be enabled by default at will may cause users' aversion. But there is one function that I think is an exception. It is a function that improves security. The default opening of these functions helps protect users' privacy, but it should be noted that in a secure network environment, users should be allowed to upgrade without feeling.

Be good at subtraction

I think this is a problem of many open source projects. In the same project, there will be some functions with similar functions, or users will be provided with many choices. Personally, I think this practice has improved the scalability of software, but it has brought about fragmentation of interface maintenance, and users may not be able to find best practices among a bunch of options. Although many open source software is free, in terms of design, I think it is better to provide a best practice rather than multiple similar functions and multiple choices, although it seems less free and optional. But on the one hand, it reduces the difficulty of development and maintenance, on the other hand, it also reduces the learning cost of users. At the same time, I think reducing some unnecessary functions can also bring better experience. For example, the classification function of blog posts is difficult to become a standard. Users need to consider what categories to include when writing, and most readers come in from search engines in the process of reading. They are likely to enter an article directly, or see the end from the beginning on the home page. Therefore, classification is relatively unimportant and may cause trouble in use.

 qwe7002

Has been very high-profile, in fact, is a clown. The technology is useless, but also pretends to be an ox. I like to think more about everything, but I often find that I think too much. The hobby is very simple, but the things made are often inferior. They are extremely harsh on their own works, and they are often the last ones to die. Half science, half engineering and half literary thinking, I still don't understand what this is. Everything is a floating cloud, just be happy.

This site uses the Disqus comment service. If it cannot be displayed, please check your network link