2018年ThoughtWorks技术雷达:快拥抱K8S和Kotlin
近日,ThoughtWorks发布了2018年技术雷达报告。报告分析了技术、平台、工具,语言和框架的技术趋势。
在技术方向层面,ThoughtWorks建议规避开“Generic cloud usage”的概念。含义是越来越多地看到组织准备使用多云环境,但是却不是为了同时享受每个供应商的优势,而是为了避免被单一供应商不惜一切代价地“锁定”。也就是仅使用了所有供应商都有的特性!同时建议企业采用“轻量级体系结构决策记录”。
在平台方面,.NET Core和Kubernetes处于采用列表。ThoughtWorks认为.NET CORE已经足够成熟,可以成为.NET服务器应用程序的默认平台。开源的.NET Core框架支持在Windows、MacOS 和 Linux 操作系统上使用一流的跨平台工具来开发和部署 .NET 应用程序。微软提供了好用的Docker镜像,使得在容器化环境中部署.NET Core应用程序变得非常简单。其在社区中积极的发展方向和我们项目的反馈表明.NET Core是.NET应用开发的未来。
Kubernetes也处于采用建议范围,不用赘言Kubernetes绝对是目前最为活跃的云原生生态系统之一,大有成为容器事实标准的势头,在GitHub Octoverse中,三个基于Kubernetes的项目在顶端。
在工具方面,采用列表中没有任何工具入围。移动端自动化测试框架Appium Test Distribution, web应用的可视化回归测试工具BackstopJS,针对凸优化问题所开发的开源Python嵌入式建模语言CVXPY,Kubernetes的包管理器HELM,开源的API网关Kong,JavaScript包管理器YARN等处于试验推荐名单中。
在语言和框架方面,ASSERTJ、ENZYME和KOTLIN进入了采用名单。KOTLIN的使用率得到了飞速增长,工具支持也突飞猛进。其流行的背后原因包括语法简洁、空指针安全、易于从Java迁移以及与其他JVM语言的互操作性。并且,它还是非常不错的函数式编程入门语言。
ASSERTJ是一个提供流式断言接口的Java库, 可以很容易在测试代码中表达测试的意图。AssertJ提供了可读的错误消息、软断言以及增强的集合和异常支持。我们很多团队选择AssertJ作为默认的断言库,而不再是用JUnit和Java Hamcrest的组合。
ENZYME已经成为了测试React UI组件的事实标准。与其他基于快照的测试工具不同,Enzyme可以进行无设备渲染的测试,速度更快,粒度更细。这很大程度上减少了在React应用里所需要的功能测试代码。在大部分项目中,我们会结合单元测试框架(如Jest)一起使用。