Here’s a mind map of the tech stack:

Technology stack What is a technology stack? For example: the development of a common management system, will use Sprin Boot+MyBatis+Spring+Mysql+Redis+RabbitMq+Nginx+Vue+Shiro+ HTML + and so on, these technologies together can be called the technology stack.

I roughly divide the technology stack into five blocks: front end, back end, middleware, database, and tools.

The front end

JSP JSP full name Java Server Pages, is a dynamic web development technology. It uses JSP tags to insert Java code into HTML web pages.

A JSP is essentially a servlet that implements the user interface portion of a Java Web application.

<head> <title> </head> <body> <% out.println("Hello World!" ); %> </body> </html>Copy the code

JSP with a variety of HTML +jquery/JavaScript+ CSS to complete the front-end page development.

DWZ, EasyUI, EXT, BootStrap, KendoUI are all based on some rich text client UI frameworks based on HTML, CSS, JavaScript/jquery, which was a boon for back-end developers at the time. The biggest feature of these frameworks is that the official website provides the use of various components, back-end personnel as long as the JSP page, data rendering can be. These UI frameworks are pretty much fixed in style and are more suitable for developing management-like systems, including: powerful data sources, common drag-and-drop functionality, templates, and UI controls.

DWZ is an Ajax RIA open source framework developed by Chinese people based on jQuery. The design goal is simple and practical, fast development, and reduce the cost of Ajax development.

Liverpoolfc.tv: jui.org/

EasyUI EasyUI is a jquery-based collection of user interface plug-ins that provide the necessary functionality for creating modern, interactive, JavaScript applications. With Easyui you don’t need to write a lot of code, you can define the user interface, timing and scale of web development by writing some simple HTML tags.

Website; www.jeasyui.com/

EXT ExtJS is a JavaScript framework and product from Sencha based on YUI (Yahoo user Interface), which is basically a desktop application development platform with a modern UI.

Extjs-doc-cn.github. IO…

BootStrap BootStrap is an open source toolkit from Twitter for front-end development

Chinese official website: www.bootcss.com/

KendoUI is a JavaScript function library that provides abstract, customizable theme GUI controls and animation effects. Based on the jQuery JavaScript function library, it can be used to construct interactive Web applications

Website: www.kendoui.io/

FreeMarker FreeMarker is a free templating engine, a general-purpose tool for generating text output from templates, written in pure Java to generate HTML Web pages, especially for applications based on the MVC pattern. Typically a Java program prepares the data to be displayed, and FreeMarker generates the page to display the prepared data from the template (see figure below)

FreeMarker is not a Web application framework, FreeMarker is container agnostic and can also use JSP tag libraries in templates.

<head> <title>Welcome! </title> </head> <body> <h1>Welcome ${user}! </h1> <p>Our latest product: <a href="${latestProduct.url}">${latestProduct.name}</a>! </body> </html>Copy the code

Many front-end frameworks are HTML-based, requiring you to have JS/JQ, CSS fundamentals, which are the foundation of all front-end frameworks. Because the light frame can not meet our needs sometimes, sometimes we need to adjust the functions that the frame can not achieve; As well as the rapid development of the Internet era, the front-end requirements are becoming higher and higher, native HTML has been rapidly developed, basic all front-end effects can be achieved when using native.

VUE vue.js uses htML-based template syntax that allows developers to declaratively bind DOM to data from underlying VUE instances. All vue.js templates are valid HTML, so they can be parsed by standards-compliant browsers and HTML parsers.

On the underlying implementation, Vue compiles templates into virtual DOM rendering functions. Combined with a responsive system, Vue can intelligently calculate how many components need to be rerendered and minimize DOM operations.

VUE+elementUI is currently the most used, especially developing some backend management systems is relatively simple and convenient.

The back-end

Servlet A servlet is short for a Server Applet. It is a small program that runs on a Server to process Server requests. We access an application through a browser. During this process, our browser sends an access request, the server receives the request, and responds to the browser’s request. This is known as the B/S model (browser-server model). Servlets are components that handle requests and run in Java-enabled application servers. As shown in the figure:

