Please stop re-inventing the wheel.
Do not reinvent the wheel.
There are a lot of software wheels that get re-defined Ted all the time. re-inventing is a time consuming waste that cannot projects can cut. in almost all cases it's much better to do some due diligence and use an off the shelf component where you can. invest your time, passion and expertise in your actual product.
In the process of software development, we will find that a large number of software tools are re-invented and manufactured, which is a waste of time and can be avoided by many projects. In most cases, we should exercise caution and use existing tools to put our time, enthusiasm, and expertise into practical products.
Save your energy for your real innovations
Focus on Product Innovation
Engineers are smart. sometimes we get cocky and think because we know how to build the best X on the Web, we also know better about everything else too. don't fall into this trap. it's very unlikely a genius web developer can really create a better database than off the shelf. there are too good ideas begging to be programmed. don't waste time on something that's outside your core innovation. the world needs customer focused applications that work well with people. don't waste your time creating the ten thousandth backend widget you coshould have gotten for free on the Internet.
Software engineers are both smart and competent. Sometimes, they are even arrogant. They can build the best products in their own field, so they also think they can do it in other fields. Do not step into this misunderstanding. It is unlikely that a talented web developer can build a database that is better than the existing one. Please do not waste time out of core business. This world needs applications that can enable customer attention and good collaboration with people, do not waste time creating tools that can be easily obtained from the Internet.
Existing protocols are good
Yes.
Nothing makes me crazy than software that implements a broken version of a standard protocol. you can spend time designing a brand new protocol, but if you are doing something that is well known on the net, you should try hard to work with existing protocols. existing protocols have some miles on them and are usually good compromises for everything they do. designing and testing new protocols is just quicksand for most projects. if you can't say that the new protocol is the heart of what's cool about your product, then don't make a new protocol.
What makes me feel ridiculous is the software that implements a broken version of a standard protocol. You can spend time designing a brand new protocol, rather than the well-known existing ones. You should make full use of these existing protocols for your work, these protocols have already had many good trade-offs and trade-offs within the scope of their coverage. It is very dangerous for most projects to develop and test a new Protocol. If you cannot say that this new protocol is the coolest part of your product, do not develop a new protocol.
Get your design patterns off the shelf
Use existing models
Most software project fall into some pretty well known patterns. console applications, three tier Web applications, client-server applications and peer to peer applications are very common patterns. if your product falls into any well known pattern, follow the best practices for your pattern. innovate where you are really on the cutting edge and try to use cookies cutters wherever else you can.
Most software projects can apply some known and well-running modes. Console applications, L3 web applications, client-server applications, and point-to-point applications are all very common models. If your product development uses this mode, follow the best practices. Make full use of existing tools to continuously improve and innovate in leading areas.
Original post address: http://blogs.msdn.com/dustin_andrews/archive/2008/08/25/please-stop-re-inventing-the-wheel.aspx
If the translation is inaccurate, please criticize and correct it.