Code farming ten years serial six

Source: Internet
Author: User
Tags rabbitmq

------to learn, to promote learning, to learn to use phase length

After switching to the Platform product division, I went into the base component group, a group with some of my better colleagues. The base component group is mainly to maintain some common modules and components, such as rabbitmq,mysql,redis,memcache,tomcat,ejabberd,libevent and so on. These I have not touched before, each one is they know me, I do not know them. So just at the beginning of a disorderly study, the old feel that time is not enough, often overtime, with the end of the work of the Product department to form a sharp contrast. But I like the state, which makes me feel full and energetic.

I haven't turned around yet. The base component group is pre-developing a new generation of network management systems. Because the platform product department is making a brand new 5.0 platform, a new network management system is needed to manage all the platforms ' servers and all terminals of the access platform. I turned around for a long time, the network management system was formally established by the Basic Component Group is responsible for the development. The new network management system is designed into B/s architecture, which is divided into four modules: Data collection module, data processing module, storage module and front-end display module. Because this is the base component group for the first time to do a full project from scratch, other colleagues do not understand the interface processing this block, and then arrange for me to do the front-end display this piece. Although I understand interface processing, but I have never done the web, no way, can only learn from the beginning. So during that time I spent every day in W3cschool this site, learning Html,javascript,css,ajax and so on.

Because these open source components such as Rabbitmq,ejabberd are written in Erlang. My good colleagues learned the language of Erlang in order to maintain the components written by Erlang. And then we had dinner, and I was listening to them say that Erlang is so good, so I've always been curious about Erlang, and I've always wanted to learn. When I decided to go to the platform, one of my colleagues suggested that I start learning Erlang and lend me the books he bought so that when I turned around, Erlang learned almost as well.

Although I've been studying Erlang for so long, no one, including my colleagues, has ever done any real development with Erlang. For a language, if it has never been used to develop things, then the understanding of this language is not in depth. Plus Erlang is really good at concurrent processing, and it's good for server-side development. So we're going to use Erlang to write the data Processing section of the new network management system and the Web server, and take this project as our Erlang practiced hand project.

Because I am doing the front-end display this piece, so this Web server is written by me. So it is a variety of Baidu AH. Later found cowboy this open source web framework, cowboy is written in Erlang. Then the Web server of our new network management system was written based on Cowboy.

The current end of the interface and the Web server almost when the development is complete, the data storage module of the colleague for some reason to leave, but he left only to set down the network management data using Mysql+redis to store, MySQL storage alarm information, statistics, etc. need to persist storage data, Redis stores real-time data such as online status, meeting information, alarm status, and more. The specific MySQL table design and the specific Redis data storage scheme are not given. So the leader was very worried at the time, who will take over this piece of work? My work was over for the time being, and the subsequent work had to wait until the MySQL table design and the specific Redis data storage solution came out. Because the main task of the front end is to fetch data from MySQL and Redis, and then show it to the user. So I took the initiative to take the data storage module work, but Redis and MySQL I have not learned ah, there is no way to just bite the bullet to learn.

Although a lot of things are starting from scratch, but I have never felt difficult or not adapt, I enjoy the process. In this process I deeply realized that the fastest way to learn things is to learn to use. You see me this short six months of time, learned how many things, the front-end development, Erlang,mysql,redis,linux, and so after learning, the impression is deep. So I would like to thank the network management This project, if there is no this project, platform of some things, I will not learn so fast. Of course, but also special thanks to my colleagues, in the course of learning, encountered a lot of problems, are in their help to solve, they can be said to be my platform for the development of the teacher.

The base component group is then restructured to the Base Platform department, which consists of four groups, application groups, component groups, operations groups, and deployment architecture groups. Because at the end of the product department, I have been the LTM, for the application development aspects are very familiar with, plus to the Base component group, in the network management system development performance is also good. So after the structure adjustment, I became the basic platform of the application group of the LTM, the application group is mainly to do the network management project.

Became the LTM, the leader gave me two fresh students, follow me to do network management. Perhaps you will say, you have just turned platform development not long, many things have not understood, how to bring new people? It is because I am also new, so I know how to bring new people. Because I have just experienced ah, know how to learn the relevant knowledge will be faster, know that they will care about those problems, what will make mistakes. Therefore, these two graduates are basically based on my experience in the platform group after training. After the trial period, first let them learn the front-end things, because the front-end things more independent, and suitable for new learning. For new people, the best way to motivate is, after learning a thing, can immediately use the learning to make something, which will give them a lot of sense of accomplishment, can have a strong impetus to follow-up learning.

The front-end stuff they almost finished learning in one months, and then the webmaster front-end work is handed over to them, I focus on the Web server and data storage this piece of work. The transfer of the management front-end work to them, on the one hand released my work pressure, on the other hand, also consolidated their knowledge, and further deepened their understanding of the front-end knowledge.

I let them start learning Erlang when the front-end work of the network management was done pretty much. After Erlang learned, I told them the code for the Web server, and then I handed them over to the Web server. In the same way, as they do Web servers, they consolidate Erlang's learning and deepen their understanding of Erlang.

Since the architecture was adjusted, the two colleagues who had previously been responsible for the data processing module and the collection module were assigned to the component group, and the two modules were originally handed over to our application group, but because my work was saturated and the new recruits were not yet cultivated, the two modules were temporarily responsible for the two colleagues. Now that the new people have been trained, I took all two modules. So recently has been in the maintenance and collation of these two modules, and so they understand, and then give new training.

From March 2014 to the platform Department to now, has been doing this network management project, has been very busy. I want to learn a lot of things, to develop new features, check problems, change bugs, but also to train new people. Although busy, but a lot of harvest, and very substantial.

I personally feel, terminal development and platform development, the difference is quite big. Terminal development focuses on user interaction and user experience, and platform development focuses on high stability, high availability and scalability. To do platform development requires more knowledge than terminal, the platform needs to study more technology than terminal, and many aspects are worth in-depth study.

2016 is a new year, the follow-up work should also have a new plan. Because the project has been doing the reason, although a lot of things will be, but do not know deeply, the new year should be deeper to understand. There are some things that are more interesting, but there is no time to study, and the new Year can also be used to study.

-----------------------------------------------------

You are welcome to follow my public number ^_^

Code farming ten years serial six

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.