Upgrade from journeyman status to the architect's basic skills and techniques (your many years of experience)

I think already advanced development, since that is fairly hard, with a lot of time to read the information architect aspects, but also have the opportunity to engage in a year or so activities related to architecture. I still self-knowledge, but also talk less than the standard technical architecture, but in my current work environment, to get guidance cattle were witnessed, I also continue to study with a teacher through, since that is the right way to go on the upgrade, that as long as efforts continue in the near future to get the architect's salary.

Looking back I was at an advanced stage of development, can be considered a journeyman, every day are doing the physical work, it means constantly replicate the familiar mode of operation. Since the work can not practice the knowledge high concurrency and other components necessary for architects, there were only can only rely on the accumulation of data to look at, to feel the actual requirements by interviewing the company's architect, he felt also take a lot of detour.

In order to continue to upgrade the road back, I wrote this article summarizes the stage, but also on the one hand by summarizing, let me be more specific follow-up plans and objectives, on the other hand, also we hope to make a modest personal give you a fellow traveler detours.

1 journeyman risk of setbacks, so first of all have to continue to make progress on subjective

Each company do have limitations in fact alive, if you stay in this stage of the company's skilled workers, then we can not keep up with the pace of technological progress, long, long time will be left behind.

Then again, not every journeyman able to withstand the temptation of the comfort zone, I took I experienced the comfort zone and challenge the current district situation compare.

Before going to work in foreign companies, because of daily living can handle dry, so not the slightest pressure, and because flexible working time, so 10:00 to count the norm, there are always other week before to 10:30, the way to work, but also to look at the scenery with relaxed mood. In the current Internet companies, before going to work you have to plan the day's work, sometimes doing live today think technically I am not familiar, or have to urge other groups to the interface, I often have the feeling uneasy, sometimes along the way We have to trot, while also flexible working, but always before 9 am, early morning you can start doing things.

At work in a foreign company when the pressure of little progress, and will be doing live, so you can coasted to dry, usually the time can visit a website, and a mortar round are common, will work overtime to 8:00 complain, to Friday afternoon, most people did not mind the work, basically waiting for commuting. In Internet companies, so much to live every day, do a good live, we have to continue to reflect, to see how better to dry, otherwise a lot of pressure. Work until 9:00 at night are common, but the biggest headache is that many do not use time can be resolved, such as the technical program, which involves the unfamiliar technology, you have to study hard.

Weekends and after work, when in a foreign company, there is no need to accumulate, so it is easy, but also to enjoy life, as I was writing books and blog, also two books,  Java Web tutorial interview lightweight development  and  Java core technology and interview Guide  , fairly hard, and in Internet companies, I'm sorry, and usually got to see the information, and certainly can not pretend to look, if not a stage in progress, it is said to sit and so on.

From luxury to economy, and technical challenges than the comfort zone with the area behind a lot, and senior developers to architect upgrade task may not be easy to reach, so in the comfort zone, can only usually more motivated, how motivated ? In fact, out of the college entrance examination that year a quarter of the level of effort can be.

From 2 will begin with distributed components, and can not just look at information

Architect important task is to solve the problem of distributed high concurrency, so the upgrade can start will use some distributed framework.

For example, how nginx configuration, dubbo and zookeeper how to integrate, kafka how to configure messaging middleware, redis how to configure, or how to configure the ETL. After reading various tutorials, must find their own environment configuration look like me by nginx configuration, really be able to send a request to different servers, or by setting dubbo configuration, you can really do a timeout retransmission.

The difficulty of this step is on their machines may not be able to simulate a distributed environment, so if you can, look for the company to test environmental practices, or upload your own machine virtual machine. If there is no way to install environmental and configure their own settings again, even if it can not debug, set up their own again than to just look at the tutorial is better.

3 ponder two questions, which can be summed up the basic skills necessary to upgrade

Many advanced development methods can not touch upgrade architects, in fact, a lot of skill will be able to work normally come into contact with. Here the whole column may be temporarily unable to upgrade to the basic skills needed to architect, but we can think of the following two aspects.

1 operation and maintenance aspects of the current system, in order to make your system run smoothly smoothly upgraded version, which you need to master the skills? When the system online to show there is a problem, how do you to troubleshoot problems by aspects of search logs?

2 further, the high-concurrency systems can be considered. Your system is currently able to cope with the number of concurrent volume? The current system bottleneck where? Any system has bottlenecks, such as SQL pressure, very easily lead to OOM exception. How to see the logs, etc. to confirm the current system bottleneck where?

To get answers to these two questions, we need to master all kinds of skills, such as by jenkins packaged and released version, see if the problem through linux log for Dump file when abnormal OOM by MAT, and so on, which is necessary to upgrade to the architect basic skills.

So when we become skilled workers in a company, to "comfort zone" in the future, must not be limited to live their own assigned. If again reach the level of advanced development, must have access to excellent infrastructure configuration aspects of living adjustment, this time, the best conditions can be personally involved, if no conditions, even look to see the configuration process look at the code required.

