How to become a Java architect (reprint)

Source: Internet
Author: User

Links: https://www.zhihu.com/question/29031276/answer/54631312

Source: Know
Copyright belongs to the author. Commercial reprint please contact the author for authorization, non-commercial reprint please specify the source.

1: Familiar with the various frameworks, and know the implementation principle (such as spring, MyBatis).

2:JVM virtual machine principle, tuning, understand the JVM virtual function let you write better performance code.

3: Pool Technology, Object pool, connection pool, thread pool

4:java reflection Technology, write framework required technology, but there are serious performance problems, the alternative is Java bytecode technology

5:nio, "Direct Memory" features, usage scenarios.

6:java Multi-threading, synchronous asynchronous.

7:java the implementation principle of various sets of objects, can let you choose more suitable data structure, HASHMAP implementation principle, the performance problem of expansion.

8: Proficient in using various data structures and algorithms, arrays, hashes, linked lists, sorting trees ... One word is either time or space change time.

9: Familiar with the Linux operating system, necessary.

10:TCP protocol, three handshake and four handshake, do not know, can not be optimized for high concurrency network; Familiarize yourself with the HTTP protocol, especially the HTTP header, and understand the session and cookie declaration cycles and their associations.

11: System cluster, load balancing, reverse proxy, static and dynamic separation, website statics

12: Distributed Storage System Nfs,fastdfs,tfs,hadoop understand their pros and cons and apply scenarios.

13: Distributed Cache technology memcached, Redis, improve system performance necessary, put the contents of the hard disk into memory to speed up, algorithm is consistent hash

14: Tool Nginx Essential Skills super easy to use, high performance, basically will not hang off the server, a lot of functions, solve various problems.

15: Database design capabilities, MySQL essentials, basic parameter optimization, slow query log analysis, master-slave assignment; other NoSQL databases such as MongoDB

16: Middleware. such as message push, you can write the message to the database, push and put on the queue server, the push Server area queue to get processing, so that the message can be placed in the database and queue directly to the user feedback, the push process by the push server and the server to complete, asynchronous processing, link server pressure, decoupling system.

Want to become an architect does not understand a lot of technology, these are the basis for solving the problem, is a tool, do not understand how to solve the solution? This is a necessary condition for becoming an architect.

Architects also to the business characteristics, the performance requirements of the system to solve the problem of the lowest cost of the design is qualified, people a hundreds of users of the system, access, small amount of data, you give people on the cluster, on the distributed storage, high-end server, architecture and architecture, which is the most ridiculous,  The architect's role is to meet the business requirements first, the second lowest hardware network costs and technical maintenance costs. Architects are also expected to advance to the next stage of the system architecture solution according to the business development stage, and to design the current architecture to take into account the upgrading of the architecture, so as to make it easy to upgrade; or expand the problem a lot of trouble, which will cause losses to the enterprise;


User-aware
Links: https://www.zhihu.com/question/29031276/answer/54713547
Source: Know
Copyright belongs to the author. Commercial reprint please contact the author for authorization, non-commercial reprint please specify the source.

The so-called architect, thinking about the whole thing, is how to organize your system to meet business requirements, performance requirements, scalability (scalability), Extensibility (extendability), pre-and post-compatibility, etc. What might be involved includes everything from hardware to software, which is long story.

If you aspire to architecture, first lay the groundwork, starting at the bottom. Then develop to a variety of technologies and languages, everything must understand two points, to be comprehensive and not superficial. Why don't you understand a little? You have to see it thoroughly and you have to be as deep as you can. You have to be an architect to understand a little more. For example, you find that Golang is very popular, others may write a helloworld to say that they have played Golang, but you should at least try to write a complete application. Do not work hard, how to a tall man?

In addition you have to be very deep understanding at least one language, if your goal is Java, learn to the extreme, as a stepping stone, first eat enough to talk about the ideal. and Java learning to the extreme inevitably involves design patterns, algorithms and data structures, multi-threading, file and network IO, database and ORM, and so on. All of these concepts apply to all languages. First of all, for a comprehensive and not superficial laying the groundwork.

The other is to learn from an experienced architect and discuss debates with small partners.

In fact, the most important ability is to keep learning. Before you can think about whether new technologies are better able to solve the problems you encounter, you need to know and understand the new technologies first.

Speaking for a long time, architects are often forced to the top, not after you learned this and then you become an architect, this is not an RPG game.

How to become a Java architect (reprint)

Related Article

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.