首页 文章 精选 留言 我的

精选列表

搜索[基因多效性],共10000篇文章
优秀的个人博客,低调大师

提效降本,Spotify 为开发人员升级设备至 Apple M1

音乐流媒体服务 Spotify最近为其 Client Platform (CLiP) 团队升级到 Apple M1 设备。根据介绍,其 CliP 团队的核心动机是授权和疏通客户开发人员,并为团队提供他们需要的工具,以确保愉快和令人满意的开发人员体验 (DX)。与此相呼应,Spotify 表示,他们也希望通过改变基础设施来改善开发团队的编码体验。 Spotify每季度进行一次工程满意度调查,以确定降低开发人员整体满意度和生产力的障碍。其最近一次面向 318 名工程师的工程满意度调查结果显示,由于构建时间较长,开发人员的生产力和满意度受到了影响。基于此,该公司着手通过多项更改来缩短构建时间,其中之一就是为构建系统测试不同的硬件。最后分析发现,使用 Apple silicon 机器可以有更快的体验,同时还可以提升经济效益。 总体而言, Apple silicon 机器上的构建时间比基于 Intel 的 Mac 系统快 43%;在 Android 系统的构建中快 50%,在 iOS 系统的构建中快 40%。 验证过程 鉴于 M1 的处理能力,Spotify 先假设 M1 机器本地构建时间会显着改善。 AvgLocalBuildTime(M1) < AvgLocalBuildTime(non-M1) 实证结果 总体而言:Apple 芯片的速度提高了约 43%。 Android:Apple 芯片的速度大约快 50%。 iOS:Apple 芯片的速度提高了约 40%。 升级到 M1 是否有任何经济效益? 在三个月内实现收支平衡,每个团队的工程成本可能节省 36%。 因此,Spotify 方面得出结论称,“根据实证结果和我们的财务分析,升级到 Apple silicon 机器绝对符合我们的标准,并且是减少开发人员构建时间问题的可行解决方案。” 开发者反馈 —— 六个月后 为了衡量升级的成功与否,Spotify 从开发者体验、生产力感知以及任务成功三个方面对组织内 100 名参与的客户开发人员进行了调查。结果表明: 开发者体验 几乎所有接受调查的开发人员(约 98.8%)都将他们的开发体验评为 4 或 5,其中 5 是最佳体验分数。 生产力感知 大多数接受调查的开发人员(约 91.6%)将他们的生产力感知评为 4 或 5,其中 5 是最高的生产力评级。 任务成功 大约 83% 的受访开发人员在任务完成方面经历了积极的变化(4 或 5),其中 5 是最佳体验分数。 一些开发人员直接反馈称,升级设备以后构建运行得更快,等待时间更少,还有一些其他积极的体验。 结果总体上是积极的。Spotify 总结称,“创造积极的开发者体验仍然是我们的首要任务,我们从调查中收到的反馈表明,我们正朝着实现开发者满意度目标的正确轨道前进。” 更多升级详情可查看官方博客。

优秀的个人博客,低调大师

闲鱼架构如何一招提效30%?Flutter+Serverless 研发实践公开

