Software project management tools, JAVA WEB framework technology (combined with actual work experience, all dry goods)


Preface

Combining my several years of team management experience, I will share the tools used in the development process and project management process with everyone. They are all dry goods, and I suggest you collect them first, so that you can find them later.

Load balancing: Nginx+Keepalived

Insert picture description here
Nginx+Keepalived: In the architecture design, NGINX reverse proxy and load balancing can be used to achieve high availability of back-end applications. At the same time, we also need to consider the single point of failure of Nginx. Really achieve high availability of architecture. The current mainstream solution is keepalived+nginx to achieve nginx failover and monitor and alarm at the same time. At the same time of automatic failover, the relevant application person in charge can be notified to check related applications, troubleshoot hidden dangers, and completely solve the problem.

Unified Gateway: getway

Spring cloud gateway is a gateway developed by Spring official based on Spring 5.0, Spring Boot 2.0 and Project Reactor technologies. Spring Cloud Gateway aims to provide a simple, effective and unified API routing management method for microservice architecture. Spring Cloud Gateway serves as Spring Cloud The gateway in the ecosystem aims to replace Netflix Zuul. It not only provides a unified routing method, but also provides the basic functions of the gateway based on the Filer chain, such as security, monitoring/buying point, and current limiting.

Unified Configuration Center: nacos

Insert picture description here
Nacos supports DNS-based and RPC-based service discovery (which can be used as the registration center of springcloud), dynamic configuration services (which can be used as configuration centers), and dynamic DNS services.
Nacos is committed to helping you discover, configure, and manage microservices. Nacos provides a set of easy-to-use feature sets to help you realize dynamic service discovery, service configuration management, service and traffic management. Nacos helps you build, deliver and manage microservice platforms more agile and easier. Nacos is a service infrastructure for building modern application architectures (such as microservice paradigm, cloud native paradigm) centered on "services".

Current limit: Sentinel

Insert picture description here
In high concurrency scenarios, most of the concurrency bottlenecks are in the database. In order to ensure the robustness of the database, at this time, the interface current limit needs to be performed from the upper layer. Nginx also has a limited flow function, but it can only limit the flow to the project level. Sentinel can be defined to the interface level current limit, so the granularity of Sentinel current limit is finer than Nginx. Sentinel can be integrated with springboot non-intrusively, and the number and frequency of access to interfaces that require current limiting can be configured in the interface.

Design Tool: Blue Lake

Insert picture description here
Blue Lake is a sharing platform for product documents and design drawings, helping Internet teams better manage documents and design drawings. Blue Lake can display Axure online, automatically generate design icon notes, share design drawings with the team, and display the jump relationship between pages. Blue Lake supports one-click sharing and online discussion from Sketch and Ps. Blue Lake can turn the design into a clickable demo prototype in just a few simple steps. Blue Lake also supports sharing with colleagues so that he can also use his mobile phone. View the design effect in. Blue Lake has become a new generation of product design work.

Front-end framework: vue

Insert picture description here
VUE: The goal is to implement response data binding and combined view components through the simplest possible API, which is very easy to learn and easy to integrate with other libraries or existing projects. After several years of understanding Vue is also the first choice of 80% of current technology companies. Vue is basically the necessary skills among front-end learning talents.


eruda: H5 debugging artifact for mobile phones, especially embedded H5 pages in WeChat official accounts and applets. Eruda is a debugging panel designed for front-end mobile and mobile terminals, similar to the mini version of Chrome DevTools (it is certain that it is not as powerful as Chrome). Its main functions include: capturing console logs, checking element status, displaying performance indicators, Capture XHR requests, display local storage and cookie information, browser feature detection, etc.
Of course, it is also very simple to use, just add two lines of code to the HTML code:

<script src="//cdn.jsdelivr.net/npm/eruda"></script>
<script>eruda.init();</script>   

Insert picture description here

JAVA framework

Insert picture description here

Springboot (strongly recommended for everyone to use): Spring Boot is a new framework provided by the Pivotal team, and its design purpose is to simplify the initial setup and development of new Spring applications. The framework uses a specific way to configure, so that developers no longer need to define a boilerplate configuration.


Insert picture description here

mybatis: MyBatis is an excellent persistence layer framework that supports customized SQL, stored procedures, and advanced mapping. MyBatis avoids almost all JDBC code and manual setting of parameters and obtaining result sets. MyBatis can use simple XML or annotations for configuration and native Map, and map interfaces and Java POJOs (Plain Old Java Objects, ordinary Java objects) into records in the database.


Insert picture description here
mybatisplus: not only can operate the database for objects like HIbernate, but also support mybatis to write native SQL. And can automatically generate dao, service, controler layer additions, deletions, and methods according to the table, which greatly improves development efficiency.

Message queue: rabbitmq

Insert picture description here
Compared with N multi-message middleware, rabbitmq was finally selected as the message middleware from multiple dimensions such as stability, ease of use, and community activity. The main application scenarios are: asynchronous processing, log processing, application decoupling, and traffic peak clipping.

NOSQL database: redis

Insert picture description here
Redis is a key-value storage system. It is now used more and more in various systems. In most cases, it is used as a cache because of its high performance.

Security framework: shiro

Insert picture description here