Struts Struts struts struts is a classic MVC framework, which is used less and less nowadays except for some old projects. But there are differences between Struts1 and Struts2, and the main difference is that they are fundamentally different.

Struts1: Through the use of Java Servlet/JSP technology, the implementation of Java EE Web application based on the model-View-Controller (MVC) design pattern of the application framework, is a classic MVC design pattern of a classic product.

Struts2: WebWork as the core, using the interceptor mechanism to handle user requests, such a design also makes the business logic controller can be completely separated from the ServletAPI, so Struts 2 can be understood as the updated product of WebWork.

The most classic combination of strutsMVC+SPring+Hibernate, known as SSH, was the interview must ask technology.

The Spring Framework is an open source Java application framework, which solves many common problems encountered by developers in development and provides powerful IOC, AOP, Web MVC and other functions. Spring can be used in applications alone or in combination with Struts, Webwork, and many other Web frameworks. The Spring framework is mainly composed of seven parts, namely Spring Core, Spring AOP, Spring ORM, Spring DAO, Spring Context, Spring Web and Spring Web MVC.

Java Data Base Connectivity (JDBC) is a Java API used to execute SQL statements. It provides unified access to multiple relational databases. It consists of a set of classes and interfaces written in the Java language. JDBC provides a benchmark against which more advanced tools and interfaces can be built to enable database developers to write database applications.

Most of the early projects are through the JDBC encapsulation to operate the database, to achieve the increase, deletion, change and check, the performance of the consideration is not much, with the passage of time constantly derived a lot of frameworks, such as: Mybatis, Hibernate, etc..

Ibatis, derived from the combination of “Internet” and “Abatis,” is an open source project initiated by Clinton Begin in 2001. Originally focused on cryptographic software development, it is now a Java-based persistence layer framework. The persistence layer framework provided by iBATIS includes SQL Maps and Data Access Objects (DAO), as well as an instance of JPetStore developed using this framework.

IBATIS currently offers implementations in three languages: Java,.NET, and Ruby.

Mybatis is an open source project of Apache iBatis. In 2010, mybatis was migrated from Apache Software Foundation to Google Code and renamed as Mybatis.

MyBatis is an excellent persistence layer framework that supports customized SQL, stored procedures, and advanced mapping. MyBatis avoids almost all of the JDBC code and manual setting of parameters and fetching result sets.

MyBatis-Plus MyBatis Enhancement Kit – Make enhancements without changes, simplify CRUD operation

JPA JPA is the Java Persistence API, which is a JDK 5.0 annotation or XML that describes object-relational table mapping and Persistence of run-time entity objects to a database.

Sun introduced the new JPA ORM specification for two reasons: first, to simplify the development of existing Java EE and Java SE applications; Second, Sun wants to integrate ORM technology to make the world one.

SpringBoot is a new open source lightweight framework developed by the Pivotal team in 2013, with the first version released in April 2014. Designed based on Spring4.0, it not only inherits the excellent features of the Spring framework, but also further simplifies the entire construction and development process of Spring applications by simplifying configuration. In addition, By integrating a large number of frameworks, SpringBoot solves the problems of dependency package version conflicts and reference instability.

Spring Cloud provides developers with development tools to operate on distributed systems such as configuration management, service discovery, circuit breakers, intelligent routing, microproxy, control bus, one-time Token, global lock, decision campaign, distributed session, and cluster state. Using Spring Cloud developers can quickly implement these patterns.

Spring Cloud’s GitHub home page: github.com/spring-clou…

Dubbo dubbo is an open source high-performance service framework of Alibaba, which enables applications to realize the output and input functions of services through high-performance RPC, and can be seamlessly integrated with the Spring framework.

Main core components:

Remoting: A network communication framework that implements sync-over-async and Request-Response message mechanisms

RPC: A remote procedure call abstraction that supports load balancing, disaster recovery, and clustering

Registry: The service catalog framework is used for registering services and publishing and subscribing to service events

Spring Cloud Alibaba is committed to providing a one-stop solution for distributed application service development. This project contains the necessary components for developing distributed application services that developers can easily use through the Spring Cloud programming model.

