Douban QA Supervisor Jia Yanbo speech record: good steel used in the blade

Source: Internet
Author: User
Keywords Watercress Jiayan speak solid good steel

Intermediary transaction SEO diagnosis Taobao guest Cloud host technology Hall

"CSDN Report" July 9 afternoon, CSDN Tup 11th "architect Salon--Internet research and development" in the Chinese Academy of Sciences Computing Technology Research Institute of the first floor, the event invited the industry research and development of strong Tencent and watercress guests to share the Internet product development experience, More than 300 technical managers from the industry came to the scene. Tencent search operations research and Development management Director Li Juan, Tencent R&d project director Jing, Tencent Pet Client main program, Senior software engineer Huang, Douban technical director Shin, Douban QA director Jia Yanbo delivered a wonderful speech.

  

Douban QA Supervisor Jia Yanbo

The following is the Douban QA Supervisor Jia Yanbo's lecture transcript (for reference only):

Thank you for coming here today, first I declare some of the experience of watercress, development experience is their own groping out, I want to say is that watercress is an atypical company especially in the country, may have some experience for you, some useless. Please raise your hand to ask questions in the course of the speech.

The topic of my speech today is good steel used in the blade, review the development of watercress in these years, I think we can be less popular in the implementation of all the functions of watercress is relatively good, very important one reason is that we have been maintaining a pioneering company's team culture, working methods. So what I want to share with you today is how to focus our best strengths on what should be done.

Development process, I have not really studied this matter, I think British Wikipedia, I read a big nonsense, software development process is the process of software development, I found the Chinese said software development is based on user requirements to build software product development process, these two which is better? Watercress development is in the limited human resources in accordance with the site needs to develop the process, watercress until now although we also have some handheld device applications, but basically all applications need to be linked online, or an internet company. Internet company most important a special is fast, the demand change also fast, on-line also fast, the product manager chases you every day, the project completes does not have, whether today can on, but the watercress has another question, our personnel is relatively few, is because we run some technology also to say we some idea idea, in later will talk about.

So, we concluded, I think this watercress development department culture, entrepreneurial team culture I think there are two points especially important, so I would like to share one is efficiency, we are very adhere to efficiency, whether it is efficiency or development efficiency, this is very important, because it will directly affect your efficiency. In addition, team enthusiasm, entrepreneurial team, the development of a thing when is the most efficient, when the output rate of production code good, oneself a person has a particularly good idea just want to come out late to make, this time your work efficiency is particularly high, the last watercress reflected in the entrepreneurial team inside is enthusiastic, If there is no enthusiasm can not always be very efficient development work.

When it comes to efficiency watercress, some experience is atypical, for example, the first we choose to use the language of Python, is willing to be a boa constrictor, this high-level language for us is actually pros and cons, first of all, its syntax is a class of functional-style mixed, very consistent with the appetite of developers, want to do so, do so, and do so, All two are supported, can consider, the other is scripting language, Tencent said on the line to have a dedicated server, we do not need to target the server, we are the script to go after we can run directly, but there are some drawbacks, is the high-level language is dynamic, bring some very difficult to solve the problem, Some problems can be reflected in the process of operation, we find already very common problems, loop into, but when your code is growing larger, the interaction between the particularly complex, once the module is not controlled, I quote you, you quote me, run when the logic is not so simple, involving three or four modules, People do not find this cycle, on-line running program directly to die, this is very deadly, we have done some work, has not solved this is also we need to solve the problem. China has a very active Python circle, and the Python language is a great choice for the Web.

Let's take a look at practical examples one of the tasks here is an interactive straight-line page, Python's great advantage is that it can be performed interactively, in the interactive can be directly with one, the file appears in front of the first prompt to do a lot of work, all the Douban station code has been started, Can be a seamless call code, do some debugging, operational dimension is particularly important, because some of the work, such as I have a problem cache clean up, there is a person who lost something, I check to see if the specific background data is not, the work is in the code inside a certain line to know, this thing saves us a lot of time.

