Chen Hao, Senior Development Manager of Amazon and master of cool shell (@ left ear mouse), published an article citing Weibo, proposing that most development teams do not need independent test roles. EMC China Research Institute recommended a highly scalable blog article to discuss the architecture and design of a large e-shopping website.
"The majority of development teams about testing and testing http://t.cn/zOyfLi4 don't need an independent testing role," Chen says on the microblog. Even if there is one, all of his development time should be over 20:1 than all the test time above. Just look at some of the most successful software development teams since ancient times ."
He continued to reference the article: "'developers should test their own code. There is nothing to say. The truth behind this is not important. This includes unit testing, full-coverage automated testing, manual testing, or combined testing. If your developers cannot/do not want or think that this is "not my responsibility", you need a better programmer. '"
He also mentioned in his reply: "Amazon did this. ⋯ Furthermore, Amazon's O & M is done by developers themselves, from the demand to the O & M, but also to recruitment, project self-management and other technical matters irrelevant. The team size is only about 8 people, claiming to be pizza team, a pizza can feed the team ."
Your comments and feedback are as follows:
Unfortunately, I am a programmer: First of all, it depends on whether the decision makers think so. Otherwise, it is very difficult to push. Development does not pay attention to testing, especially single-test. It is a natural condition, of course, it is better to have SQA-like organizations assign the power to improve the process to promote development self-testing, and set self-testing indicators to be included in the assessment, so that the driving force is stronger ~
KT Liu Shijun: his opinion is reasonable, but it does not meet the "national conditions ". In many cases, qualified developers are missing from the development team.
Left Ear mouse: in my opinion, it is impossible to have qualified testers without qualified developers. The tester is a developer who understands the test. In addition, this is irrelevant to national conditions.
@ -Dragon: I now agree more and more with self-testing, and it is a complete automated test. Now, in many cases, the responsibility between testing and development is vague, that is, to identify who is weak.
Welkinwalker: A lot of things have been mentioned here. Everyone is responsible for their own code, whether you are a development engineer or test engineer. Developers should complete most of the testing work, but there is no need for testing engineers to ensure the quality of overall products. The idea of coverage rate is good, but in practice, the pursuit of this thing is often alienated and becomes a kind of gimmicks.
Programmer Xin: reply @ left ear mouse: I also wrote some feelings: http://t.cn/zOCU8nT please advise one or two.
Left-ears mouse: first, let's reply a bit. The biggest problem of division of labor is unclear responsibilities. If something goes wrong, they push each other. But Dev is the final person who solves the problem.
EMC China Research Institute published a microblog: "highly scalable blog often produces high-quality blog, this is no exception: http://t.cn/zOKBysL. The blogger Ilya Katsov recently participated in the architecture and design of a large e-shopping website. He summarized the design principles and main technologies used in the project and provided a lot of valuable information. We strongly recommend that you read this article. As in the past, if it is inconvenient for you to go over the wall, please click the picture attachment to view the full text ."
Luo wing 716: 1. tree data should be handled with recursive. 2. facet should be handled using hstore. For millions of products, table sharding is not required.
@ Utopia_zhouhang: The Oracle coherence used in the background for cache and message bus. For this kind of application, we didn't see any open-source product (http://t.cn/zOKrpXh) comparable to coherence. We saw hazelcast several times, however, its elastic memory is not free.
Launch_bruce. Post reading: 1. it is very important to provide IMDG for routing and load balancing. event-driven map-Reduce is more advanced and distributed. 2. for big data applications, full distributed cache is a disaster. Even if it is only an index, both distributed dB and cache are required. 3. faceted search for massive feature data poses a greater challenge. 4. for big data applications, index computing is a performance bottleneck, while for traditional enterprise applications, it is a DB. 5. for large-scale Internet-oriented enterprise applications, CDN is indeed a problem. You do not need to ensure smooth access and use. Data is too personalized and difficult to cluster. 6. to design large-scale applications, it is very important to use case in an all-round way. What is more difficult is to use case tomorrow as a platform. What is more important is the 964 principle. 7. performance, scalability, and reliability are important for the architecture of large products. deployment, testing, and maintenance are equally important.
Note: original articles: published on