如何设计网络应用:让软件架构101在项目早期做出正确的决定

全文共6320字,预计学习时长19分钟

 

 

如果你想建立自己的网络应用程序。你有创建的理念,但现在的关键是建立正确的架构。

 

在这篇文章中,我们将讨论这些关键内容:

 

·什么是软件架构?

·为什么软件架构很重要?

·软件架构和软件设计之间的区别。

·软件架构模式。

·如何决定你的应用程序应该有多少层。

·水平或垂直缩放—哪一种适合您的应用?

·整体式还是微型服务?

·何时应该使用NoSQL或SQL?

·选择合适的技术。

·如何成为软件架构师。

·如何起步。

 

文本的目标是让您对网络架构、相关概念以及在设计应用程序时如何选择合适的架构和技术有一个坚实的理解。在这篇文章的结束后,当你从零开始设计一个应用程序的时候,你不会在黑暗中孤立无助。

 

我们开始吧!

 

 

什么是软件架构?

 

系统的软件架构描述了它的主要组件、它们的关系以及它们如何相互作用。

 

本质上,它是一个蓝图。它提供了管理系统复杂性的抽象图景;它在组件之间建立联系和协调。

 

 

 

一些关键点:

 

·软件架构有助于确定出满足所有技术和运营要求的解决方案,它们的共同目标是优化性能和提高安全性。

·设计架构涉及组织需求和开发团队需求的交集。每个决策都会对质量、可维护性、性能等产生相当大的影响。

 

我最喜欢的软件架构定义之一是拉尔夫·约翰逊在《设计模式:可重用面向对象软件的元素》一书中所说的:

 

“这是你希望在项目早期就能做出的决定。”

 

 

为什么软件架构很重要?

 

建造一座建筑或者做一个比萨饼——要成功地创造任何东西,你需要把基础做好。如果你没有把基础做好,出了问题,你只能从头开始——没有办法绕过它。

 

构建一个网络应用程序也是一样的。建筑是基础。应该仔细考虑,以避免后续重大设计变更和代码重构。

 

许多工程师会告诉你:你不想重新设计东西。它像黑洞一样吞噬你的时间。它有可能把你的提交日期延长几个月,这还不是最长的。并且不包括工程期和金融资金的浪费。

 

在初始设计阶段做出的草率决定可能会造成开发过程中任一阶段的僵局。因此,在我们开始编码之前,必须使底层架构正确。

 

软件开发是一个迭代和进化的过程——我们不一定能在第一次的时候就把事情做完美。但这不是不完成任务的借口。

 

 

软件架构和软件设计的区别

 

软件设计和架构之间经常存在混淆。下面来进行区分。

 

软件架构用于定义系统的框架和高级组件,以及它们如何一起工作。例如,您是否需要一个可以将应用程序分成两个组件无服务器架构:BaaS(后端即服务)和FaaS(功能即服务)?或者,您是否需要像微服务架构这样的东西,可以将不同的特性/任务分成单独的模块/代码库呢?

 

选择架构将决定您如何处理性能、容错、可伸缩性和可靠性。

 

软件设计负责代码级设计——每个模块在做什么,类的范围,以及功能、目的等。战略性地使用时,它们可以使程序员工作更有效率,使用已经被其他人改进过的方法,所以他们不需要重复编程。

 

此外,当与他人讨论或在更大的团队中管理代码时,他们提供了一种有效的通用语言来概念化重复的问题和解决方案。

 

来源:Pexels

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件是通过一系列的步骤和过程来设计和开发的。其中,需求分析和架构设计软件开发过程中至关重要的两个环节。 软件需求分析是指通过与用户沟通和交流,了解和理解用户对软件的需求和期望。这些需求可以包括功能需求、性能需求、用户界面需求等。在需求分析阶段,软件开发人员会与用户进行会谈,问卷调查和详细访谈,以确保对需求的准确理解。需求分析的目标是明确软件的功能和约束条件,为后续的开发工作奠定基础。 软件架构设计是在需求分析的基础上,根据系统需求和结构组织,确定软件的整体框架和结构。架构设计涉及到软件模块划分、模块之间的交互、数据流以及系统的扩展性、可维护性等方面。在软件架构设计过程中,开发人员会基于需求文档创建逻辑架构、物理架构和接口设计,确保软件的高效性和可靠性。 需求分析和架构设计紧密相连,需求分析提供了开发人员进行架构设计的基础。在需求分析阶段,软件开发团队会采用技术手段和方法来收集和整理需求信息。而在架构设计阶段,开发人员将使用这些需求信息来设计系统的整体架构和模块设计。因此,需求分析和架构设计软件开发过程中起到了关键的作用。 总之,软件的研发过程是一个系列有序的步骤,其中需求分析和架构设计是其中最为重要且不可或缺的环节。通过仔细的需求分析和合理的架构设计,可以更好地实现用户需求,并确保软件的稳定性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值