Relying on Spring Cloud Alibaba, you only need to add some annotations and a little configuration, you can plug Spring Cloud application into Alibaba distributed application solution, and quickly build distributed application system through Ali middleware.

Shiro Apache Shiro is a security framework for Java. Apache Shiro is being used by more and more people because it is fairly simple. It may not be as powerful as Spring Security, but it may not need to be that complicated in practice. So using Shiro, which is small and simple, is enough. As for which one is good in the end, there is no need to tangle. It is good that the project can be solved more simply.

Spring Security is a Security framework that provides declarative secure access control solutions for Spring-based enterprise applications. It provides a set of beans that can be configured in a Spring application context, taking full advantage of Spring IoC,DI (Inversion of Control), and AOP (aspect oriented programming) capabilities. Provide declarative secure access control function for application system, reduce the work of writing a lot of repetitive code for enterprise system security control.

Oauth2.0 OAuth (Open Authorization) is an open standard that allows a user to give third-party applications access to the user’s private resources (such as photos, videos, contact lists) stored on a website without having to provide a user name and password to third-party applications.

OAuth 2.0 is currently a popular approach, which was first used by Google, Yahoo, Microsoft, Facebook and others. It was labeled 2.0 because there was originally a 1.0 protocol, but this 1.0 protocol was made too complex and not easy to use, so it didn’t take off. 2.0 is a new design, and the protocol is simple and clear, but it is not compatible with or related to 1.0.

Maven is a pure Java open source project developed under Apache. The construction, reporting, and documentation steps of a project can be managed with a central piece of information. Java is a project management tool for building and dependency management of Java projects.

Ant is a tool that automates the steps of compiling, testing, and deploying software, mostly for software development in a Java environment. There are many places where ant can be used in real software development.

Gradle gradle is an open source tool for automating project building based on Apache Ant and Apache Maven concepts. It uses a Groovy-based domain-specific language (DSL) to declare project Settings, and now adds a Kotlin-based DSL based on the Kotlin language, ditching all the tedious XML-based configuration.

Tomcat Tomcat server is a free and open source Web application server. It is a lightweight application server. It is widely used in small and medium sized systems and where there are not many concurrent users

Apache Apache is the world’s number one used Web server software. It runs on almost any widely used computer platform and is one of the most popular Web server software because it is widely used across platforms and security

Jetty Jetty is an open source servlet container that provides a runtime environment for Java-based Web containers such as JSPS and servlets.

Weblogic The WebLogic Server is specially developed for enterprise e-business applications. Enterprise e-business applications require rapid development and require server-side components to be flexible and secure, while supporting the scale, performance, and high availability necessary for mission-critical applications. WebLogic Server simplifies the development of portable and extensible application systems and provides rich interoperability for other applications and systems.

Nginx nginx is a lightweight Web/reverse proxy server and email (IMAP/POP3) proxy server distributed under the BSD-like protocol. It is characterized by less memory and strong concurrency.

The middleware

Caching Caching is an essential module in today’s systems and has become a key component of high concurrency and high performance architectures. The main purpose of caching is to improve performance and relieve database stress,

Redis Redis is an open source in-memory data structure store used as a database, cache, and message broker. Provides data structures such as strings, hashes, lists, collections, sorted collections with range queries, bitmaps, hyperlogs, geospatial indexes, and streams. With built-in replication, Lua scripting, LRU exportations, transactions and different levels of disk persistence, and high availability through automated partitioning of Redis Sentinel and Redis Cluster.

MongoDB MongoDB is a database based on distributed file storage. Written in C++ language. Designed to provide scalable high-performance data storage solutions for WEB applications. Is a product between a relational database and a non-relational database, the most functional non-relational database, most like a relational database.

Memcached Memcached is a free, open source, high-performance, distributed memory object caching system used to improve the scalability of Web applications. Is a memory-based key-value store for storing small chunks of arbitrary data (strings, objects). Simple and powerful, its simple design facilitates rapid development, reduces the difficulty of development, and solves many problems of large data cache. The general purpose is to cache database query results to reduce database access times and improve the speed and scalability of dynamic Web applications.

