Hi,我是 ssh,今天带来一篇关于中型应用中需要什么、不需要什么的思考,避免过度设计,把精力放在最重要的技术功能中,才是你成功带领项目的关键:Stop Over-Engineering your Medium Size Front-End Application
开发一个小型应用很容易。然而,开发一个大型应用则非常困难。中型应用开发正处于这两者之间,是一个较少被关注的领域。那么,在不过度设计的情况下,编写可维护代码的最佳实践是什么呢?让我们探讨一下哪些流行的技术点可能对中型应用有益,评估一下它们是会对应用有益,还是会带来更多问题。
TypeScript
- 需要 ✅
现在是 2023 年,没任何借口在你的开发工作流中不使用 TypeScript。所有顶级前端框架都几乎推荐了它,而且易于接入使用。
TypeScript 是 JavaScript 的一个超集,添加了类型注解、接口等特性,可以编写可维护和可扩展的代码。它可以帮我们在开发过程尽早捕获类型错误,随着你的应用的增长,可以更容易重构代码。
10 Best TypeScript Courses for Beginners to Learn in 2023
状态管理
- 需要 ✅
对于任何中等规模的前端应用来说,状态管理都是需要考虑的重要因素。随着你的应用复杂性的增长,管理状态变得越来越困难。有许多库和框架可用于帮助解决这个问题,例如 Redux、MobX、Vuex 和 Pinia。这些工具可以帮助你维护一个一致的应用状态,并可以更容易地添加新功能。但是,要注意全局状态会产生耦合,你应该强烈考虑将 store 拆分成多个模块。另外,避免把一切东西都塞在里面导致冗余滥用,比如组件内部状态。
Feature Flag
- 需要 ✅
Feature Flag,也称为 Feature Toggle,允许我们在运行时切换代码库中的特定功能,而无需重新部署。这是一项黑科技,可以帮助我们在发布新功能的时候非常简单的执行 A/B 测试,高效管理开发和部署过程。可以带来更好的灵活性、更快的发布速度、减少与部署新功能有关的风险。有各种库和工具可用于在不同的语言和框架中实现 Feature Flag。
Feature Flagging
测试
- 要不要都行 ❓
测试是任何应用开发过程中必不可少的部分。单元测试、集成测试和端到端测试是比较常见的测试手段,长期来看节省时间和提高代码质量。总体上来说,易于测试的代码是更好的代码,并且在开发早期阶段创建测试用例,可以确保应用的 Bug 比较少,新人加入时更易上手。
另一方面,在大规模应用中,你可能会遇到中小型代码库中没必要存在的许多测试类型。比如突变测试(Mutation test)、负载测试、压力测试、性能测试、设计稿还原测试、快照测试等。
在中型应用中,重要的是在编写足够的测试以确保稳定性和不过度设计测试用例之间找到平衡。应该主要集中在创建充分的单元和集成测试来覆盖应用。
CI/CD
- 需要 ✅
现代软件开发中另一个不可或缺的部分是持续集成和交付。通过 CI/CD,你可以把构建、测试和部署过程自动化,节省时间、减少失误。一个良好的 CI/CD 工具可以提高开发过程的效率,并确保你的应用始终准备好部署。
16 Best tools to Design your CICD Engine ⚙️