Back to my point made earlier: "from a lot of cache and object-based OO business logic is meaningless." The reason is obvious, and only use a lot of cache and object-based business logic to create a OO structure is much larger than the proceeds until the price we pay, OO itself, where the "memory objects in the world" also qualified for the out of "persistent objects world "is fundamental to existence. If we can put a lot of memory for business logic move into the application memory (instead of DB Server), then the effect will be better. Of course, there are some operations that do not fit the application logic, such as large amounts of data for particular non-personalized batch update operation. As for what is called a lot, depending on performance considerations and empirical. Will move a lot of business logic from the database to the application memory is feasible, especially for the very limited pre-implementation data according to a large number of entries to judge to decide whether to produce a substantive change in the logic of the data especially. The cost of the stored procedure may be more nearly the speed point, but avoided because a lot does not meet the rules which will not produce substantial changes in the data resulting from invalid call to the data server application server network back and forth, both compared to unnecessary Reciprocating often costs much higher. The reality of e-commerce site, which is very valuable.
2) OO is not synonymous with low-performance, well-designed OO will bring unexpected performance.
OO is not synonymous with low performance. On the contrary, when I am regarded as I improve site performance OO basic weapons: The structure of rational and efficient algorithm for object caching, and integration with the object and at the same address space of the business logic, we are able to easily upgrade system performance. Of course, the premise is correct all the design, which continue to apply OO, also applies to all the world, there is nothing out of the implementation details and long live through the ages!
With our recently completed a larger e-commerce site as an example (average daily orders> 12,000, about 3,000 orders for execution Lots and recent growth momentum is very good), after running nearly three months, the site in Alexa, Statistics from the earlier rate been very slow (average of 6 to 7 wonderful one page), after a slow (Alexa data is cumulative, so it is not immediately jump), up to average (average of one page 2.0s). At the same time, DB Server's CPU Usage 80% from the original sharp decline in the average to an average of 10%! In the existing system, basically, apart from some large-volume data movement and data paging query the database server segment, all business logic are present in our application logic. This is probably a lot of friends in the development of illegal intuitive. I often hear is: use stored procedures right, to the performance ... I am not at all occasions against the use of stored procedures. But we must be clear that each method has the advantage of what? Weaknesses? Conditions? For what occasion? What occasion would not apply, what occasion the two should be in a more subtle scenes / situations, or mixed, respectively. This is a bit like a physics theorem: Who has seen the conditions do not apply the theorem?
3) If you are concerned about the ability Scale out, the more you should consider OO.
Real-world web applications, Scalability issues must be considered, unless the business will never grow. As long as the business will grow, increasing the number of users, the server will soon reach the limit performance and concurrency. Solve this problem, usually only two options: Scale up - buy a better server, which can often be too high to be realistic because of the price; Scale out - to buy more servers, which often is the ultimate practical choice. However Scale out is always faced with the data set (even if the data is still split over the relative concentration of each, you can do unlimited free split) problem. If a large number of logic on the database server side, I believe that the database server will make the system very quickly lose the ability and potential Scale out. Therefore, to ensure the ability to Scale out to ensure that the database (of course, necessary to split Celue is also important, but Shuyu another topic) Zhichu Li substance of Shuojutijiao and inevitable data query, the data can be avoided inquiries and non-substantive data submitted should try to be avoided. This is in fact and we said above, "from a large number of cache and object-based OO business logic is meaningless," just, we will become in winning the good things.
4) OO + N-Tier software development and even the basic idea of all the other methods of power is the logical constant pursuit of aggregation and complex land.
We all know, software development, analysis and design method has been evolved in the misconduct, the new concept emerging. Software development is also the first of a straight line from the machine language, to process-oriented assembly language, and then to object oriented analysis object-oriented design and programming (inheritance, interfaces, polymorphism), and later DP (design mode), AOP (aspect-oriented programming )...銆?A series of evolution, do what people are confused by the confusion of doubts from the start. So in this process of evolution, a consistent what? Remains unchanged then what is it?
相关链接:
3GP to MPEGAdobe "culmination of the track" Result of Contest winnersVOB to SWFJDO or CMP? (Reprinted)Tencent said the prosecution did Not rule out the possibility 51.comFLV to ZUNEWhat is digital TV renovation project?linux operating system to find loopholes in the NSimple Password ManagersShanghai real ESTATE control policies introduced CountdownYunjie: Mr. Chen in the "correction"?Compare Languages EducationWang Donglin Beijing Scholar Chairman