I don’t have to say more about differences, but simply talk about their use scenarios:

Memcached: Reduce database load and improve performance in dynamic systems Do cache, suitable for more read and less write, large amount of data (such as renren large query user information, friends information, article information, etc.). Redis: it is suitable for systems with high requirements on read and write efficiency, complex data processing operations and high requirements on security (such as the counting and publishing systems of Sina Weibo, which have high requirements on data security and read and write). MongoDB: Provides access efficiency for massive data. Solr Solr is an independent enterprise-level search application server that provides apis similar to Web service. Users can submit XML files in a certain format to search engine servers through HTTP requests to generate indexes. You can also make a lookup request through an Http Get operation and Get the result back in XML format.

Elasticsearch Elasticsearch is a Lucene-based search server. It provides a distributed multi – user – capable full – text search engine based on RESTful Web interface

The main difference between the two is that ES is basically out of the box and very simple, while Solr is slightly more complex.

Solr supports more data formats such as JSON, XML, and CSV, whereas Elasticsearch only supports JSON files.

Solr is fast in query, but slow in index update (that is, slow in insert and delete); ES is fast in index establishment (that is, slow in query), that is, fast in real-time query.

ELK recommends ELK because it shows its power in the case of distributed micro-services, which can save a lot of time in data collection, data processing and data analysis. ELK is a combination of Elasticsearch, Logstash and Kibana open source software. However, in order to improve performance, you usually need to use Kafka and Filebeat to collect logs. The following architecture diagram is a log service platform I worked on.

Scheduled task We are familiar with scheduled task, such as Spring’s built-in scheduled task SpringTask. However, SpringTask has many problems. For example, the most fatal problem is that once an exception is thrown, its life ends and it will not be executed again. It is not convenient to use in complex services. Quartz and XX-Job are recommended as two periodic task frameworks. The third-party frameworks have powerful functions and are easy to use.

Quartz Quartz is another open source project in the field of Job Scheduling by the OpenSymphony open source organization. It is developed entirely in Java and can be used to perform scheduled tasks, similar to java.util.timer. But compared to Timer, Quartz adds many features:

Persistent job – is to maintain the scheduled state; Job management – Effective management of scheduled jobs; Xx-job XXL-job is a lightweight distributed task scheduling platform. Its core design goal is rapid development, simple learning, lightweight, and easy to expand. Now open source and access to many companies online product lines, out of the box.

At present, many companies have access to XXL-job, including the well-known Dianping, JINGdong, Youxin Used Car, Beijing Suntech, 360 Finance (360), Lenovo Group (Lenovo), Yixin (netease) and so on…. Quartz, as a leader in open source job scheduling, is the first choice for job scheduling

Quartz can only manage tasks through APIS in a cluster environment. Meanwhile, the system is very intrusive. Xx-job can perfectly manage tasks in a cluster. Therefore, you can choose the appropriate timing task framework according to your business situation.

Configuration center What is a configuration center?

Centralized The management of configuration information in an application system is a new application function module, which is different from the traditional way that configuration information is distributed to all corners of the system. In addition, it provides additional functions in a centralized manner. Especially in microservices architecture, it is an indispensable component, even a necessary component.

Why use a configuration center?

In microservice system, the number of services and configuration information are increasing, such as various server parameter configurations, various database access parameter configurations, different application configuration information in various environments, real-time effect of configuration information modification, etc. The traditional configuration file or the configuration information stored in the database can no longer meet the requirements of developers for configuration management. Common configuration center middleware are: SpringCloud Config, Nacos, Apollo, etc.

SpringCloud Config is a SpringCloud ecosystem component that can be seamlessly integrated with the SpringCloud system. Spring Cloud Config supports specifying the machine whose configuration is to be updated via the destination parameter of the /bus/ Refresh endpoint, but the process is not automated or systematic. It’s weak compared to Apollo and Nacos.

