Most of the thinking of programmers in the open source world is severe, which is harmful in many cases. Before making a new product / project, many people will say, hey, you should refer to good open source and use him directly. I don't know if I have the biggest hurt in this way: because I don't have the opportunity to think about what I have to do. This is why Hibernate creates EHCACHE. Before Ehcache, there have been many cache implementations. Why didn't you use it directly? Because Hibernate does not know what the cache interface should be like. So there is a small simple ehcache, it is there is this little thing, and the integration of other Cache mechanisms is possible. Because Hibernate knows what the interface to follow the outside world is. If you use a Cache implementation directly, I am afraid that there is no Hibernate's flexible Cache mechanism.
This kind of thinking can also be promoted to why small companies are unwilling to accept a larger financing, because it is easy to scall down the small company's original development concept, and finally nothing.
I am now in the design platform, I have found such a strange circle: I always want to integrate the latest best open source products into my platform, but Ignore the definition of Roadmap Feature, that is, there is no clear scale to define the platform. A version should contain those features that should be achieved. The consequence of this is that I am in a good product, and I can't pull it out like addicted. In the deep open source world, everything is too tempting: in order to select an O / R mapping plan, I compare the various implementations of JDO and Hibernate, read a lot of documents (advertising?), And finally return To hibernate; in order to select a Mock test plan, I compared Easymock, JMOCK, I have never used Mock test before, now I have quite clear the mechanism for EasyMock; in order to select a code coverage tool, I Compared to Clover, JCOVERAGE, and EMMA, finally selected JCOVERAGE, in order to select an IOC container, I compared Spring and HiveMind, and finally selected Spring. In order to select a web development framework, I re-examine and compare SpringMVC. Webwork, struts, tapestry., Finally selected TapeStry. This process is full of sigh, also full of temptation: Many related items have a detrimental design of the project will sway when you sway in front of you, let you can't help but look down, then you will take it in an afternoon. Google or TSS or Javalobby a link started by a link that is introduced, leave 4 hours of time you can't make up. Looking at the getting closer Release Date, the mood is getting more unhappy.
Therefore, once the previous research is over, the designer should decisively cut off the connection with the open source, concentrate on the implementation of the implementation, once it is found that there is a possibility to cut out a new design, don't immediately find an open source product, please first Designing a wisdom to use a break (good design is refactored, isn't it?) Things, first put the framework, start reconstructing, etc. After this design is basically formed, Can run, then re-get
OS
Contact, refer to the same type of product, reconstructed or integrated. The goal of doing this is to control the thinking thinking, take out a project in the current state in the limited time, no bottom line project
/