随着数字产品复杂度的不断提升,设计与开发之间的协作需求日益增长,如何让设计师和开发者在同一环境下高效合作,成为众多团队面临的挑战。为解决这一问题,Figma推出了一项革命性的功能——代码图层(code layers),实现了设计画布与代码的深度融合,开启了设计与编程的新时代。代码图层作为Figma Sites的全新图层类型,由React代码驱动渲染,用户不仅能够在视觉画布上自由编辑和调整设计元素,还能直接通过代码构建丰富的交互体验,包括各种表单、视觉效果(如着色器)、复杂的用户交互以及调用各类API等。更令人兴奋的是,设计师可以通过简单的点击,将已有设计自动转换成代码图层,并利用Figma内置的AI模型为设计增加智能行为,极大地缩短了从静态设计到动态产品的转换周期。Figma的设计团队意识到,设计和代码本质上是两个完全不同的思维模型:设计追求开放、灵活和快速迭代,而代码则需要严谨的层次结构和精确的语法。因此,打造代码图层的关键在于如何融合这两种模式,既保持设计的自由发挥,又赋予代码强大的稳定性和可控性。
为此,Figma将代码图层视为一种新的画布原语——用户能够像操作普通图层一样对代码图层进行拖拽、缩放、嵌套和重新布局,同时代码图层也支持常见的组件化和实例化机制。这样的设计让开发者能够轻松复制、修改和比较不同版本的代码,实现类似git分支的功能,但操作更加直观方便。此外,Figma选择了React作为代码图层的基础框架,原因在于React的组件模型与Figma的组件概念高度契合。它们均强调模块的重用和属性驱动的灵活配置,开发者可以自定义组件的属性,设计师则能通过图形界面直接调整这些属性,从而无需直接编写代码也能控制组件的行为和样式,这极大地缩短了设计与开发间的反馈环。为了满足用户对代码编辑的深度定制需求,Figma还搭载了一套强大的内置集成开发环境(IDE),基于流行的CodeMirror编辑器进行深度定制。Figma团队优化了默认的撤销重做逻辑,使其完美适应团队多人协作的场景,确保用户体验的流畅顺滑。
后台则通过Web Worker承载代码打包和类型检查等繁重任务,创造出真正响应迅速的编程环境。工具链集成了esbuild和TailwindCSS,结合WebAssembly技术,实现了极致的性能表现。依赖包管理也被极大简化,用户无需繁琐的配置文件,只需在代码中引入NPM包或ESM链接,即可安全地加载第三方依赖,支持包括流行的动画库Motion和3D渲染库React-Three-Fiber在内的众多社区资源。Figma的核心优势之一是其强大的多人实时协作能力,代码图层的加入无疑进一步挑战了这一技术边界。代码作为大量连续文本,需要极为精准且高效的同步与冲突解决机制。传统的实时文本同步方案如简单的“最后写入胜出”会在多人编辑时导致频繁冲突,影响工作效率。
Figma团队深入研究了操作变换(OT)和无冲突复制数据类型(CRDT)等经典算法,最终选用了最新的Eg-walker算法,该算法结合了OT和CRDT的优点,既能高效处理并发编辑,保证所有参与者的内容一致性,还优化了内存消耗,使得在不产生冲突的情况下,编辑操作几乎零成本。具体而言,Eg-walker通过构建一个因果事件图,模拟git rebase的方式对多路编辑分支进行线性化处理,并允许动态释放用于冲突解决的数据结构资源,从而达到极佳的性能体验。这样的技术选择让Figma在保证多人代码图层即时同步的同时,确保了用户界面响应的流畅性,从而构建了一个可扩大至大型项目的稳定协作平台。展望未来,Figma团队将持续优化代码图层的交互方式,期望使设计师与开发者能无缝切换于设计与代码表达方式之间,实现真正的直观创造。这一理念与著名界面设计师Bret Victor的“即时反馈”设计原则相呼应,即创作过程中的任何改动都应立刻视觉化呈现,帮助创意实现迅速验证和调整。Figma的新功能不仅仅是工具的革新,更是设计哲学的演进,它打破了设计与编码的藩篱,预示着一个更加开放和协作的创意时代。
通过代码图层,团队成员无论背景如何,都能在同一画布上共同构建高质量、交互丰富的数字产品。本质上,代码图层将设计与代码合而为一,赋予用户前所未有的自由和能量。这不仅极大提升了效率,也为创新提供了更加坚实和灵活的技术基础。对于企业和个人来说,拥抱Figma的代码图层意味着能够更快速地从构思走向落地,实现产品的高度定制化与差异化竞争优势。如今,代码图层功能已进入beta阶段,用户可以在Figma Sites中体验并创造独特的交互式网站和应用。Figma也在不断招募充满激情的工程师,共同推动这场设计与开发融合的革命。
由此可见,设计与代码的未来不再是两个孤立的世界,而是逐渐融合成一个整体,为数字创作开启了崭新的篇章。随着这一新技术的普及,设计师与开发者之间沟通将更加顺畅,创新速度和产品质量也将迎来质的飞跃。Figma通过代码图层重新定义了创造力的边界,让世界各地的团队能够在同一画布上自由驰骋,实现前所未有的协同创作体验。