Nacos in June 2018, Ali open source configuration center, can also do DNS and RPC service discovery. Nacos is relatively simple to use and is better suited for large-scale scenarios with high performance requirements. In addition, Nacos not only provides the function of configuration center, but also provides the function of dynamic service discovery, service sharing and management, which reduces the difficulty in the process of service transformation.

In May 2016, Ctrip open source configuration management center, with standard permissions, process governance and other features, Apollo can directly on the console point gray release to specify the IP of the release machine, and then full release, do a more systematic.

Core features: Apollo and Nacos have more ecosystem support than Spring Cloud Config

Real-time push: Nacos and Apollo are relatively simple and efficient in configuring real-time push links, while Spring Cloud Config is more complex.

Highly available deployment: THE deployment structure of Nacos is relatively simple and the operation and maintenance cost is low. Apollo has more components to deploy and higher operation and maintenance costs than Nacos. Spring Cloud Config has the highest cost of producing high availability.

Monitoring server Monitoring is to master the working status of the server in real time, and can call the monitoring record to check at any time when needed.

Admin is used to manage and monitor SpringBoot applications, and view the application status through the UI, such as Spring Beans, system properties, threads, and HTTP calls.

Druid I know Druid is mostly used for connection pooling, but it also has a monitoring function for SQL.

SkyWalking SkyWalking is by the domestic open source lover Wu Sheng (the original OneAPM engineer, currently in Huawei) open source and submitted to Apache incubator products, it also absorbed Zipkin/Pinpoint/CAT design ideas, support non-invasive buried point. Is a distributed tracking based application performance monitoring system. In addition, the community has developed an organization called OpenTracing to promote some of the specifications and standards for call chain monitoring.

Storage groups together middleware that involves database-related or can be used as a data warehouse.

MyCat MyCat is an open source database middleware server that implements the MySQL protocol. We can think of it as a database agent, using the MySQL client tools and command line to access MyCat. Mycat uses the MySQL Native protocol to communicate with multiple MySQL servers, as well as the JDBC protocol to communicate with most mainstream database servers, including SQL Server, Oracle, DB2, PostgreSQL and other mainstream databases. MongoDB is also supported for NoSQL storage and more types of storage will be supported in the future. In general, Mycat is used primarily as a proxy for MySQL databases, although it also supports access to other types of databases;

Mycat official website: www.mycat.io/

Canal let’s look at Canal’s website

Canal, which translates to canal, is used for incremental log parsing based on the MySQL database to provide incremental data subscriptions and consumption. This introduction has a few key words: incremental logging, incremental data subscription, and consumption.

Here we can simply think of Canal as a tool for synchronizing incremental data.

Let’s take a look at a diagram provided on the official website:

Sharing-jdbc is positioned as a lightweight Java framework that provides additional services in Java’s JDBC layer. It uses the client directly connected to the database, in the form of JAR package to provide services, without additional deployment and dependence, can be understood as an enhanced VERSION of THE JDBC driver, fully compatible with JDBC and various ORM frameworks.

The main function

Distributed primary key ZooKeeper ZooKeeper is an official subproject of Hadoop. Zookeeper is a reliable coordination system for large distributed systems. Zookeeper provides configuration maintenance, name service, distributed synchronization, and group service. ZooKeeper aims to encapsulate key services that are complex and error-prone, and provide users with easy-to-use interfaces, efficient performance, and stable functions.

Transactions This transaction refers more to distributed transaction processing plug-ins.

Apache ShardingSphere Apache ShardingSphere(Incubator) is an open source ecosystem of distributed database middleware solutions, It is composed of sharding-JDBC, Sharding-Proxy and Sharding-Sidecar (in planning), which are independent of each other but can be mixed and used together. They all provide standardized data sharding, distributed transaction and database governance functions, and can be applied to diverse application scenarios such as Java isomorphism, heterogeneous languages, containers, cloud native and so on.

Seata is short for Simple Extensible Autonomous Transaction Architecture, renamed feasCAR. Ali open source distributed transaction framework, belonging to the two-stage submission mode.

