我们一起来读书吧 关注:154贴子:2,732
  • 0回复贴,共1

架构整洁之道15-16章

只看楼主收藏回复

软件架构是一个系统的蓝图,它包含了用来描述一个系统的一系列决定,包括系统的结构、行为、交互方式、非功能性需求等。它是为了满足业务需求和技术挑战而创建的。软件架构是关于如何设计和实现一个系统,以便它能够满足当前的需求,同时也能适应未来的迭代。它是软件开发过程中的关键决定,对系统的质量、性能、可维护性和成功都有深远的影响。
从开发的角度来看,软件架构提供了一个清晰的结构和指导,帮助我们去理解如何去实现系统的各个部分。它帮助确定系统的核心组成部分和这些部分之间的交互。这种交互可以是数据交换,也可以是控制流程。例如,这里依旧是拿万能的分享模块来举例,分享模块内部的渠道和功能,应该都提供给外部来控制展示和隐藏,这些模块需要通过定义好的接口进行交互。
此外,软件架构也可以定义编程标准和规范,确保代码的一致性和可维护性。例如,它可以规定代码的格式和风格,如何进行异常处理,如何进行日志记录等。这不仅可以提高代码的质量,也可以使新加入的开发者更快地理解和参与到项目中来。
从部署的角度来看,软件架构描述了如何将系统的各个部分安排在不同的硬件或云服务上,以满足性能、可靠性和安全性等需求。例如,我们的h5相关业务,就存在着沙盒,预览机和线上,测试阶段使用沙盒,showcase则使用预览机和上线,以达到最佳的性能和可用性。
软件架构也可以包括如何进行系统升级和扩展的策略。例如,应对业务的日渐迭代,不同的功能和业务代码不可避免的会让模块变动更加复杂,好的架构可以让业务和基础功能更好的解耦,让业务的迭代更方便。
从运行的角度来看,软件架构涉及到如何管理系统的运行状态,如何处理错误和异常,如何保证系统的性能和响应时间
此外,软件架构还会涉及到如何监控系统的健康状况,如何收集和分析运行时数据。例如,它可能定义了如何使用日志、度量和追踪来了解系统的运行情况,如何使用报警和通知来发现和处理问题。这些信息可以帮助运维人员快速地定位和解决问题,保证系统的正常运行。
从维护的角度来看,软件架构关注的是如何确保系统的长期稳定运行,如何处理变化和演进。这包括如何设计系统以便于修改和扩展,如何制定测试和质量保证策略,如何进行故障排查和恢复。
例如,一个好的软件架构应该是模块化的,这样当某个部分需要修改或替换时,可以尽量减少对其他部分的影响。它也应该有良好的测试覆盖,这样当修改代码时,可以快速地发现和修复引入的错误。
在软件的生命周期中,维护通常是最费时间和资源的部分。因此,软件架构应该考虑到如何降低维护的复杂性和成本。例如,它可以通过简化系统的结构,使用成熟和标准的技术,提供良好的文档和工具来达到这个目标。
总的来说,软件架构是关于如何设计和实现一个系统,以便它能够满足当前的需求,同时也能适应未来的变化。它涉及到许多关键的决定和权衡,如何分解系统,如何选择技术,如何提高质量,如何应对变化等。这些决定会对系统的成功和长期的健康有深远的影响。因此,软件架构是软件开发过程中的一个重要阶段,需要由有经验的架构师来进行设计和指导。


IP属地:北京来自iPhone客户端1楼2024-10-21 18:31回复