SharePoint Framework 基于团队的开发(四)

简介: 博客地址:http://blog.csdn.net/FoxDave确保代码一致性和质量软件开发团队常常同项目的一致性和高质量做斗争。不同的开发者有不同的编码风格和偏好。

博客地址:http://blog.csdn.net/FoxDave

确保代码一致性和质量

软件开发团队常常同项目的一致性和高质量做斗争。不同的开发者有不同的编码风格和偏好。在每个团队都有技术优秀的独立开发者和相对经验较少的开发者。并且,许多组织都有特定的软件开发必须遵守的条例。所有的挑战都使得开发者难以一直关注,特别是当项目结束日期近在咫尺时,开发者往往通过牺牲质量而把任务尽快完成,长久来看这种做法危害更大。

选择JavaScript库并使用代码规范

如果你的团队以前构建过SharePoint定制化项目,你很可能已经有了编码规范来描述你如何构建定制化和项目中使用的工具和库。使用代码规范可以使你消除个体开发者的偏好,使整个代码更容易维护。同时编码规范也反映了过去几年你的团队积累下来的经验,使你在做定制化时更高效和高质量。

SharePoint Framework专注于客户端开发,推荐使用TypeScript来帮助开发者编写更好的代码并在编译过程中捕获不一致的地方。完成同一个任务也有成百上千的客户端库。如果你的团队以前做过客户端开发,你可能已经对某个特定库有所偏好。如果没有的话,推荐你去找一些在你的团队乃至全公司进行应用。

通过使用公共库你可以使新团队成员更容易地融入团队,也可以使团队间的成员交换变得更加容易。当你从客户端开发方面得到更多经验时,你的组织中所有的项目都可以从中受益。在全公司的层面标准化你的项目也可以缩短周期,降低维护项目的成本。互联网上的库每天都会更新,如果你一直在持续地更换最新版本,你会发现工作得很低效。

这种做法也帮助你提升了绩效。因为全公司使用的都是相同的库,开发者只需要下载一次就可以了。

从最受欢迎的库中选择一个可以使你复用很多知识和经验,比如某个开发者对它有相当长时间的应用和了解,并且这样的库已经修复了很多问题。并且这样的库也有自己的编码规范,你可以拿来采用。通过这样的手段可以让员工提高产出。

例如,构建SPFx解决方案,微软选择React。同时微软的其他团队如OneDrive、Delve也使用React。这不是说你要使用React,而是要证明选择客户端库的重要性。如果你的团队对Angular或Knockout有经验,就应该愉快地使用它们。

在解决方案的整个生命周期强制编码规范和策略

使用代码规范给你带来了好处,但是只有编码规范并不意味着它们在你的整个开发和测试过程中使用了。时间越长就越难验证你的团队是否很好地执行了编码规范和组织策略,发现问题整改的成本也就越高。下面是一些建议的方法。

Linting

Linting是这样一个过程,它验证代码是否符合特定的规则。默认情况下SPFx项目采用TypeScript构建。在每个构建的TSLint(TypeScript的linter)上会根据预定义的规则集合进行分析并报告矛盾的地方。开发者可以选择启用哪个规则,也可以根据团队的规范和指引定义自己的规则。

开发者不仅可以使用linting来验证TypeScript文件的内容,还有CSS、JavaScript或Markdown。

自动化测试

使用自动化测试开发者可以很容易地验证应用最新更改后工程的正确性。自动化测试使开发者能够验证解决方案是否正确工作,尽早发现可能发生的问题。

SPFx提供了对Karma测试标准的支持,可以使用Mocha编写测试。如果有需要,开发者还可以使用SPFx额外提供的PhantomJS来扩展测试的范围。所有SPFx项目的测试都可以使用标准的gulp test任务执行。

代码分析

除了上述的内容,开发者常常还需要更多的支持来验证项目的正确性。通常来说linter关注于代码本身,但是没有特定代码文件用来做什么的部分。例如在SPFx项目中,一个web部件需要有唯一的ID。再就是来自公司的其他需求如不能从CDN引用脚本或引用特定版本的库。

SharePoint Code Analysis Framework(SPCAF)是一个第三方的解决方案,常被SharePoint开发者、管理员、QA和安全员使用,用来验证SharePoint自定制满足需求。SPCAF跟应用的整个生命周期进程集成,帮助降低成本。SPCAF提供了一系列专门针对SPFx项目的规则。

相关文章
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
《当AI遇上价值观:动态偏好建模框架,让人工智能“懂你”更“随你”》
人工智能对齐难题是确保AI行为符合人类价值观的关键挑战。Constitutional AI提出的动态偏好建模框架,通过制定类似“宪法”的规则约束AI决策,突破传统方法对人类偏好的静态理解,引入对抗性机制降低有害输出率至0.3%。该框架能实时适应文化、社会和个体变化,融合多源数据更精准地理解人类需求,广泛应用于医疗、教育和客服等领域。然而,其发展也面临数据隐私与伦理规则制定的挑战。这一创新为AI的安全可靠发展提供了新方向,助力AI更好地服务于人类社会。
322 0
|
存储 达摩院 供应链
排产排程问题【数学规划的应用(含代码)】阿里达摩院MindOpt
**文章摘要:** 本文探讨了使用阿里巴巴达摩院的MindOpt优化求解器解决制造业中的排产排程问题。排产排程涉及物料流动、工序安排、设备调度等多个方面,通常通过数学规划方法建模。MindOpt支持线性规划、整数规划等,能有效处理大规模数据。案例以香皂制造工厂为例,考虑了多种油脂的购买、存储和生产计划,以及价格变化和存储成本。问题通过数学建模转化为MindOpt APL代码,求解器自动寻找最优解,以最大化利润。文章还提供了代码解析,展示了解决方案的细节,包括目标函数(利润最大化)、约束条件(如生产效率、库存管理)以及结果分析。
|
人工智能 安全 大数据
开源软件全景解析:驱动技术创新与行业革新的力量
开源软件全景解析:驱动技术创新与行业革新的力量
1264 0
开源软件全景解析:驱动技术创新与行业革新的力量
解决 010Edittor 复制右边到左边的问题
解决 010Edittor 复制右边到左边的问题
346 1
|
机器学习/深度学习 存储 编解码
YOLOv5改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构)
YOLOv5改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构)
488 0
|
Windows
windows系统bat批处理 打开设备管理器
windows系统bat批处理 打开设备管理器
269 1
|
网络协议 Linux 网络安全
Linux服务器百万并发实现与问题排查
Linux服务器百万并发实现与问题排查
305 0
|
Java API
【JAVA并发编程专题】死锁的修复和定位
【JAVA并发编程专题】死锁的修复和定位
|
SQL 缓存 关系型数据库
Mysql进阶优化篇03——多表查询的优化
文章目录 1.数据准备 2. 采用左外连接 3.采用内连接
Mysql进阶优化篇03——多表查询的优化
|
Prometheus 运维 监控
Grafana接入SLS开放告警
Grafana是监控运维场景下常用的开源系统,它丰富易用的可视化界面极大的方便了开发运维的工作。但是另一方面,Grafana自带的告警功能较为简单,不能很好的满足日常需求。新版SLS告警提供了丰富易用的告警功能,能够很好的补足Grafana的告警功能,并且支持通过包括短信、电话、微信、钉钉、邮箱在内的10多种通知渠道发送给用户。
1580 0