Message queue What is message queue A message queue is a container for storing messages. When we need to use messages, we can take them out for our own use. Message queue is an important component in distributed system. The main purpose of using message queue is to improve system performance, reduce peak load and reduce system coupling through asynchronous processing. The most popular message queues are ActiveMQ, RabbitMQ, Kafka and RocketMQ.

Why message queues are needed 1. Improve system performance through asynchronous processing (peak clipping and response time reduction);

2. Reduce the system coupling;

Kafka Kafka is an open source stream processing platform developed by the Apache Software Foundation. Kafka is written in Scala and Java. Kafka is a high-throughput distributed publish-subscribe messaging system that processes all of the consumer’s action-flow data in a website. This data is usually addressed by processing logs and log aggregation due to throughput requirements. This is a viable solution for logging data and offline analysis systems like Hadoop that require real-time processing limitations. Kafka is designed to unify online and offline message processing through Hadoop’s parallel loading mechanism, and to provide real-time messaging across clusters.

RabbitMQ AMQP (Advanced Message Queuing Protocol) is an open application-layer Protocol designed for message-oriented middleware. Message-oriented middleware is primarily used for decoupling between components so that the sender of a message does not need to be aware of the message consumer and vice versa. The main characteristics of AMQP are message orientation, queue, routing (including point-to-point and publish/subscribe), reliability, and security. RabbitMQ is an open source IMPLEMENTATION of AMQP. The server is written in Erlang and supports a variety of clients, such as Python, Ruby,.NET, Java, JMS, C, PHP, ActionScript, XMPP, STOMP, and AJAX. It is used to store and forward messages in distributed systems, and has good performance in ease of use, scalability, and high availability.

ActiveMQ ActiveMQ is an open source implementation of Message middleware based on JMS (Java Message Servie) specification. The design goal of ActiveMQ is to provide a standard, message-oriented application integration Message communication middleware that can cross multiple languages and systems.

ActiveMQ RabbitMQ Kafka Development language Java Erlang Scala Single-machine throughput 10,000 levels 100,000 levels Timeliness MS level US level Within MS level High availability (master/slave architecture) High availability (master/slave architecture) Very high (distributed architecture) features mature products, used by many companies; There are more documents; All kinds of protocol support is better based on Erlang development, so the concurrency is very strong, performance is extremely good, the delay is very low; The rich management interface only supports the main MQ functions, such as message query, message tracing and other functions are not provided, after all, it is intended for big data, which is widely used in the field of big data.

The database

The database mainly refers to the relational database, is according to the data structure to organize, store and manage data warehouse, database is the storage of data warehouse, is an essential part of a system or software. Each database has one or more different apis for creating, accessing, managing, searching, and copying saved data. We can also store data in files, but reading and writing data from files is relatively slow.

So, we now use relational database management systems to store and manage large amounts of data. The so-called relational database is built on the basis of the relational model of the database, with the help of set algebra and other mathematical concepts and methods to deal with the data in the database.

Characteristics of relational database management system:

1. The data appears in the form of tables 2. Various record names for each behavior 3. Many rows and columns form a form 5. Several forms form database Common data management systems are: Oracle, mysql, SQL Server, Access, TiDB.

Oracle Oracle Database for short. Oracle database system is a group of software products with distributed database as the core provided by Oracle Corporation (Oracle) in the United States. It is one of the most popular client/server databases at present. Oracle database is the most widely used database management system in the world. As a general database system, it has complete data management functions. As a relational database, it is a complete relational product. As a distributed database, it realizes the distributed processing function, but all its knowledge, as long as you learn Oracle knowledge on one machine, you can use it on various types of machines.

Mysql mysql is the most popular Relational Database Management System. In terms of WEB applications, mysql is one of the best RDBMS(Relational Database Management System) applications. It is currently hosted by Oracle.

SQL Server A relational database system developed by Microsoft. SQL Server is an expandable, high performance database management system designed for distributed client/Server computing. It realizes the organic combination with WindowsNT and provides an enterprise-level information management system scheme based on transaction.

Access is Microsoft database engine graphical user interface and software development tools combined together a database management system. It is a member of Microsoft OFFICE and is sold separately in both Professional and later versions of OFFICE.