shiro: Apache Shiro is a Java security framework designed to simplify authentication and authorization. Shiro can be used in both JavaSE and JavaEE projects. It is mainly used to handle identity authentication, authorization, enterprise session management, and encryption. The specific functions of Shiro are as follows:
(1) Identity authentication/login, to verify whether the user has the corresponding identity;
(2) Authorization, that is, permission verification, to verify whether an authenticated user has a certain permission; that is, to determine whether the user Can do things, such as: verifying whether a user has a certain role. Or fine-grained verification of whether a user has a certain authority to a certain resource;
(3) Session management, that is, after the user logs in, it is a session. Before logging out, all its information is in the session; the session can be ordinary The JavaSE environment can also be like the Web environment;
(4) Encryption to protect the security of data, such as password encryption and storage to the database instead of plain text storage;
(5) Web support, which can be easily integrated into the Web environment;
Caching: Caching, for example, after a user logs in, its user information and roles/permissions do not have to be checked each time, which can improve efficiency;
(6) Shiro supports concurrent verification of multi-threaded applications, that is, if one thread is opened for another Threads can automatically propagate permissions;
(7) Provide test support;
(8) Allow a user to pretend to be another user (if they allow) to access;
(9) Remember me, this is a very common function , That is, after logging in once, you don’t need to log in next time.
Summary: I strongly recommend you to use this shiro, because this follow-up may have parallel unauthorized security vulnerabilities, which will be scanned by basic security tests. In the follow-up, I will write a special topic on how to solve the security vulnerabilities of parallel ultra vires.

API management tool: YApi

Insert picture description here
YAPI: YApi is an efficient, easy-to-use, and powerful api management platform that aims to provide developers, products, and testers with more elegant interface management services. It can help developers easily create, publish, and maintain APIs. YApi also provides users with an excellent interactive experience. Developers only need to use the interface data writing tools provided by the platform and simple click operations to implement interface management.
Summary: Yapi is web-based, a very convenient interface management tool, beautiful and clear interface. It is also possible to implement a simulated calling environment of the interface.

Document management tool: showdoc

Insert picture description here
shodoc: Programmers hope that others can write technical documents, but they don't want to write documents. Because writing a document requires a lot of time to process formatting and typesetting, thinking about various non-technical details such as where the new word document is placed. Word documents are scattered among different people in the team. Those who need documents basically rely on yelling, and then go to QQ or mailbox to receive the documents thrown by the other party. This method of communication is certainly possible, but it is not efficient.
ShowDoc is an online document sharing tool that is very suitable for IT teams. It can speed up the efficiency of communication between teams.
Insert picture description here

Project process management tool: jira

Insert picture description here
jira: JIRA is a project and transaction tracking tool produced by Atlassian. It is widely used in defect tracking, customer service, demand collection, process approval, task tracking, project tracking, and agile management. JIRA has flexible configuration, comprehensive functions, simple deployment, and rich expansion.

Automated deployment tool: jekenis

Insert picture description here
Jenkins is an independent open source software project. It is a continuous integration tool based on Java developed to monitor continuous repetitive work. It aims to provide an open and easy-to-use software platform that makes continuous software integration possible. The predecessor is Hudson, an extensible continuous integration engine. It can be used to automate various tasks such as building, testing and deploying software. Jenkins can be installed via the native system package Docker, and can even run independently on any machine where the Java Runtime Environment is installed.
Mainly used to:
continuously and automatically build/test software projects, such as CruiseControl and DamageControl.
Monitor some scheduled tasks.

test tools


Interface testing tool, postman:
Insert picture description here

The postman network debugging tool, the webpage debugging tool can not only debug simple basic information such as simple css, html, scripts, etc., it can also send almost all types of HTTP requests! Postman can be said to be one of the representative products in Chrome plug-in products in sending network HTTP requests.


Performance testing tool, jmeter:
Insert picture description here
Apache JMeter is an open source tool software for writing load function testing and performance testing in pure java. Compared with Loadrunner, JMeter is small, light and free, and has gradually become a mainstream performance testing tool, and it is one of the tools that every tester must master.


Security testing tool, BurpSuite:
Burp Suite is an integrated penetration testing tool, which integrates a variety of penetration testing components, so that we can automatically or manually complete penetration testing and attacks on web applications. At present, many professional and public penetration testing tools for network security are BurpSuite.


Packet capture tool, fiddler:
Insert picture description here

Fiddler (Chinese name: Violin) is an HTTP debugging proxy. It monitors the Http network data flow of the system in the form of a proxy server. Fiddler can or allows you to check all HTTP communications, set breakpoints, and all Fiddle "in and out" "The data.

fiddler主要用途:
 1. http/https监测与分析
 2. 动态修改请求或回复
 3. 断点调试
 4. 自动回复
 5. 自定义脚本扩展

Monitoring system: Grafana+zabbix

Grafana+zabbix: Our company uses a lot of monitoring tools, and finally think that zabbix is ​​the best monitoring tool. Not only can monitor hardware information such as memory, cpu, disk occupancy, I/O read and write rates. You can also monitor your own business system. Finally, we integrate the monitoring and early warning information into the Dingding robot to grasp various abnormalities of the online server in real time.
In the use of zabbix, I wonder if you have encountered such a scenario-when we want to show chart data to others, we will find it inconvenient, because the chart type of zabbix is ​​not rich enough, and can only display one piece of data at the same time (although You can create aggregate graphics, but it's not very convenient), so when you want to display it on a large screen, you don't think it is appropriate. I think this may be because zabbix is ​​still a back-end monitoring system, mainly for operation and maintenance personnel. In order to make up for this shortcoming, I found an open source third-party dashboard system-Grafana, which officially supports zabbix data output natively. In addition to supporting zabbix, it also supports a large number of other system data. For details, see the official Grafana plugin library.
The following is the result of our integration of Grafana+zabbix.
Insert picture description here

Guess you like

Origin blog.csdn.net/penggerhe/article/details/108225974