The MC is an internal access caching system standard interface, which can be taken out of the page, which also involves another advantage of Python, advanced language advantages shown here. Another save time Python is a very historical language, the appearance of Time and Java is the same, these years the development process has a third party to write some very good code functions, we can take out directly with, this is the watercress code inside intercepted out, Above three Line PL is a company in the United States to develop processing image of a software package, I put a picture of transparency, the following can give a picture with a watermark, these two simple features with these third-party tools can be easily written out.

Another very important and efficient way I think is also a start-up company, not to say that special attention to us now each team is a start-up team, we do anything not to say that this thing to limit the death, I now on the line system to start up, there is a dedicated to do this online, we release a line process, Finally, we all make a list, watercress is to say that there is a need to come on line things to tell me, we believe that internal communication is more effective than cumbersome process, especially the number of watercress is not many cases, I am not attacking other large companies, I believe that the number of people to a certain amount of time some necessary process is to go. Look at the development process, and for a developer basically these things come in contact every week, to do one thing, today I want to add a new feature to the book channel, the Programmer to make a branch of the program backbone, give birth to a new small bud, so that, regardless of my submission and other code does not affect, The rest is the development, the process of submitting, testing, and even pull other people over, the engineer has no time to help me test the side, these things are done, leaving the least technical content on line work.

But this development process is not the only process, our process can be taken away at any time, you can take a look at this, as a very common situation to predict that all things may go wrong, including hard disk we think that in a few years no problem, to the engine room 100 machines basically every day have hard disk bad, for example, emergency line I problem, Lead to the online master is completely unavailable, use the future will have a variety of problems, this time to emergency on-line, a problem hurriedly repaired, two minutes completed, we see the repair has no problem, no problem, immediately help you on this is the process, can say an example, Friday an emergency online, this line is four minutes, To find problems, to modify, finally all finished, this ability is very important, because as an internet company we keep a tradition, bring a problem can not put all the big in the upfront solution, because now to maintain the product is very much, in all these every day will have code submission case, To cover two test centers that are completely covered by every company, we allow problems, so on the line when we have to stare at, a problem on line engineers directly on the line to suspend the process, who has a problem hurriedly repair, this is a very good way, if I do not count the wrong is from Facebook learned.

Put the online process in detail, in fact, there is still a normal link still have a lot of work to do, for example, after the development of the first code to review, in the development process every day the team to see how the code, the review process in the picture to see a lot of people to your code refers to a row, Team review is a growing group of communication systems, inside the structure, a variety of places to pay attention to more and more, this thing is not everyone can realize, especially for the new to add watercress staff, through code review, especially before the new employees to ensure the basic development knowledge, code specifications within the team for good communication, Included within the team is everyone doing different things, doing this product I did not contact before, if there is no code review team internal communication, although working on the same team for some code is not clear.

The

Test in watercress also has atypical, test this live by development testing when engineers are complex, unit testing, Web testing, all of these things development engineers must understand, learn, must use, this process in order to mention the efficiency of some automated systems to help engineers do this thing. One of the most important purpose is to say that testing is not by the quality of software quality code is not determined by the test engineer, the engineer to compensate for the effect of the post, the source of code quality is a development engineer, not the pursuit of beauty testing, may not write good code, to cope with the Today, hurriedly copy So we want everyone to have quality awareness, with the front of these things, for the Watercress tool is a great degree to improve the efficiency of a means, tools include many aspects, watercress we can look at these examples, interactive implementation, some things are not suitable for us to do, some things although not online to users, But it's a long piece of code, tools there are a lot of hundreds of scripts that have been left behind, these scripts actually I think condensed predecessors some wisdom knowledge, for example, I came down to send some letters, consider me to write, learn how the watercress inside how to send mail, with tools someone will tell new employees do not, search, Search can be found in many versions, each code is validated by many people, online running for a long time is a practical experience.

