Architect definition
Baidu Encyclopedia, the system Architect is a need to control the whole and need to understand the local bottlenecks and based on specific business scenarios to give solutions to the team leadership figure.
Architect Job Functions
Software architects play an important role throughout the software development process, and as the development process progresses and its responsibilities or concerns change constantly, in the requirements phase, the software Architect is primarily responsible for understanding and managing non-functional system requirements, such as software maintainability, performance, reusability, reliability, availability, and testability, and so on, In addition, architects often review the needs of customers and marketers. Identify the design proposed by the development team; As the requirements become clearer, the architect's focus shifts to the organization's development team members and the development process definition; In the software design phase, the architect is responsible for the entire software architecture, key artifacts, interface and development policy design; In the coding phase, the architect becomes a consultant for detailed designers and code writers, and often holds technical seminars, technical courses, etc. as the software begins testing, integration and delivery, integration and test support becomes the focus of the software architect, and when software maintenance starts, The software architect begins to make decisions about whether the next version of the product should add new functional modules.
The skills that you need to become a Java architect.
The architect, thinking about the global thing, is how to organize your system to meet business requirements, performance requirements, scalability (scalability), scalability (extendability), Pre-and compatibility. The things that may be involved include everything from hardware to software, which is untold.
Since the Java architect, first of all, if you are a high-level Java attack lion, use a variety of frameworks, and know how they implement the principle. JVM virtual machine principle, tuning, understand that the JVM allows you to write better code; Pool technology, what object pool, connection pool, thread pool ...:; Java reflection Technology, but there are serious performance problems, alternative Java bytecode technology; NIO, there's nothing to say, It is noteworthy that the "Direct memory" features, the use of the scene; Java multithreading synchronous asynchronous; Java various collection Object Realization principle, understand these can let you choose the appropriate data structure in solving the problem, solve the problem efficiently, such as hashmap principle of realization, A lot of people over five years of experience don't know, and there are performance problems when it comes to expansion. Without figuring out these principles, you can't write efficient code, and you'll think you're doing the right thing. In short, the more basic things more important, many people think they will use them to write code, in fact, just know how to invoke the API, it is still far from the use.
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 a lot of, need to have some application experience, to solve a variety of performance or business problems.
Skilled use of Linux operating system, the necessary, nothing to say.
Familiar with the TCP protocol, create a three-time handshake and disconnect four times the entire process of handshake, do not understand, can not be optimized for high concurrent network applications; familiar with HTTP protocol, especially HTTP headers, I've found that a lot of work for more than five years doesn't clear the lifecycle of session and Cookie and how they relate to each other.
System cluster, load balancing, reverse proxy, static and dynamic separation, Web site statics.
Distributed Storage Systems Nfs,fastdfs,tfs,hadoop understand their pros and cons and apply scenarios.
Distributed caching technology Memcached,redis, improve the performance of the system must, in a word, put the contents of the hard disk into the memory to speed up, by the way an algorithm consistent hash.
Tools Nginx essential Skills super easy to use, high-performance, basically will not hang off the server, a lot of functions to solve various problems.
Database design capabilities, MySQL necessary, the most basic database tools, free to use, the basic parameters of its optimization, slow query log analysis, master-slave configuration, at least to become half mysqldba. Other NoSQL databases such as MongoDB.
There is also the queue middleware. such as message push, you can first write the message to the database, push put on the queue server, by the push server to queue to obtain processing, so that the message can be placed in the database and queue directly to the user feedback, push process by the push server and queue Server completion, the benefits of asynchronous processing, ease the server pressure, the solution of the Lotus root system.
Want to become an architect is not to understand a lot of technology on it, these are the basis for the problem, is the tool, do not know how to solve these solutions. This is necessary to become an architect.
Architects also need to address business features, system performance requirements to solve the problem of the lowest cost of the design is qualified, someone else a hundreds of users of the system, a small amount of traffic, data, you give people on the cluster, distributed storage, high-end server, in order to structure and architecture, this is the most nonsense, The architect's role is to meet business requirements first, the second lowest hardware network cost and technical maintenance costs.
The architect also needs to be based on the business development phase anticipate the solution to the next phase of the system architecture, and take into account the upgrade of the schema when designing the current architecture, and make it easy to upgrade; otherwise, if the system bottleneck comes up, there is a problem, or the existing schema cannot be expanded to throw the redo directly, or expand the problem of a lot of trouble, which will cause losses to the enterprise.
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.