聪明地扩展:关于软件架构的坚定观点
开发者经常过度设计 Web 应用。他们盲目追求微服务或无服务器(serverless)趋势。他们认为复杂度等同于可扩展性。
这是一个错误。
简单且模块化的设计通常比复杂的架构表现更好。专注于核心功能。首先建立稳固的基础。根据实际需求进行扩展。
可扩展性不仅仅意味着处理用户量。它还意味着保持应用的响应速度,意味着让用户满意。优秀的架构能让你在用户行为发生变化时快速做出调整。
请遵循以下原则:
- 优先考虑可维护性。
- 采用精益方法。
- 如果合理,从单体架构(monolith)开始。
- 只有在确实需要时,才重构为微服务。
不要在需要之前增加复杂度。为增长而构建,但不要背负额外的负担。
专注于重点。保持简单。