Here are some screenshots, is to do code static scanning, a lot of problems only really run up to know, but the software to write to the back of the branch so many no way to test all branches again, need to scan all the original code components, including here, there is an expansion of their ability, Wrote some of the watercress himself to scan the code of gadgets to put in, scan session reference, found that three components may have problems, this line of code to use a certain function to deal with, this can remind the developer some hidden trouble, which already contains some problems, write when needless to say that they want to run around, all things are toss it once. The error log is a web company strength, all errors are on their own server, but there is another problem, the same distribution on many machines, perhaps especially with the maintenance of the operator is not every server can go up, we have developed such a tool to catch all the error log down, Would have left every line of code at the scene of the error, keep each of the variables involved in the value of the variable at that time, including when the user visited this with a variety of variables and so on, so that our programmers can focus on the said in a place to find all the problems, such as I was online, the code on the line haunted error, First want high priority error, I brush half an hour to find no error, maybe a new two other things, look at, is I or other people, go out is other people can inform him, let the programmer debug inside free, including error how, point open can see at that time error user request pass over things, Most of the time, you can change the program not to do the local environment rehabilitation and so on.

In addition, we also need some tools to improve the efficiency of the website, watercress resources not only refers to people, including our servers are very few, so the server above the program execution efficiency for us is very important, can help us save a lot of money, we did a tool early, you can run online, brush a page, the bottom of which statements, What is the operation, what is hot, the implementation of a particularly long, time-consuming and so on and so on, this is a very efficient tool for us, with the tool after the average access time to stay in a relatively small range.

These tools still need to be performed by people. We want this tool to get the computer to do it automatically, we can do more, the simplest Web test, we put it in the framework of the building, also established automated way, before a programmer a test, with our report together, only after the programmer finished submitting, submitted after the program automatic test, No news is good news, did not receive the message that your code is very good has passed, if you receive the message to be repaired quickly, all the people back will receive the same report, which only function failure will send warning letter.

Said so many things, but I think the most core one, is also for watercress to maintain the development team creativity is a very important aspect, is that we give you a very flexible choice of space, recall the phenomenon of independent development, entrepreneurial team efficiency reasons, bent to go above, he did is a new predecessors did not do things, Because there is no previous experience, so from the user point of view of this thing to do, analysis of all the benefits, he will choose the best solution to do, this process if there is no such thing only to give him a route, you can only use Python is not fun, we hope that programmers have a more flexible choice of space, Hope that the team will continue to contact with the new mechanism, technology, to apply these technologies to the development of watercress.

We have some basic facilities, this is the way to gradually achieve, for example, we have a distributed database solution, we also do some other things, this interface is very simple, only put in, remove, delete so a few operations, with such infrastructure developers have trouble, This is a very important aspect of productivity. Including that we have the freedom to choose the design, and this freedom is limited. Our company also has an architect, we will discuss what the new project is going to do, choose this thing with the existing benefits, everything is in a wide range of communication to reach consensus, For example, there are some items in the watercress is done with Django, there are some other, similar also, we develop the way, watercress is an atypical, with a python, but Python is not a must option, useful C, there is an algorithm R, these things are also, By giving everyone a better choice of space, we want to avoid our internal architecture, technical rigidities, and hope to provide a more entrepreneurial team free to do this in the best way possible.

We believe all of this is done by ourselves, if the team is dead, work is not interested, I think the company does not need to start a business, directly can go bankrupt, we very much emphasize the enthusiasm of work, inside people, environmental growth these are very important factors, our employees are equal, development Department, technical director, Our architects, all of us, our development, and so on, all of us can be developed, and until today, we are still doing development work, we hope that through this thing can let you feel that we are really a team, we discuss the issue of time will not say like a leader, We all know the technology you can do real communication, choose what we use, so I think the work enthusiasm of an employee is certainly not, quoting the former director of the Facebook project, he said, "always will be recruited as your first priority." Of course, although the watercress does not take it as such a strict important point, but the watercress is actually recruiting has been equivalent to our first priority, we are very cautious of hiring, a few years down our number is not particularly rapid growth, we recruit a lot of requirements, of course, this requirement is not required you have this ability We feel that the last and most important thing is what we said earlier, we want to maintain the enthusiasm of the work team, so you this person no matter you cattle, to be able to work harmoniously with the team, we do a good job, can not say that I am very high, I came to see the other people are not pleasing to the end of the team, So our recruitment will invite all recruitment team or even with the team and he may have cooperation with the people to interview, confirm that this person is in line with watercress, suitable for watercress, I have a topic here, can be a very good way to achieve, It is important to be able to innovate in a way that a team member can accept.

