在Uber,我们使用功能标志(feature flags)定制移动应用程序的执行,为不同的用户组提供不同的功能。例如,这些标志允许我们将用户的体验本地化到我们操作的不同区域,更重要的是,我们可以逐步向用户推出功能,并尝试同一功能的不同变体。
然而,在一个特性被100%地发布给我们的用户或者一个实验性的特性被认为是不成功的之后,代码中的特性标志就过时了。这些非功能特性标志可以说是技术“债务”,使开发人员难以处理代码库,并且可能会使我们的应用程序膨胀。为了应对,可能需要进行一些不必要的操作,影响用户