Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What Java back-end programmers need to do

2025-01-18 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/01 Report--

This article mainly introduces what Java back-end programmers need to do, has a certain reference value, interested friends can refer to, I hope you can learn a lot after reading this article, the following let Xiaobian take you to understand.

1. Separation of front and rear ends

As people have higher and higher requirements for the vision and interaction of browser pages, the "set of templates" approach is gradually unable to meet the requirements. This so-called presentation layer is slowly migrated to browsers. A large number of frameworks such as Angular and ReactJS are on the rise, and the front and back ends are separated!

The back-end engineers are only responsible for providing interfaces and data, focusing on the implementation of business logic, and the front end takes the data and displays it in the browser, each performing its own duties.

Languages like Java are suitable for implementing complex business logic, especially some MIS systems, industry software such as taxation, power, tobacco, finance, communications, and so on. So it's appropriate to split off the presentation layer and only do the back end.

But if you just implement the business logic, then the back-end won't need so much technology, just take care of SSH/SSM.

two。 Back-end technology

After the rise of the Internet, especially the mobile Internet, a large number of users roared in. A small War package deployed on a stand-alone must not be supported and must be distributed.

The original single Tomcat has to be turned into a Tomcat cluster, and a Web server is used to balance the load of the request. Not only that, but also the state and session consistency have to be considered.

As the business becomes more and more complex, we have to put some business on one machine (or cluster) and another part of the business on another machine (or cluster). Although the computing power and processing power of the system are greatly enhanced, the communication between these systems has become a headache. Message queuing (MQ) and RPC framework (such as Dubbo) arises at the historic moment, in order to improve communication efficiency. Various serialization tools (such as Protobuf) are also scrambling to be available later.

A single database can not hold up, then do the read and write separation of the database, if not, do sub-database and sub-table, cut all the original database vertically, or cut everything horizontally, but no matter how it is cut, it will make the access of the application very troublesome, because the data has to be sorted across the database by Join/, and transactions are needed to solve this problem. A variety of "data access middleware" tools and products were born.

In order to maximize performance, caching is indispensable. You can do local caching (such as Ehcache) or distributed caching (such as Redis). How to do data sharding, data migration, and failure transfer is another super big topic.

Internet users like to upload pictures and files, and have to build a distributed file system (such as FastDFS), which requires high availability and high reliability.

With a large amount of data, the need for search will naturally surface, and you have to get a search engine that supports full-text indexing (such as Elasticsearch, Solr).

The forest is big, there are all kinds of birds, we must consider security, data encryption / decryption, signatures, certificates, prevent SQL injection, XSS/CSRF and other attacks.

3. "big back end"

There are so many systems mentioned earlier, but they are all distributed. Every time they go online, the students of the operation and maintenance staff say, "coordinating so many systems makes me tired to death."

Have to do a good job of continuous integration, automatic deployment, automated testing (in fact, the front end is also the case), and then there was a revolutionary technology docker, which can make the development, testing, and generation environment consistent, the system used to deploy code on the environment (such as Ngnix, JVM,Tomcat,MySQL, etc.), now the code and the environment are packaged together, the work of operation and maintenance is simplified at once.

It is expensive for the company to buy its own servers, maintenance is also very troublesome, and it is difficult to grow flexibly, so build some virtual servers. The hard disk and memory can be dynamically expanded (virtual anyway). When there is a large number of visits, it is more useful to release a little bit when there is no traffic, and it is very convenient to allocate it according to needs. This is a scenario of cloud computing.

With the passage of time, more and more data collected by various companies and systems have been piled up into a mountain, so is it just a waste of hard disk space?

Some people were surprised to find that, hey, let's use the data to do something, such as analyzing the data, predicting the user's buying / reading / browsing habits, and recommending something to him.

However, with so much data, it takes days or even months to calculate in the traditional way to get a result, when the cauliflower gets cold, so we have to use distributed technology to find a way to distribute the calculation to various computers, and then take back the results. The times make a hero, and Hadoop and its ecosystem emerge as the times require.

I have heard the concept of a big front end, which boils down to the "front end" for both the mobile end and the web end. I have coined the word "big back end" here to sum up what happens on the server side that is not directly accessible to users.

4. How to learn?

Now, both front-end and back-end, there are so many technical areas that are seriously subdivided, so I don't think a real full-stack engineer exists at all, because one person's energy is limited, it is impossible to handle so many technical areas, it is too difficult.

The "full stack" mentioned by the training institutions, I think, is the "full stack" engineers who are still pulling and pulling at the front and rear ends, without a complete separation.

So the question is, how should I learn with so many things at the back end?

If you dig deeper, you can become an expert in a certain technical field, such as an expert in search, an expert in security, an expert in distributed files, and so on. No matter which field it is, the focus is not to learn to use a certain tool and framework, but to make sure that you can solve the top problems in this field with your own knowledge and skills.

To the breadth of development, all technical fields should understand that for a certain requirement, we can choose the appropriate software and technical architecture to implement it, transform the requirements into appropriate technical components, and let these components connect, deploy, and run in an appropriate way. This also requires continuous learning and continuous accumulation of experience.

Thank you for reading this article carefully. I hope the article "what Java back-end programmers need to do" shared by the editor will be helpful to you. At the same time, I also hope you will support us and pay attention to the industry information channel. More related knowledge is waiting for you to learn!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report