阿里妹导读:Serverless(无服务架构)被誉为下一代云计算,自概念推出以来,因为能带来研发交付速度提升与成本的降低在业内异常火爆。闲鱼客户端基于Flutter进行架构演进与创新,通过Flutter统一Android和iOS双端提升研发效能之后,希望通过Flutter+Serverless 解决各角色间存在大量的协同,导致整体研发效率低,移动端离业务越来越远,服务端没有时间做底层领域沉淀的问题,从而进一步提升整体研发效率。 研发架构的演进 接下来我们带着这里两个问题回顾前后端研发架构演进的历史。 PC互联网早期没有还没有前后端的概念,此阶段单个业务需求通常一个开发人员可以完成研发,前端网页与后端逻辑都写在一个工程中。随着业务越来越复杂,原本开发者负责前后端研发已经变得效率低下,此阶段随着移动互联网的爆发,服务端需要服务与PC、Android、iOS等多种前端。 服务端总是有一个疑问:服务端设计接口时,是应该面向 UI,还是应该面向通用服务?一个方案是抽取一部分服务端做 BFF(Backend For Frontend服务于前端的后端),作为前后端之间的适配层,核心是解决数据的聚合与编排,重新探索更合理的分层协作模式。 服务端写BFF带来新的问题,总是包接口无法提升个人能力。如果BFF由端侧同学开发可以解决这个问题,具体技术方案也是接下来我们要思考的问题。 云端一体化技术方案 Serverless 由 BaaS(Backend as a Sevice)与 FaaS(Function as a Service)两部分组成。BaaS 主要包括数据库存储、消息队列等能力,针对复杂的需求建议由服务端在 BaaS 层封装领域服务供 FaaS 层使用。作为端侧开发,核心关注客户端与FaaS层的代码开发。 目前公司 FaaS 环境已经支持 Java、Kotlin、Swift、Dart、Node.js 等多种语言与框架,闲鱼通过 Android(Flutter)、iOS(Flutter)、FaaS(Dart Runtime)都使用Dart 达到语言一体,并且实现协议一体与工程一体。 语言一体:Android、iOS、FaaS层使用 Dart 语言开发,实现三端语言统一,有效屏蔽FaaS层语言学习成本。 协议一体:通过一体化框架屏蔽通信细节,前后端同一份State,减少协议转换,前端同学调用FaaS服务时,如同调用本地函数一样简洁。 工程一体:前后端可以在同一个工程中进行开发,利用Dart特性可以通过Hot Reload机制进行快速开发联调。 下单页一体化实践 下面以闲鱼下单页一体化为例,通过页面渲染与交互两部分展开一体化实践过程。 下单渲染一体化 从上图左侧可以看出,客户端渲染此页面需要在端侧请求5个接口,处理渲染接口之间的逻辑,把接口返回的Data转为为ViewModel。经过一体化改造之后,原有在端侧的逻辑都移到FaaS层,包括聚合5个领域服务,处理业务逻辑,进行字段映射与页面编排,端侧无任何渲染与业务逻辑,直接获取返回的ViewModel刷新页面。以下是云端一体之后的流程图。 下单页交互操作一体化 从上图右侧可以看出,有4种操作都会改变实付款,原本这些操作处理逻辑都在端侧处理,一体化改造之后,端侧不存在任何计算逻辑,客户端每次操作都会请求服务端,有FaaS进行红包是否过期等数据校验,再返回页面数据进行刷新。 一体化研发框架 Nexus Framework:基于Flutter的一体化移动端UI框架。Logic Engine:基于Flutter的一体化通信与调度框架。Nexus Server:基于Dart Runtime的一体化服务端框架。 代码示例 下图为客户端下单页初始化的代码示例: 下图为FaaS层对客户端发起的初始化请求的处理: 以上是Flutter+FaaS双端协议一体的开发示例,双端都是通过BinderAction进行交互,Action中的State是同一个类型,从而有效屏蔽通信细节,提高研发效率。 收益与效果 下单页已经上线,回顾整个研发过程,云端一体研发架构不仅仅只是新的技术方案,价值在于扩展端侧工作边界,带来生产关系的重塑。 协同效率提升:相比Flutter带来的双端一体来说,该三端一体的架构进一步提升了30%整体研发效率。 业务闭环:端侧还可以更快速地反馈与响应业务,不断尝试,从而搭建起更完善的产品模型,为业务创造更多的价值。 人员成长:端侧从只关注用户体验的开发资源,转变为整个业务研发的技术负责人,从只关注端侧的局部视角到更专注业务闭环的全局视角。Faas层调用底层领域服务来完成自己的业务,原来服务端可以更加地去专注领域服务的沉淀。 总结与展望 Flutter+Serverless 三端一体研发架构,能够解决本篇提出的原有研发架构的两个问题,通过改变端侧职能边界有效减少协同,客户端可以负责整个业务,服务端有更多的时间进行领域沉淀,但是闲鱼实践Flutter+Serverless三端一体研发架构时也遇到以下挑战: FaaS层研发体验需要继续提升、调试只能通过GAIA日志查看,目前规划是把平台日志抓取到本地,并且提供FaaS代码远程调试功能。 运维成本增加 问题定位、请求链路、压测、安全生产的工作转移,如何抹平与服务的差异。 以上是实践过程中发现的新的挑战,现在都已经列入到下一阶段的工作中,我们通过优化技术方案完成这些挑战。 原文发布时间:2019-12-27作者:古风本文来自阿里云合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册