博客地址: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项目的规则。

SharePoint Framework 基于团队的开发(四)的更多相关文章

  1. SharePoint Framework 基于团队的开发(二)

    博客地址:http://blog.csdn.net/FoxDave 本篇介绍SPFx项目的一般开发流程.SharePoint Framework基于开源的工具链,也遵循开源技术栈中其他项目的开发流程. ...

  2. SharePoint Framework 基于团队的开发(一)

    博客地址:http://blog.csdn.net/FoxDave SharePoint Framework是新的用来构建SharePoint自定制的开发模型,它专注于客户端开发并用热门的开源工具gu ...

  3. SharePoint Framework 基于团队的开发(五)

    博客地址:http://blog.csdn.net/FoxDave 升级SharePoint Framework项目 部署SharePoint自定制解决方案到生产环境并不意味着生命周期的结束,因为还有 ...

  4. SharePoint Framework 基于团队的开发(三)

    博客地址:http://blog.csdn.net/FoxDave 用内部包进行开发 由于你的团队在开发客户端解决方案,你很可能构建通用代码库来在项目中重用.在很多情况下这种库包含的代码是内部所有的不 ...

  5. Wizard Framework:一个自己开发的基于Windows Forms的向导开发框架

    最近因项目需要,我自己设计开发了一个基于Windows Forms的向导开发框架,目前我已经将其开源,并发布了一个NuGet安装包.比较囧的一件事是,当我发布了NuGet安装包以后,发现原来已经有一个 ...

  6. SharePoint Framework 开发工具和库

    博客地址:http://blog.csdn.net/FoxDave SharePoint Framework包含一些客户端JavaScript库,你可以用来构建自己的解决方案.本文提供了你可以用来 ...

  7. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发         之前提到过, ...

  8. SharePoint Framework (SPFx)安装配置以及开发-基础篇

    前言 SharePoint Framework(SPFx),是页面 和Webpart的模型,完全支持本地开发(即完全可以脱离SharPoint环境在本地进行开发),SPFx包含了一系列的client- ...

  9. “多团队大规模”开发模式 - 基于SAP HANA平台的多团队产品研发

    应用SAP HANA “官方”开发模式的伙伴们在转到“多团队大规模”开发模式时会遇到各式各样的心理不适应的状况,各种纠结.比如GIT Repository和HANA Repository冲突什么的. ...

随机推荐

  1. Vue-admin工作整理(十二):Vuex-插件(持久化存储)

    Vuex可以支持插件形式,来处理指定业务,比如:持久化存储的插件(当每次刷新浏览器的时候store里面的参数都会被清除,因为它是存在内存中的,而不是存在本地的,有时候我们希望将一些东西存在本地) 插件 ...

  2. 使用sphinx制作接口文档并托管到readthedocs

    此sphinx可不是彼sphinx,此篇是指生成文档的工具,是python下最流行的文档生成工具,python官方文档即是它生成,官方网站是http://www.sphinx-doc.org,这里是一 ...

  3. Autofac IOC框架

    ASP.NET Core自带了一个轻量级的IOC容器     但是只提供了最基本的AddXXX方法来绑定实例关系     需要一个一个添加   可以使用其他IOC容器来替换内置的 ABP自带Castl ...

  4. English Voice of <<Way Back Into Love>>

    I have been living with a shadow overhead我一直生活在阴影中I have been sleeping with a cloud above my bed睡梦中床 ...

  5. IP通信实验感想

    经过几周的学习之后,我终于开始了IP通信的实验课. 我们利用H3C进行对ip地址进行设置,在对不同交换机下的pc进行连接测试 首先,我们对交换机和pc机器进行配置设置,ip地址分配分别从192.168 ...

  6. helm安装redis+Sentinel集群搭建

    一.redis集群特点 数据 在多个Redis节点之间自动分片 sentinel特点: 它的主要功能有以下几点 不时地监控redis是否按照预期良好地运行; 如果发现某个redis节点运行出现状况,能 ...

  7. POST调用WCF方法-项目实践

    做即时通信项目时,需要与OA系统对接接口,主要目标是实现在OA里进行一项事项,通过调用我们的接口,即时通知过来,并弹出消息框提示一下.我们的即时通信使用的WCF服务进行通信,在客户端调用通信时,用的就 ...

  8. arcpy简单示例

    最好在arcmap内置python模块运行. 这里用的是Zonel Stastic as Table模块,计算各个国家的逐月径流量的统计数据.需要对数百个tiff进行计算和导出,使用arcpy可以大大 ...

  9. Myeclipse在debug模式下没加断点程序卡住,start模式下可以正常启动

    参考<eclipse在debug模式下卡住,start模式下可以启动>,地址:https://blog.csdn.net/jack_chen1994/article/details/761 ...

  10. Assignments 1

    跑了一下之前写的UiPath Assignments脚本,没什么问题,发上来供大家参考. 先看结果: github:https://github.com/WendyZheng1022/RPA 有时间我 ...