TiDB TiDB is an open source distributed relational database independently designed and developed by PingCAP. Hybrid Transactional and Analytical Processing (HTAP) is a Hybrid Transactional and Analytical Processing (HTAP) database product. It has important features such as horizontal capacity expansion or reduction, financial high availability, real-time HTAP, cloud native distributed database, compatibility with MySQL 5.7 protocol and MySQL ecology. The goal is to provide users with one-stop Online Transactional Processing (OLTP), Online Analytical Processing (OLAP), and HTAP solutions. TiDB is suitable for various application scenarios such as high availability, high consistency requirements, and large data scale.

The advantages and disadvantages of the above database are obvious, not wordy, we can choose the right data according to their actual situation in the work.

tool

The development of IntelliJ IDEA

IntelliJ is recognized as the best Java development tool in the industry, especially in intelligent code assistant, automatic prompt code, refactoring, JavaEE support, various version tools (git, SVN, etc.), JUnit, CVS integration, code analysis, innovative GUI design and other aspects of the function can be said to be extraordinary. IDEA is the product of JetBrains, a company based in Prague, the Capital of the Czech Republic, which is dominated by rigorous Eastern European programmers. Its flagship version also supports HTML, CSS, PHP, MySQL, Python, and more. The free version only supports Java,Kotlin and a few other languages.

eclipse

Eclipse is an open source, Java-based, extensible development platform. It is an integrated development environment (IDE) for Java, but it can also be used as an INTEGRATED development environment for other development languages, such as C, C++, PHP, and Ruby.

MyEclipse

MyEclipse is a powerful enterprise-level integrated development environment developed on the basis of Eclipse with its own plug-ins, mainly used for Java, Java EE and mobile application development. In the latest version of MyEclipse, support for using CodeMix is also extensive, particularly with support for various open source products and major development frameworks. Currently, it supports PHP, Python, Vue, Angular, React, Java, Java EE and other languages and frameworks.

I don’t make any comments on the quality of these three tools. There are many users of each tool. I have IntelliJ IDEA and MyEclipse around me, and I prefer IntelliJ IDEA.

Client tool Version control Common version space tools SVN and Git

svn

TortoiseSVN is a free, open source client that manages files and directories over time. Files are stored in a central repository, which is much like a normal file server, except that it remembers every change to a file or directory. You can restore files to past versions, and you can check the history to see what changes were made to the data, and by whom. This is why many people think of Subversion and version control systems as a kind of “time machine.”

git

Git is a version control tool for Linux kernel development. Different from Subversion, a commonly used version control tool, it adopts the way of distributed version library, without the support of server-side software, and the code is extremely convenient to publish and communicate. Git is fast, which is important for large projects like this. Git is best known for its ability to merge tracing.

SVN is characterized by simplicity, but is OK if you need a place to put your code.

Git features versioning that doesn’t depend on the network for anything, and better support for branching and merging (which should be a major concern for developers).

Navicat is a fast, reliable and inexpensive database management tool designed to simplify database administration and reduce system administration costs. It is designed to meet the needs of database administrators, developers, and small and medium-sized enterprises. Navicat is built with an intuitive graphical user interface that allows you to create, organize, access, and share information in a secure and simple way.

PLSQL PL/SQL Developer is an integrated development environment designed to develop applications for Oracle databases. PL/SQL is a Procedural Language called Procedural Language. PL/SQL is an extension of the Oracle database to SQL statements. PL/SQL adds a programming language feature to the use of common SQL statements, so PL/SQL organizes data operations and query statements into procedural units of PL/SQL code, and implements complex functions or calculations through logical judgments, loops, and other operations. PL/SQL only has Oracle databases.

Redis Desktop Manager Redis Desktop Manager is a Windows platform under the visual Redis database Desktop management tool, using it you can view, delete, modify your Redis database data!

Linux Remote XShell XShell is a powerful secure terminal simulation software, it supports SSH1,SSH2, and Microsoft Windows platform TELNET protocol. XShell can be used in Windows to access servers in different systems on the remote end, so as to better achieve the purpose of remote control terminal.

WinSCP

