Suddenly, it has been ten years since I graduated from the background development business. During these ten years, I have gained a lot of technical skills, training, going abroad, experience in large companies and many like-minded friends. But on second thought, I wasted at least five years of my ten years on the road to code farming, which could have been enough to make myself grow into an excellent programmer. Unfortunately, I missed it. I spent the five years in confusion and confusion like many programmers, and could not find a way out!

There was no pit on the road, but when more people walked, the road was rotten.

One of the characteristics of working in a big company is that you only need to do the job assigned to you during working hours and you will do well, which means that everyone is a screw. Therefore, after I entered a big company, I wasted some time because OF my lack of experience and the fact that I entered a big company as one of the best in my college class right after graduation, so I felt a little flutty and could not settle down to study technology.

Later in the bell Laboratory (Shanghai) and the work of a graduate student in an exchange, let me seriously realize that as a programmer in addition to do a good job of the company’s arrangement of work just for their own “alive”, and the programmer’s “life” should be reflected in their pursuit of technology and on the source code of persistence.

Although I often communicate with my friends about my programming life, it was this interaction that really influenced my programming life. In retrospect, programmers tomorrow’s dilemma is often the small things that have been hanging on our lips, the source code ah, frame ah, actual combat, make wheels, open source all these need us to really hands-on lines of code to solve.

Today, for you to sort out a current Internet company Java background the most mainstream technology selection ↓

01

Read the source code

Programmers work with code every day. After years of basic education and professional training, most programmers can “write” code, or at least copy and modify code. However, can read the code is not in the majority, can read the code and really understand the source code of some big projects, very few. This also leads to a lot of errors in the way source code is viewed.

How to analyze the source code correctly?

Our goal should be to focus on the most commonly used frameworks, but here are two: Spring and Mybatis, which people use to feel like they haven’t had much of a problem.




Delta spring source




Delta mybatis source

02

Distributed architecture

As our business more and more and more important, monomer architectural patterns have been unable to corresponding large-scale application scenarios, and the system must not exist in a single point of failure cause the overall is not available, so only vertical or horizontal split business system, make them form a distributed architecture, the use of distributed architecture to eliminate redundant system of single point of failure, Thus improving the availability of the entire system. At the same time, the module reuse degree of distributed system is higher, faster, higher expansibility is an essential link of large projects.







03

Micro service

Trade-offs about microservices architecture

For the right project, with the right team, the benefits of adopting a microservices architecture outweigh the costs.

There are many attractions to microservices architecture, but before you embrace microservices, you also need to recognize the challenges it presents.

You need to avoid microservices for the sake of microservices.

Introduction strategy of microservice architecture – For traditional enterprises, it is advisable to introduce some appropriate principles of microservice architecture to transform existing systems or create new microservice applications at the beginning, and gradually explore and accumulate experience of microservice architecture, rather than completely implement microservice architecture.




04

Performance tuning

We don’t just have to manage the project, we have to solve all the performance problems. Only by deeply studying the underlying principles of JVM, Mysql optimization and Tomcat tuning, can we achieve the effect of knowing what it is and why. In addition to performance optimization, it can also provide common ideas and consideration points for scheme selection, helping people to cultivate awareness, thinking and the ability to do various trade-offs in scheme selection.




05

Development tools engineering

A software project management tool that manages project builds, reports, and documentation with a short description of information. The battle of programmers is often not a battle of one person. How can we efficiently remove code review, adjust functions and debug on a platform, so as to find our own records in the chaotic process of stacking codes step by step under unified planning? It all depends on effective tools.




06

The project of actual combat

If you want to be based on an Internet company and not be submerged in the Internet wave, it is necessary to develop practical exercises for the project, and it is also a measure of your own ability. How much amount is equal to how much return you get. How much can we know about the underlying principle and implementation principle of a seemingly simple project requirement map? How much knowledge do you need to build a complete B2C project platform? All of these things need to be considered.