软件项目管理工具,JAVA WEB 框架技术(结合实际工作经验,全是干货)


前言

结合本人几年的团队管理经验,特把开发过程、项目管理过程中使用到的工具分享给大家。全是干货,建议大家先收藏,方便后续使用的时候能够找到。

负载均衡:Nginx+Keepalived

在这里插入图片描述
Nginx+Keepalived: 在架构设计中,可以利用NGINX的反向代理和负载均衡实现后端应用的高可用性,同时我们还需要考虑Nginx的单点故障。真正做到架构高可用性。目前主流的解决方案就是keepalived+nginx 实现nginx的故障转移,同时做好监控报警。在自动故障转移的同时能通知到相关的应用负责人检查相关应用,排查隐患,彻底解决问题。

统一网关:getway

Spring cloud gateway是spring官方基于Spring 5.0、Spring Boot2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供简单、有效和统一的API路由管理方式,Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix Zuul,其不仅提供统一的路由方式,并且还基于Filer链的方式提供了网关基本的功能,例如:安全、监控/埋点、限流等。

统一配置中心:nacos

在这里插入图片描述
Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。

限流:Sentinel

在这里插入图片描述
在高并发场景下,多数并发的瓶颈点在数据库,为了保证数据库的健壮性,这个时候就需要从上层做接口限流。Nginx也有限流功能,但是只能限流到项目级别。Sentinel是可以定义到接口级别的限流,所以Sentinel限流的粒度要比Nginx要细。Sentinel可以无侵入的和springboot集成,可以在界面配置配置需要限流的接口的访问个数和频次。

设计工具:蓝湖

在这里插入图片描述
蓝湖是一款产品文档和设计图的共享平台,帮助互联网团队更好地管理文档和设计图。蓝湖可以在线展示Axure,自动生成设计图标注,与团队共享设计图,展示页面之间的跳转关系。蓝湖支持从Sketch、Ps一键共享、在线讨论,而且蓝湖只需简单几步就能将设计图变成一个可以点击的演示原型,蓝湖还支持分享给同事,让他也可以在手机中查看设计效果。蓝湖已经成为新一代产品设计的工作方式。

前端框架:vue

在这里插入图片描述
VUE: 目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,非常容易学习,非常容易与其它库或已有项目整合。经过这几年的了解vue也是目前80%的科技公司的首选,前端学习人才中vue也基本上市必备技能。


eruda: 手机H5调试神器,特别在微信公众号、小程序嵌入H5页面。Eruda 是一个专为前端移动端、移动端设计的调试面板,类似Chrome DevTools 的迷你版(没有chrome强大 这个是可以肯定的),其主要功能包括:捕获 console 日志、检查元素状态、显示性能指标、捕获XHR请求、显示本地存储和 Cookie信息、浏览器特性检测等等。
当然是用也非常简单,只需在HTML代码中加入两行代码即可:

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

在这里插入图片描述

JAVA框架

在这里插入图片描述

Springboot(强烈建议大家使用): Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。


在这里插入图片描述

mybatis: MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。


在这里插入图片描述
mybatisplus: 不但能够像HIbernate一样针对对象操作数据库,也支持mybatis写原生的sql。而且可以根据表自动生成dao,service,controler层的增删改成方法,极大提升开发效率。

消息队列:rabbitmq

在这里插入图片描述
对比了N多消息中间件,最终从稳定性、易用性、社区活跃性等多个维度,最终选定rabbitmq做为消息中间件。主要应用场景为:异步处理、日志处理、应用解耦、流量削峰。

NOSQL数据库:redis

在这里插入图片描述
Redis是一个key-value存储系统,现在在各种系统中的使用越来越多,大部分情况下是因为其高性能的特性,被当做缓存使用。

安全框架:shiro

在这里插入图片描述

shiro: Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权。Shiro在JavaSE和JavaEE项目中都可以使用。它主要用来处理身份认证,授权,企业会话管理和加密等。Shiro的具体功能点如下:
(1)身份认证/登录,验证用户是不是拥有相应的身份;
(2)授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;
(3)会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;
(4)加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储;
(5)Web支持,可以非常容易的集成到Web环境;
Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以提高效率;
(6)shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去;
(7)提供测试支持;
(8)允许一个用户假装为另一个用户(如果他们允许)的身份进行访问;
(9)记住我,这个是非常常见的功能,即一次登录后,下次再来的话不用登录了。
总结: 这个shiro我是强烈建议大家使用的,因为这个后续可能会有平行越权的安全漏洞,基本的安全测试都会扫描到的。后续我会专门写个专题介绍怎么解决平行越权的安全漏洞。

API管理工具:YApi

在这里插入图片描述
YAPI: YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
总结: Yapi 基于web ,可以非常方便的接口管理工具,界面美观清晰。也可以实现接口的模拟调用环境。

文档管理工具:showdoc

在这里插入图片描述
shodoc: 程序员都很希望别人能写技术文档,而自己却很不希望要写文档。因为写文档需要花大量的时间去处理格式排版,想着新建的word文档放在哪个目录等各种非技术细节。word文档零零散散地放在团队不同人那里,需要文档的人基本靠吼,吼一声然后上qq或者邮箱接收对方丢过来的文档。这种沟通方式当然可以,只是效率不高。
ShowDoc就是一个非常适合IT团队的在线文档分享工具,它可以加快团队之间沟通的效率。
在这里插入图片描述

项目流程管理工具:jira

在这里插入图片描述
jira: JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。JIRA中配置灵活、功能全面、部署简单、扩展丰富。

自动化部署工具:jekenis

在这里插入图片描述
Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机器独立运行。
主要用于:
持续、自动地构建/测试软件项目,如CruiseControl与DamageControl。
监控一些定时执行的任务。

测试工具


接口测试工具,postman:
在这里插入图片描述

postman网络调试利器,网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。


性能测试工具,jmeter:
在这里插入图片描述
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。


安全测试工具,BurpSuite:
Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们自动化地或手工地能更好的完成对web应用的渗透测试和攻击。目前很多做网络安全的专业性公的的渗透测试工具就是BurpSuite。


抓包工具,fiddler:
在这里插入图片描述

Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据。

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

监控系统:Grafana+zabbix

Grafana+zabbix: 我们公司用了很多监控工具,最后觉得zabbix是最好用的监控工具。不仅可以监控内存、cpu、磁盘占有率、I/O读写速率等硬件信息。还可以做自己业务系统的监控。最后我们把监控预警信息集成到钉钉机器人,实时掌握线上服务器的各种异常。
在zabbix的使用中,不知大家是否有遇到过这种场景——当我们要给别人看图表数据时会觉得不方便,因为zabbix的图表类型不够丰富,且同时只能展示一项数据(虽然可以创建聚合图形,但也不是很方便),所以想挂一个大屏展示给别人看的时候就觉得不太合适了。我觉得这可能是因为zabbix还是偏后端的监控系统,主要面向运维人员自己看的。为了弥补这个缺陷,我找到一个开源第三方dashboard系统——Grafana,且官方原生支持zabbix数据输出。除了支持zabbix,还支持大量其他系统数据,详情见Grafana官方插件库。
以下就是Grafana+zabbix我们集成过后的效果。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/penggerhe/article/details/108225974