Tophat:打造令人愉悦的移动开发者体验
To build great mobile apps at scale, you need a great developer experience. It’s no secret that we love creating purpose-built internal tools that make complex tasks virtually effortless. Think back to the last mobile project you worked on. What was the longest, most mundane aspect of your development workflow? Chances are, you probably remember waiting for the app to compile every time you wanted to test out a change.
要在规模上构建出色的移动应用,您需要一个出色的开发人员体验。我们热衷于创建专门用途的内部工具,使复杂的任务几乎变得轻松简单。回想一下您上次参与的移动项目。您的开发工作流程中最漫长、最乏味的方面是什么?很有可能,您还记得每次想要测试更改时都需要等待应用编译的时间。
At Shopify, manually testing every GitHub pull request (PR) we ship as part of code review is part of our culture. We call this process “tophatting,” a term that originated in a time when GitHub did not yet support PR reviews. Instead, Shopify used emoji to convey the state of a PR review, posting a tophat emoji to indicate that the changes were not only reviewed, but also tophatted locally to validate that they work as expected. As you might imagine, needing to constantly stash changes, switch branches, and wait for Xcode or Android Studio to build a project adds up to countless hours of lost time.
在Shopify,我们的文化中包括对每个GitHub拉取请求(PR)进行手动测试作为代码审查的一部分。我们称这个过程为“戴高帽”,这个术语起源于GitHub尚未支持PR审查的时代。相反,Shopify使用表情符号来传达PR审查的状态,发布一个戴高帽的表情符号来表示这些更改不仅已经审查过,而且还在本地进行了戴高帽以验证其是否按预期工作。正如您所想象的那样,需要不断地隐藏更改,切换分支,并等待Xcode或Android Studio构建项目,这将导致无数小时的时间浪费。
What if we leveraged the mobile infrastructure we already have in place and make tophatting mobile changes as easy as a click of a button, without even pulling the branch?
如果我们利用已经建立的移动基础设施,使移动端的更改变得像点击一个按钮那样简单,甚至不需要拉取分支,会怎样呢?
We created tooling that provides a seamless and interactive tophatting experience to contributors. We built a desktop macOS application called "Tophat” that lives in the system menu bar.
我们创建了一套工具,为贡献者提供无缝、互动的 tophatting 体验。我们构建了一个名为“Tophat”的 macOS 桌面应用程序,它位于系统菜单栏中。
Making Tophatting Fun
让戴高帽变得有趣
The Tophat tool took on different forms over the years. At Shopify, we use another internal tool called Dev, a powerful CLI int...