There is also a very important working environment, a lot of people to the Watercress office once, with a word that your environment is really not the same, very open. In addition now we choose in 798, believe many people have been to, 798 are large factories, the security agencies, and even before we rent office is in the middle of a layer, the watercress went to the later put those are demolished, we encourage you to exchange, discussion, all tables are not all together, and now squeezed a little, We rented another one.

We say the software environment, we hope that the development engineer is the most important for the product manager to do things, do a good job on the line, we hope that other sundries can save him some time, watercress concentrated an example, see the current code directly database initialization, one-click working environment, hope to make this thing as simple as possible, This is relatively fast. And some have been prepared to develop virtual machines, no matter where you are, the office home can be linked.

Said a variety of things, it refers to a little less restrictions, as far as possible do not do some administrative coercion of things, such as the test code, is not to have a code coverage, this often will become a indicator of your work, if up to 80%, in watercress we try not to do this limit, We're giving you more advice, and you'll be better off, but you also have other options, if there are other options to communicate, really good we let you do, this is a very important reason for our efficiency, if you limit all things to death, everyone in a box to work there is no innovation to speak of, Administrative restrictions are sometimes necessary to do some, such as the requirement to write unit tests, we do not require testing coverage. There is also one thing we try to encourage in generating some stars out, unlike movie stars sparkling, the development department came out with a cow, did a special cow thing in the development department is a star, with the star level is similar, we worship this star, star has exemplary role, to make a good thing, this person did too good, The same work took a day to get it done, and the distributed database he made was so convenient, through his demonstration effect will put these good things to all the team promotion, out of such a person all will use, to learn, but to consider the team there are all kinds of people, character is different, some people especially like to create new things, Do some of the predecessors did not do things, love to study new technologies, language added a new feature, used on our website particularly good and so on, there are neat, I am also running to do QA, there is a neat freak sent him to do QA or unit test.

This inside also has one kind is the hard working, silently work, get up earlier than the chicken, we all know, this kind of ox spirit of their own character does not want to be a star, this kind of person I think must be encouraged, through with everyone at some time with everyone affirmed him, let team people know how he does this practice to us to bring what benefits. Each has its own role, the position I believe that everyone just give full play to what he is best at, let him do his most interesting things can do things well, like his own independent to do things, to that thing special catch fans can do, very not interested in this matter to you Shing, do not do well.

Said a lot of staff to give us dedication, employees themselves are also need, watercress we want to do all kinds of things so that everyone can grow up, we do code review, etc. is a technical standard, and we have some team activities today the classmate read a book, see a thing particularly good, We go to the conference room for a while, team work to communicate the knowledge between the team, we have some training, development departments, testing departments, I have some knowledge may not be clear to everyone, you can tell us a bit, we have to discuss, in addition to each month we allow employees to buy books, The book Special Good watercress No we can help you buy, after reading can talk about, there is an activity is happy day, design a game everyone together to play, promote unit testing knowledge we set up a, is a real game, there is a small game about a person with a sword, shield, We all know what we're going to do today. Group A to write unit tests Group B practice this unit test, the following C group to write a unit test to disclose the problem of people in front, to form a challenge, this is a very good way to promote, but the process must be coordinated with other teams, the product department said and pulled out, One months to do many times, to deal with the relationship between the people.

The front of all things are around a little, people are the most valuable, people do not use the future, do not old overtime, to better an environment, more can inspire their environment to do, this can actually refer to their own, I believe that we are all developed from the origin, When you were in the process of developing a stressful time, what were the things that you couldn't accept, what if I do that, I'm going to work more comfortably. These are the things we need to be aware of in the team, to be kind to ourselves, to treat our employees well, to do things we don't want to do, and not to impose on our employees.

Watercress is very important success factor is that we adhere to the idea that everyone is involved in the development process, everyone knows where the development process now there are problems, we need to make improvements, and we are constantly doing these improvements, to the extreme to make people work more comfortable, not trouble, So we keep this entrepreneurial enthusiasm, entrepreneurial team for the Internet company is a very important thing, we hope that the watercress experience can give us some favorable place, do more tools, and finally give back to everyone doing web automation to do some automated testing framework tools open Source, I hope that we can work together to make the development work more efficient, and the engineers will be happier. Thank you!

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.