What do you have to learn to be a Java architect?

Source: Internet
Author: User
This is a creation in Article, where the information may have evolved or changed.

Since the Java architect, first of all, you are a high-level Java siege Corpse, proficient in using various frameworks, and know how they are implemented. JVM virtual machine principle, tuning, know that the JVM can let you write better performance code, pool technology, what object pool, connection pool, thread pool ...:; Java reflection Technology, write framework required technology, but there are serious performance problems, alternative Java bytecode technology; NIO, there's nothing to say, Notable is the "direct memory" of the characteristics of the use of the scene; Java multi-threaded synchronous asynchronous, Java various collection object implementation principle, understand these can let you in solve the problem to choose the appropriate data structure, efficient problem solving, such as the implementation of HASHMAP principle, A lot of people with more than five years of experience are not clear, and why is there a performance problem when expanding? Do not understand these principles, can not write efficient code, but also think that they do a good job, in short, the more basic things the more important, many people think they will use them to write code, in fact, just know how to invoke the API, away from the use of the poor far.

Proficient in the use of various data structures and algorithms, arrays, hashes, lists, sorting trees ..., a sentence is either time to change space or space to change time, here to expand can say a lot of, need to have some application experience, to solve various performance or business problems; time to add.

Proficient in the use of Linux operating system, necessary, nothing to say.

Familiar with the TCP protocol, create a connection three handshake and disconnect four times the whole process of handshake, do not know, can not be optimized for high concurrency network applications; Familiar with HTTP protocols, especially HTTP headers, I've found that a lot of work for more than five years is confusing the life cycle of sessions and cookies and the associations between them.

System cluster, load balancing, reverse proxy, static and dynamic separation, the site is statically.

Distributed Storage Systems Nfs,fastdfs,tfs,hadoop understand their pros and cons and apply scenarios.

Distributed cache technology Memcached,redis, improve system performance must, in a word, put the contents of the hard disk into memory to speed up, by the way, an algorithm consistent hash.

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

Database design capabilities, MySQL Essentials, the most basic database tools, free to use, to its basic parameter optimization, slow query log analysis, master-slave replication configuration, at least to become half MySQL DBA. Other NoSQL databases such as MongoDB.

There are also queue middleware. such as message push, you can first write the message to the database, push put on the queue server, the push server to the 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 queue server to complete, the benefits of asynchronous processing, relieve server pressure, decoupling system.

The above is a commonly used technology, there are a lot of their own slowly to explore it, because to know a lot of things, so to become a qualified architect, must have a strong self-learning ability, no one will hand teach you all things.

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;

Phone manual input, think where to write where, very messy. Do technology, expression ability is not strong, will look at it, welcome you to add, learn from each other exchange, there is learning to communicate only progress.

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.

There is no special architect professional, are from the yards farm, daughter-in-law boil into a woman.

Do not become an architect who does not write code, and some companies specialize in technical architects ...

The architect is just a programmer with a deep foundation. Individuals think that the basic knowledge should be solid, learning a variety of norms, architecture, the need for a wide range of knowledge, understand the more open vision, the design of things will certainly be better and more comprehensive.

Becoming an architect takes time to accumulate, not only to know it but also to know why. You don't feel particularly useful at ordinary times, but one day you will find that everything has not been learned in vain.

--------------------------------------------------------------------------------

The main thing about architects is the ability to get through all of the technology, such as what happens when a request is made from the browser to the last Tomcat container processing. The knowledge points involved are cross-domain, ajax,cookie,session, reverse proxy, load balancer, servlet, and so on, and you can position the analysis in any step. Problem solving ability, which is the most important, rather than really do the system integration design, deployment architecture design what, which are similar without any technical content.

The five major topics that architects must have:

1. Engineering topics

(After a team of more than 3 people, you need to consider teamwork, scientific management)


2. SOURCE Analysis Topics

(A good programmer, a single line of code can be seen in a design, source code analysis takes you to taste codes, feel Architecture)


3. High performance and distributed topics

(Keep up with the technical rhythm, broaden the horizons of technology, programmers to ascend, to have their own technical toolbox and technical knowledge.) )


4. Technical Architecture Topics

(Real case sharing, take you to the big project style)


5. Performance Tuning

(Pursuit of efficiency, scientific tuning, not by chance)


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.