1993-2023金蝶国际软件集团有限公司④内部公开请勿外传金蝶云苍穹平台生态部/郑烈彬2023.12技术开放日第十期分享苍穹开发助手:高效开发,提升苍穹工程质量2④内部公开请勿外传分享人介绍郑烈彬技术架构师•新版开发助手作者:•1、承担开发助手的产品规划设计•2、承担开发助手的技术架构设计•3、承担该产品的开发与功能测试•4、开发助手疑难问题高级客服3④内部公开请勿外传0203苍穹开发助手产品定位与架构规划核心功能一:苍穹代码规则扫描核心功能二:苍穹开发效率提升目录0104核心功能三:苍穹环境资源更新1.1开发助手的愿景|1.2开发助手的产品定位|1.3开发助手的产品架构与规划2.1代码扫描的价值与现状|2.2苍穹代码扫描功能介绍|2.3苍穹代码规则集解读3.1一键生成苍穹模板工程|3.2苍穹本地开发效率优化4.1苍穹环境资源更新原理介绍|4.2苍穹环境资源更新常见问题处理014开发助手产品定位与架构规划1.1开发助手的愿景1.2开发助手的产品定位1.3开发助手的产品架构与规划④内部公开请勿外传5愿景苍穹开发助手的愿景是:通过工具赋能方式,帮助苍穹开发者实现高效开发,提升苍穹工程质量。④内部公开请勿外传6用户、目标与定位一、这款产品面向的用户是谁?面向金蝶云苍穹的所有开发者,包括了苍穹研发平台、机构、伙伴、社会及校园开发者。二、这款产品的目标与功能定位是什么?产品目标:提升苍穹开发者的开发效率与工程软件质量。功能定位:与提升苍穹开发效率与代码质量密切相关的功能。三、产品的核心功能有哪些?1、快速生成苍穹模板工程2、实时苍穹代码规范扫描3、实时更新苍穹环境资源4、快速便捷的API文档提示5、一键构建苍穹插件补丁包6、一键生成苍穹代码质量报告④内部公开请勿外传7开发助手功能架构④内部公开请勿外传8开发助手技术架构与规划苍穹代码扫描引擎苍穹代码规则库管理苍穹资源复用检测苍穹环境资源更新器代码质量报告生成器苍穹子模块生成器苍穹插件类生成器苍穹API提示生成器苍穹多模板管理器苍穹微服务生成器苍穹API搜索管理苍穹文章搜索管理苍穹模板工程生成器中英文规则切换管理苍穹SDK配置管理功能层PMDEngineGradleP3CIdeaSDK基础层交互层Idea插件Sonar插件更多场景Eclipse插件VSCode插件命令行工具HutoolMavenJunitXPathSonarSDKKotlinVsCodeSDKEclipseSDKSonar规则引擎适配器Idea规则引擎适配器PMD规则测试模块其他更多模块苍穹离线开发检测029核心功能一:苍穹代码规则扫描2.1代码扫描的价值与现状2.2苍穹代码扫描功能介绍2.3苍穹代码规则集解读④内部公开请勿外传10代码扫描的价值–解决项目进度与质量之间的矛盾生产率质量•为了赶进度,开发人员以实现功能需求为目标,经常没时间考虑软件开发的设计原则、编码规范等,交付一些低质量的功能代码,降低软件质量。•为了提升代码质量,需要组织开发人员进行代码走读、代码评审,但却要耗费大量资源,减少了单位时间内的功能代码产出量,降低软件生产率。在项目交付中,我们常常面临项目进度与质量之间的矛盾。为了解决这个问题,我们引入了苍穹代码扫描工具,减少人工代码评审与因代码质量问题返工导致的工时耗费,实现在保障项目进度的前提下,提升苍穹项目软件质量。④内部公开请勿外传11代码扫描的价值-为了交付更好的软件质量,同时提高软件生产率01符合编码规范•编码规范,指的是从代码的正确性、稳定性、可读性、健壮性等方面识别出来的,以提高团队成员之间的协作效率为目的,在编码过程中要遵循的规则。例如,代码的排版规则、注释规则、命名规则、函数库使用规则等。•安全漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。是受限制的计算机、组件、应用程序或其他联机资源的无意中留下的不受保护的入口点。•软件效率,是指相对于所用资源的数量,软件产品可提供适当性能的能力。软件效率特性包含:时间特性和资源利用性。时间特性,指在执行功能时,提供适当的响应和处理时间以及吞吐率的能力。资源利用性,指在执行功能时,使用合适数量和类别的资源的能力。•软件缺陷,又称Bug。所谓软件缺陷,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户的需要。02更少软件缺陷03避免软件漏洞04更高软件效率通过使用苍穹代码扫描,我们可以快速发现并修复不符合编码规范的代码、检测出潜在的代码缺陷、安全漏洞与性能问题,从而提高软件质量。。④内部公开请勿外传12苍穹代码扫描的现状-为什么要做苍穹的代码规范扫描插件?1、很多苍穹定制化开发项目,没有使用代码扫描工具,代码质量问题仅靠人工代码评审。2、研发平台内部使用了SonarQube平台进行静态代码扫描,但排除Findbugs的规则集后,仅有5条与苍穹开发规范相关的规则。3、星瀚HR的p3c代码扫描插件中,仅有1条苍穹开发规范相关的规则。④内部公开请勿外传13苍穹代码扫描功能介绍苍穹代码扫描支持扫描结果一键导出1,规划了苍穹自定义规则共80+条,已发布34条规则,且不断收集完善扩展中;2,精选了业界成熟框架的JAVA编码规则合计224条(源自P3C与PMD官方规则集);3,支持扫描结果一键导出,方便进行项目缺陷管理与跟进;苍穹代码规范扫描,提升苍穹项目的软件质量与研发效率。④内部公开请勿外传14目前规划了80+条自定义苍穹代码规则,且累计已发布34条规则。苍穹自定义代码规则集解读1–规则分类编码规范23%公有云安全19%性能问题19%业务规范11%代码缺陷10%安全问题10%支付安全8%规则分类统计:02468101214161820编码规范公有云安全性能问题业务规范代码缺陷系统安全支付安全④内部公开请勿外传15目前规划了80+条自定义苍穹代码规则,且累计已发布34条规则。苍穹自定义代码规则集解读2–适用范围定制开发45%全平台32%财务云19%人力云4%适用范围统计:④内部公开请勿外传16目前规划了80+条自定义苍穹代码规则,且累计已发布34条规则。苍穹自定义代码规则集解读3–问题级别问题级别统计:Blocker69%Critical30%Major1%④内部公开请勿外传17在苍穹代码扫描分析完成后,可通过“导出扫描报告”功能生成结果报告,可使用WPS等工具进行统计分析。扫描报告中,除了苍穹自定义代码规则集,还包含了P3C与PMD官方的规则集。苍穹自定义代码规则集解读4–扫描报告扫描报告统计示例(问题级别):扫描报告统计示例(规则集):MAJOR79%BLOCKER14%CRITICAL7%PMD75%P3C12%KDCODE8%KDCLOUD5%0318核心功能二:苍穹开发效率提升3.1一键生成苍穹模板工程3.2苍穹本地开发效率优化④内部公开请勿外传19一键生成苍穹模板工程一键生成符合规范的苍穹模板工程,简化苍穹工程创建过程,提升苍穹本地开发效率。•开发资源(苍穹星瀚依赖jar包)自动下载及引入;•自动创建工程启动类,无需手工修改参数,一键启动调试;•支持多种环境类型:windows轻量级、容器版环境、虚拟机环境;•支持一应用一工程、一应用多工程、一云一工程三种工程模板;•按用户自定义的开发商、云以及应用标识自动生成苍穹工程的目录结构;帮助开发团队快速搭建苍穹开发工程,自动下载苍穹开发资源与配置苍穹工程依赖,提升苍穹开发效率•业务类、通用类、插件、报表、webapi等插件分类一目了然方便管理维护;④内部公开请勿外传20苍穹本地开发效率优化–常见措施0421核心功能三:苍穹环境资源更新4.1苍穹环境资源更新原理介绍4.2苍穹环境资源更新常见问题处理④内部公开请勿外传22苍穹环境资源更新原理介绍–不同的更新场景1、按更新配置格式区分,有两种:update.md5与update.json2、按下载接口地址区分,有两种:开发者工具环境接口与MC服务资源接口3、按MC服务版本区分,有三种:4.x、5.x以及6.x版本④内部公开请勿外传23苍穹环境资源更新原理介绍–苍穹资源更新流程④内部公开请勿外传24苍穹环境资源更新原理介绍–更新流程说明1、用户打开Idea中已创建的开发工程,点击“更新环境”,弹出输入环境资源地址框,用户可在此框内输入环境资源地址。2、用户点击“更新环境”,判断网络是否能正常连通,若网络不能连通,则请检查苍穹资源网址是否可以正常访问;若网络能正常连通,则转步骤3。3、后台判断输入的服务地址url是否是CosmicStudio的服务地址,若是CosmicStudio服务地址,转4;若是mc服务地址,转6。4、判断此环境目录是否复用CosmicStudio环境目录。①若复用,则不允许通过开发助手更新环境”;②若没有复用,则检测是否有update.md5文件,若无md5文件,则请先去CosmicStudio环境详情内同步开发资源,待同步成功后再更新环境;若有md5文件,转5。5、解析md5文件,校验下载文件是否存在,①若不存在,则请先去CosmicStudio环境详情内同步开发资源,同步成功后再更新环境;②若存在,直接更新环境。6、如输入的苍穹资源地址是mc资源接口地址,判断此地址下是否有md5或json文件,①若无,则需先去管理中心(MC)内同步开发资源,同步成功后再更新环境;②若有md5或json文件,转7。7、解析md5或json文件,根据md5值判断是否需要更新本地苍穹资源文件。①若无需更新,则表示环境已经是最新版本;②若需更新,直接更新环境。④内部公开请勿外传25苍穹环境资源更新常见问题处理1④内部公开请勿外传26苍穹环境资源更新常见问题处理2④内部公开请勿外传27互动交流时间公众号金蝶云苍穹小助手微信开发助手交流群1993-2023金蝶国际软件集团有限公司④内部公开请勿外传特别声明ClaimofConfidential本文件内容为④内部公开请勿外传:禁止未授权的内部、第三方人员使用与访问非专项必要的业务与项目负责人,收到此内容请立即删除严禁在未经过主管领导审批,发送给无关业务团队与人员特别声明ClaimofConfidential•1993-2023金蝶国际软件集团有限公司。保留一切权利。•未经金蝶国际软件集团有限公司的书面许可,任何单位或个人不得以任何形式或为任何目的复制或传播本文档的任何内容。本文档中包含的信息如有更改,恕不另行通知。•本文档提到的金蝶®、金蝶云®、金蝶云EBC®、金蝶云苍穹®、金蝶云星瀚®、金蝶云星空®、金蝶云星辰®、金蝶KIS®、K/3®、金蝶EAS®、友商网®、Apusic®和其它金蝶产品和服务以及它们各自的徽标均为金蝶软件(中国)有限公司或其关联公司在中国和其他国家或地区的商标或注册商标。本文档提到的所有其它产品和服务名称分别为它们各自公司的商标。•本文档所用数据均为虚构的模拟数据,不代表任何一家企业的真实情况,如有权利人认为文档中的任何内容存在侵权情况,请反馈给金蝶官方邮箱(DataSubjectRequest@kingdee.com),我们将在15个工作日内处理。•注:①②机密信息严禁泄露③秘密信息严禁泄露④内部公开请勿外传