Wicked Features
5 hours ago
- #tech complexity
- #enterprise features
- #software engineering
- 所谓的'棘手功能'是指那些在开发任何其他功能时都必须考虑的复杂需求,它们在大科技公司中主导着系统的复杂性。
- 棘手功能的例子包括:新增用户类型、提供本地部署的SaaS版本、数据分片、数据本地化支持以及国际化(i18n)等。
- 棘手功能之所以难以处理,是因为它们像《密码游戏》中的规则一样相互影响,需要多方协调,并且工程师常常会低估其复杂性。
- 有些棘手功能难以避免,因为企业客户愿意为此支付高价(例如本地化部署方案、数据本地化要求),而另一些则源于过度设计或设计决策不当。
- 优秀的工程师应当通过合理的架构设计来预防不必要的棘手功能并限制其影响范围,避免让整个系统受到污染。