Disclaimer below this article is only the author engaged in Android development to learn the back end of some insights and experience of different people! As for the comments about “selling anxiety”, maybe the author’s anxiety has nothing to do with everyone, haha!! Be the story to see line!!

Today, I will share with you some things about mobile terminal (Android) development and back-end development (Java Web). I don’t know when my colleagues started to post some back-end articles in the circle of friends, such as: Nginx, Docker, K8S class of knowledge, later found that everyone is learning some backend development work, may be feeling a little tired of mobile terminal technology!

There was even an iOS colleague who learned Java, Servlet, Spring and other back-end knowledge in his spare time, which impressed me deeply. I also learned Java Web knowledge in school. Later, Android could make some interface elements for fun and bring a sense of achievement. Plus Android was really hot at the time.

When I was about 16, I started to learn back-end knowledge by myself, intentionally or unintentionally. At that time, I was mainly engaged in App making and occasionally learned back-end knowledge. Unfortunately, the backend of my work unit was Python technology stack.

In 2018, I joined a second-tier Internet company and was still working on Android development. Currently, the company is in a period of rapid business development and rapid expansion, of course, there are many changes. At the time, it felt like mobile developers were in the doldrums at various technical conferences, rarely speaking out, for example:

At first, int was used as the time type on the mobile end, then a guy changed it to long, and then a technical expert asked it to be changed to string, saying: easy to read on the back end! Understandably, the key is that the mobile side also needs to be compatible with int, long, and string times.

There is no uniform standard for this kind of change. As a mobile developer, I can totally hate it back. Although it is a small thing to change, it also shows a problem: the discourse power of mobile development is really low.

Another story. We had a long conversation with a mobile technology expert, and one of the questions left a deep impression: why are there so few architects on mobile? When I listen to feel yes indeed, very few companies will hire architects mobile end, mobile terminal development is not as long as the backend development, its development is also, which emerged by the appearance of the Android, iOS, and there is no high concurrency, high availability, terms, such as mobile terminal concern more is the issue of interface, the user experience. After a long chat that day, I came to the conclusion that as mobile development, it’s hard to get to the tech guru level (compared to back-end development). After all, the Current Internet is mainly data and business. It is very difficult for an experienced mobile terminal development engineer to become a technical Leader, CTO and TECHNICAL VP without writing business or big data processing experience.

Why learn the back end?

Most companies today are business-driven, where business is the focus and technology is the supplement. And the company’s business will be in the back end, with the Web front end, mobile end is not related to the mobile end only do data collection and display will not participate in the complex business logic process, so: the essence is actually in the back end.

For example, if your company’s daily App life reaches one million level, it shows that the App compatibility, adaptation, user experience and key indicators are optimized very well. However, the key technology supporting the daily App life is still in the back end, so should you consider learning the back end?

You say you want to be able to point back-end knowledge, and then with the back-end little brother to a pair of programming, that efficient don’t don’t, a look will understand (tonight with your mother said to learn Java~~)!

How do I learn the Java back end?

Maybe I was lucky. At the beginning of the year, I cooperated with a friend in a 20W outsourcing project, and I was mainly responsible for the back-end development and architecture. This project is quite big for me. Before, I was responsible for the design and development of some apps. This time, I was a little unfamiliar with the back-end development.

Said at that time, make the project, the customer is need of thousands of user level, then I don’t have the concept of being, only think with micro service should be on the top of the living, the beginning is to use a single service, in the form of a single database, the distributed problem to many services, in the form of a single database also slow slow this problem, 2PC, seate, RabbitMQ, RabbitMQ, RabbitMQ, RabbitMQ, RabbitMQ, RabbitMQ

  1. Organization of microservice projects (single service single warehouse or multiple service single warehouse)
  2. Project Dependency Management (Maven Parent Project)
  3. Docker local debugging (ali cloud VPN)
  4. Dubbo Service Interface Repository (Nexus Repository)
  5. .

Now can only think of so much, the actual problem is more than this! Fortunately, everything was solved one by one, and the project went online normally after about two months. However, there were some problems later, such as: The CPU load of the machine was over 90% all the time. That day, I checked for a long time. Because the infrastructure was not complete, I could only check by looking at the logs.

Because another technical solution problem, this project has an infinite level of promotion, the selected scheme is nested set because he query up soon, but we ignored his amending the price is too high, lead to system users to 20 w promotion relations when inserted into the super slow, later will have to choose a scheme with again: Closure table insertion, query efficiency can be, but some space. It took about two days to recover the data.

Generally does not learn, ask friends, more profound memory is a database has been more than 95%, learn more knowledge of Java, know the database is still not much at that time, find a day also didn’t find out the problem, finally asked friends turned out to be not add index data is a full table scan, now think is really speechless, Later, my friend joked that follow-up consultation would be charged, haha.


Welcome to pay attention to the wechat public account “Architecture Digest”, the first time to push high-quality technical articles.