Pagoda Pagoda panel is an integrated environment that can be installed on the server, and it comes with a Web management panel that allows you to control your server directly from your browser. You can create a website, FTP, database, SSL with one click; Security management, scheduled tasks, file management, coexistence and switching of MULTIPLE PHP versions; It has its own basic website environment, supporting Windows (Apache) and Linux (Apache or NGINx).

SecureCRT SecureCRT is an SSH client that transfers encrypted files using the built-in VCP command line program.

PostMan postMan is a very popular API debugging tool. In fact, developers use it more. Because testers have more options for interface testing, such as Jmeter, soapUI, and so on. However, Postman is simple enough and powerful enough to debug interfaces during development.

Typora+PicGo Typora+PicGo, the best use of Markdown+ the best use of map bed tools! If you’re a blogger, you can save it.

Notepad++ + Chinese version is a necessary text editor programmers, notepad++ Chinese version is compact and efficient, support 27 kinds of programming languages, all eat C,C++,Java,C#, XML, HTML, PHP,JS, etc. Notepad++ Chinese editor is a perfect replacement for Microsoft notepad.

Visio Office is responsible for drawing flow charts and schematic diagrams of the Office software series, is a convenient IT and business personnel on complex information, systems and processes for visual processing, analysis and communication software. With professional-looking Office Visio diagrams, you can promote understanding of systems and processes, gain insight into complex information and use that knowledge to make better business decisions. Common software architecture, flowchart can be completed in it.

Processon processon is an aggregation platform for online mapping tools that can draw flowcharts, mind maps, UI prototypes, UML, network topologies, organizational charts, and more without worrying about downloading and updating, Mac or Windows, A browser allows you to be creative and plan your work anytime, anywhere.

Website: www.processon.com/

PowerDesigner is a very comprehensive database design tool. You can use PowerDesigner to quickly create tables and support the establishment of relationships between tables. The interface is simple and powerful. At the same time, you can export SQL scripts. You can choose multiple export types, which is simple and practical.

Xmind Xmind is a full-featured mind mapping and brainstorming software designed to stimulate inspiration and creativity. As a productivity tool to effectively improve the efficiency of work and life, it is favored by millions of users around the world.

IReport has to introduce Jasperreport first. Jasperreport is a report making program. Users need to write an XML file according to its rules, and then get the format file that users need to output. It supports output file formats including PDF,HTML,XML,XLS,CVS, and more. IReport is a visual development tool for creating Jasperreport XML files.

Chrome is a web browser developed by Google. It is based on other open source software, including WebKit, with the goal of improving stability, speed, and security, and creating a simple and efficient user interface.

Sogou Sogou browser developed by Sogou Company, based on Google Chromium kernel, strive to provide users with cross-terminal seamless use experience, so that the Internet is simpler, web page reading more fluent browser.

Mozilla Firefox, commonly known as “Firefox” in Chinese, is a free and open source web browser developed by Mozilla. It uses the Gecko typography engine and supports a variety of operating systems, such as Windows, macOS and GNU/Linux

Internet Explorer (IE for short) is a web browser developed by Microsoft. Originally called Microsoft Internet Explorer (before Version 6) and Windows Internet Explorer (versions 7, 8, 9, 10, 11). Before IE7, The Chinese literal translation is “network pathfinder”, but after IE7, the official will be directly known as “IE browser “.

If you do front-end development, the compatibility of these browsers have to take into account. Internet Explorer was the big browser market a long time ago, and as time went on, Google Chrome took the big market. I personally use Google a lot in my daily development, and use other browsers only in special cases.

Jmeter JMeter is a Java-based stress testing tool developed by the Apache organization. Used to stress test software, it was originally designed for Web application testing, but has since expanded to other testing areas. It can be used to test static and dynamic resources, such as static files, Java service programs, CGI scripts, Java objects, databases, and so on.

Ab Apache Bench is apache’s own stress test tool. Ab is very useful, it can not only apache server web site access stress test, or other types of server stress test.

MAT MAT is a Java heap memory analysis tool, available from www.eclipse.org/mat/… .