原生iOS解决方案
代码扫描产品白皮书
第一章 产品概述
代码扫描系统定位于为开发及测试人员提供简单好用的代码分析扫描工具,从编码阶段、提交阶段、远程代码库等全流程进行代码规约的检测,同时提供数据分析、统计报表、扫描告警等能力。目标是通过不断改善编码规范性和安全性,进而提高编码质量、降低团队开发的协作成本。
第二章 产品优势
2.1 多平台
支持Java、Android等主流语言/平台的代码扫描。未来还可以拓展iOS、JS等更多语言/平台的代码扫描。
2.2 扫描多样化
扫描多样化是指支持多种扫描方式,包括扫描远程代码库、本地代码库。其中本地代码库的扫描支持手工扫描、实时扫描和提交扫描。
2.3 即时数据反馈
远程代码库完成扫描后,系统会按照项目及项目组2个维度汇总分析扫描数据及问题详情。 本地代码库,不论哪种扫描方式,都会实时在IDE窗口展示对应文件的扫描结果。
2.4 操作简单
远程代码库扫描只需填写工程信息即可完成工程接入,然后点击扫描按钮即可触发代码扫描。 本地代码库扫描,安装IDE插件并重启IDE后,即可使用本地代码扫描功能。
第三章 应用场景
3.1 远程仓库代码扫描
扫描远程仓库代码,发现历史提交的代码中编码违规问题。
3.2本地仓库代码扫描
扫描本地仓库代码,写代码阶段发现编码违规问题。
第四章 总体设计
4.1 产品架构
4.2 部署架构
第五章 产品功能
5.1远程仓库代码扫描
1) 工程接入
在用户操作台工程接入功能下,填写工程仓库地址、分支、管理员等信息后完成工程接入,简单易操作。
2) 手工扫描
在用户操作台工程列表-手动扫描tab,选择对应的工程后点击扫描按钮即可执行当前工程的扫描任务,扫描完毕后同步反馈扫描发现的违规问题。违规问题按照严重程度分为Blocker、Critical、Major、Warning四个等级,每个等级分别对应不同的违约数量及详情。
3) 查看扫描历史
在用户操作台工程列表-扫描历史tab,查看每个工程执行的所有扫描历史数据、违规问题详情、扫描日志、扫描分支、操作人等相关信息。
4) 工程信息维护
在用户操作台工程列表-工程信息tab,可对工程信息进行编辑,比如修改仓库地址、分支、工程成员等信息。
5) 统计数据
在用户操作台工程列表-统计数据tab,可查看被扫描工程的违规问题数据及详情。
5.2 扫描本地仓库代码
1) 安装IDE插件
导入代码扫描系统提供的IDE插件包,完成IDE插件安装,便可在本地开发阶段使用代码扫描功能。
2) 实时扫描
开启实时扫描能力开关,编辑当前代码文件的时候便可自动执行扫描,并反馈当前文件中扫描出现的编码违规问题。
3) 手工扫描
选择要扫描的文件或文件夹,选择手动扫描按钮后,便可扫描被选中的文件及文件夹内代码,并反馈当前文件中扫描发现的编码违规问题。
4) 提交扫描
在本地代码commit到中间库阶段,对要提交的文件代码进行扫描,并反馈扫描发现的编码违规问题,用户可以选择继续提交也可以选择解决违规问题后再提交。
第六章 部署环境要求
6.1 硬件要求
- 服务器资源
假设系统达到500TPS,建议部署资源如下:
用途 | 虚拟化程度 | 配置说明 | 数量 |
---|---|---|---|
前端后台服务器 | 虚拟机 | 4C8G80G | 1 |
数据库服务器 | 虚拟机 | 4C8G100G | 1 |
Jenkins节点服务器 | 虚拟机 | 4C8G500G | 1 |
衡量平台构建服务器的标准是通过周打包量来衡量的,假设1500次/周的打包量,建议部署的资源如下:
用途 | 虚拟化程度 | 配置说明 | 数量 |
---|---|---|---|
构建服务器 | 物理机 | 16C32G1TB | 1 |
6.2 软件要求
- 操作系统
建议CentOS 7.4;
- 中间件
软件名称 | 软件版本 | 说明 |
---|---|---|
MySQL | 5.7 | |
云存储 | 2T空间 | |
maven | ||
GitLab | 12版本以上 | |
erp账号体系 |