项目开发管理工具推荐

软件开发是复杂的创造性的劳动,需要依赖大量工具才能完成,因此想要提高软件开发的效率和质量,离不开强大、高效、易用、维护成本低的工具,下面我根据自己的经验,推荐一些好用的工具。

即时通讯

即时通讯和会议系统是项目开发过程中必不可少的,尤其是远程办公时,会议系统更是不可或缺。企业微信拥有和微信一致的沟通体验,简单易用。企业微信可随时随地发起和参与音视频会议,支持300人同时参会,并为主持人提供了管理功能。发言时还可演示文档或电脑屏幕,支持实时标注演示内容。

gitea

官方网站:https://work.weixin.qq.com/

项目管理

目前主流的项目管理通常采用敏捷开发的模式,因此项目管理工具也要选择支持敏捷开发模式的工具,不建议使用禅道这样的重流程的工具,不适合敏捷团队,这里我推荐Taiga,它设计简洁,操作简单,充分体现了敏捷开发的理念。

gitea

官方网站:https://taiga.io

在线体验:https://tree.taiga.io

体验版服务器在国外,访问可能会有点慢。

代码托管

前几年使用的比较多是SVN,近几年基本都使用GIT了,开源项目大都使用Github,虽然免费,但国内访问不稳定,速度慢,因此国内的公司基本都会自己搭建,我先后为公司搭建过两个托管平台,一个是Gitlab,一个是Gitea,Gitlab功能比较全面,但对硬件资源要求比较高,而且性能一般。所以推荐使用另一个开源的git托管平台——Gitea。

gitea

官方网站:https://gitea.io

在线体验:https://gitea.com

持续交付

最知名、使用最广泛的开源的持续集成、交付平台当属Jenkins,主要的优势在于有大量免费的插件可以使用,但实际使用发现,很多插件质量很差,配置项很多,真正想要落地,其实需要自己编写shell脚本。这里我推荐基于docker技术的一款现代化的持续交付平台DroneCI,它使用简单,可以和主流的Git代码托管平台无缝对接,并且不需要编写代码就可以满足大多数持续构建、交付的需求。

gitea

官方网站:https://drone.io

在线体验:https://cloud.drone.io

体验版服务器在国外,访问可能会有点慢。

制品库(本地仓库)

Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。Maven 仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等等)的地方。

后来,除了Maven仓库,还有npm、nuget、pypi、docker等仓库也需要本地仓库。

市面上可选的通用的本地仓库有:nexus、ARTIFACTORY,ARTIFACTORY是收费的,nexus是免费的,同时nexus以其易用性和可靠性,成为目前市场上最主流的本地仓库。

官方网站:https://www.sonatype.com/product-nexus-repository

文件存储

在公司中,文件分享是一个很常用的功能,不同于云盘,他对性能和安全性没有那么高的要求,简单易用才是大家最关心的,这里推荐chfs,chfs是一个免费的、HTTP协议的文件共享服务器,使用浏览器可以快速访问。与其他常用文件共享方式(如FTP,飞秋,网盘,自己建站)相比,具有使用简单,适用场景更多的优点,在个人使用以及共享给他人的场景中非常方便快捷。

官方网站:http://iscute.cn/chfs

绘图(流程图、UML、思维导图)

draw.io 是一个强大简洁的在线的绘图网站,支持流程图,UML图,架构图,原型图等。支持Github,Google Drive, One drive等网盘同步,并且永久免费。如果觉得使用Web版不方便,draw.io 也提供了多平台的离线桌面版可供下载。

在线版:https://www.draw.io

本地部署版:https://github.com/jgraph/drawio/releases/latest

PC 安装版:https://github.com/jgraph/drawio-desktop/releases/latest

接口管理

维护不同工具之间数据一致性非常困难、低效。并且这里不仅仅是工作量的问题,更大的问题是多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。

Apifox 是接口管理、开发、测试全流程集成工具,定位 Postman + Swagger + Mock + JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!

gitea

官方网站:https://www.apifox.cn

安全测试

在今天,网站的安全是容易被忽视的,黑客具备广泛的攻击手段,例如SQL注入,XSS,文件包含,目录遍历,参数篡改,认证攻击等,虽然你配置了正确的防火墙和WAF,但是这些安全防御软件仍然存在策略性的绕过。因此,需要您定期的扫描你的web应用,但是手动检测你所有的web应用是否存在安全漏洞比较复杂和费时,所以您需要一款自动化的web漏洞扫描工具来检测您的web应用是否存在安全漏洞。

Acunetix Web Vulnerability Scanner(简称AWVS)是一款知名的Web网络漏洞扫描工具,它通过网络爬虫测试你的网站安全,检测流行安全漏洞。

awvs

官方网站:https://www.acunetix.com

性能测试

Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学。

它的主要思想就是模拟一群用户将访问你的网站。每个用户的行为由你编写的python代码定义,同时可以从Web界面中实时观察到用户的行为。

Locust完全是事件驱动的,因此在单台机器上能够支持几千并发用户访问。

与其它许多基于事件的应用相比,Locust并不使用回调,而是使用gevent,而gevent是基于协程的,可以用同步的方式来编写异步执行的代码。

awvs

官方网站:https://www.locust.io

代码静态分析平台

SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。

Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar

awvs

官方网站:https://www.sonarqube.org