4 architects prepared from the perspective of the underlying code, further implementation details see

Who will java syntax, but different perspectives junior developers, senior developers and architects, etc., points of interest, must be different.

Junior developers will focus on "how to call" and "how can we ensure there are no syntax and logical problem," senior developers will choose some of the current requirements in accordance with the appropriate grammar points, such as during high concurrency would choose "thread pool" encounter when the selection netty NIO class demand, and architects will need when using the various components, to learn more about the various pit.

For example, when using netty, you need to learn how to solve a problem half a pack stick package, if the heap memory is how to ensure that the external memory can be recycled properly. This requires advanced development to upgrade the road to the architect, but was concerned about the necessary underlying code, such as code that implements netty in LengthFieldBasedFrameDecoder solve half the package and the associated codes DirectBuffer section.

By extension, in addition netty, advanced development on the basis of "will use the distributed components" on, but from too high availability (one down the can automatically switch) high concurrency (which, needless to say) efforts on the cluster, this is only one component saw myself, a lot of this kind of information online, such as a few days to see the papers before me Ali architect interview guide, which raised a lot of questions for each component, we can compare one by one, according to see the underlying problem implementation details.

For advanced development, assembly might be one jar package, but not in terms of the architect is the case, for example, has an abnormal appearance OOM-based netty system, then the architect must first be familiar with the underlying code netty jar bag, Further, when necessary, into the underlying code debug, or found by the dump file system when using conventional external memory heap memory point is not released.

Look at the underlying code, is easier said than done is difficult to see to what extent? How can you not rigidly adhere to the details? My current experience is, first look at the process, the key modules of this component and important ways of looking at the process from the inside, or a combination of the second Ali architects face questions in the problem, such as mentioned dubbo underlying communication protocol, then put the corresponding modules and corresponding methods to look at.

5 architect thinking: Let architecture was more in line with the business, have to control risk

I remember at the beginning of the entry architect, always ideal, it will always draw a block diagram of a high concurrent solve, which contains a variety of components, this is not wrong, but only a first step.

In most scenarios, the architect not from beginners design, but requires a combination of various pain points system transformation of existing systems. For example, the current database performance is slow, if the money, more direct way is to upgrade to the oracle, but often unrealistic, so the architect can build multiple mysql instance and mycat do sub-library sub-table. Further, when switching from a single component library sub-table repository, you have to consider that, in case of handover failure, how do I backoff, and the switch may be devised whereby the matrix and other programs.

So how advanced development to enhance their ability to do in this regard? Only behind architect, careful analysis of the specific design. As the saying goes, when familiar with the Three Hundred Tang Poems, a poem will Yin, while companies may be somewhat line components, you can see the configuration file and workflow architecture, and a new framework program on line , you may know more about the risks and avoid regulatory fallback solution.

6 practice in order to enhance, then how did the opportunity to practice how to enhance?

After this year I added to an Internet company since had access to a variety of architectures, so it feels has improved. In contrast, I am in a foreign company before, more in terms of architecture is (in short, is the opportunity to practice a little) "Look at the video to see the components," and then share internal code architecture within the group, so in that time , I feel progress fast enough.

To Position architect, first of all we have relevant experience, but no chance to practice some of my friends, how to do? Before my approach is, look at the information, and then pretending he was architect to the interview, but it is difficult, because the architect level experienced interviewer, a look will be able to see done is real and theoretical experience. Some say the following real and effective approach.

1 may be an existing company, multi-application system on-line system dry some maintenance work in foreign companies, such positions called Support, domestic company called "system operation and maintenance," the specific job is responsible for the deployment to the production line , and the building production line various components such as oracle, mysql, nginx, mq, these companies have in the positions, if given the opportunity, it is best to dry for some time in such positions, if no chance, You are acquainted with the relevant staff, and then look at some configuration to learn some ways to build infrastructure.

2 encounter program architecture review, as much as possible to participate. If the group of live architecture, try to do more, not necessarily just the beginning, not the time do not be afraid to lose face, along with more than familiar with the architecture behind colleagues ask, people look at is how to troubleshoot and debug living architecture, one to two opinions familiar.

I have seen some students, where the company's more traditional use of technology throughout the company did not have any use for distributed component architecture, so no way, or look up information on their own practice (in fact, this effect is not good) or find yourself the opportunity to jump to Internet companies.

7 Summary, seeking recommendations

After all, the upgrade can only trick is to observe try to figure out more practice, and upgrade the road hardship, really people drinking water, Lengnuanzizhi.

It is still hard, so although the talent in general, the road is tortuous step by step upgrade of hardships, but under the insistence, since that can be considered some progress, it still dares to write some ideas for your reference.

If you feel this article helpful, please help recommend this article, if you feel there are deficiencies in the article, please comment also help a lot personally, I appreciate it.

Guess you like

Origin blog.csdn.net/weixin_45132238/article/details/93492934