Recently, I have been working on a project, which is a large multi-node deployment project. Several versions have been made, and many technologies and frameworks have been used.

Management tools and agile practices are also used. I am not here to talk about the project, because I recently read some recruitment information, combined with some knowledge used in the project and

Management measures, as a programmer, need to evaluate their current ability to keep up with the pace of The Times, so, summarized below as an advanced Java developer or architect, exactly what skills need to master, when you master these skills you are BATJ or on the way to BATJ.



1. Have certain mastery and application experience in Java basic technology system (including JVM, class loading mechanism, multi-threaded concurrency, IO and network).

JVM memory allocation, JVM garbage collection;

Class loading mechanism;

Performance optimization:

Reflection mechanism;

Multithreading;

Network programming;

Common data structures and related algorithms:

2, have a clear understanding of object-oriented software development ideas, familiar with common design patterns;

Design pattern: singleton pattern; Factory model; Proxy mode; Template method pattern; Responsibility chain model, etc

3. Familiar with the current popular open source framework (Spring/SpringMVC/IBATIS), and have a certain understanding of its core ideas and implementation principles;

Open source framework: Spring;

Open source framework: Hibernate;

4. Familiar with the development and design of Oracle, MySQL and other databases, as well as the design and development of REDIS or Memcached system;

Relational database: Oracle

Relational database: PostgreSQL

Cache system: Redis (Nosql)

Cache system: Memcached

5. Familiar with underlying middleware, distributed technology (including cache, messaging system, hot deployment, JMX, etc.)

Underlying middleware:

Application server: Jetty(Tomcat)

Message middleware: ActiveMQ, RabbitMQ

Transaction processing middleware:

Data access middleware: ODBC

Workflow Middleware :JBPM

Distributed technology:

Cache system:

Message system:

Restful:

Hot deployment:

JMX:

At least one Java application server, such as Tomcat

Jetty:

7. Proficient in shell programming, familiar with awK, sed, grep, strace, TCUDump, GDB and other common commands;

8. Experience in design and development of large distributed, high concurrency, high load (large amount of data) and high availability systems

Distributed :(multi-node deployment)

High concurrency:

High load (large amount of data) :

High stability:

High availability:

9. Have an understanding of configuration management and agile development models

Configuration management tools:

SVN:

Making:

10. Business Capability:

System upgrade, two-node cluster, deployment, disaster recovery, backup and recovery, DFX

Bonus Points technology:

Script language: Python

Remote call:

Proficient in Internet basic protocols (such as TCP/IP, HTTP, etc.) and related applications

Security awareness and understanding of common security problem solutions

Familiar with common solutions and their principles: single sign-on, distributed caching, SOA, full text retrieval, message middleware, load balancing, connection pooling,

Nosql, stream computing, etc.

Open source framework source topic

Read the source code

Programmers work with code every day. After years of basic education and professional training, most programmers can “write” code, or at least copy and modify code. However, can read the code is not in the majority, can read the code and really understand the source code of some big projects, very few. This also leads to a lot of errors in the way source code is viewed.



Introduce the classical design ideas used in the source code in detail, see how Daniu is to write code, enhance the technical aesthetic, improve the core competitiveness.

To help you find the analysis of source code entry point, in the thought of a huge sublimation. Know what it is and why. Make your knowledge your own

High Performance Architecture Topics

How does the system architecture meet the challenge of high concurrent traffic in the Internet era? As a technology developer, how to deal with the skill crisis brought by technological change. Based on the evolution of traditional architecture to distributed architecture brought about by the technical changes.

In the depth and breadth of technology has been leaps and bounds. To become the T-type talents needed by the Internet industry



Topics on Microservices Architecture

SOA has become a standard solution for Internet companies to cope with complex business requirements changes and user expansion, and the framework related to microservices was born for this purpose.




Performance optimization

Simple performance optimization

Understanding performance optimization

Performance benchmark

What exactly is performance tuning

Measure the dimensions



Double eleven e-commerce project actual combat

Large-scale e-commerce distributed system application practice, using cloud server to build a real development and deployment environment, thousands of people participated in online development.

From shallow to deep, it takes you from zero to project launch, operation and maintenance, so that you can experience the real enterprise project development process and master Daniu’s coding thinking, experience and skills.