这篇“web开发中架构的含义是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“web开发中架构的含义是什么”文章吧。
小石最近加入了一家生鲜电商公司。公司现在的首要任务是把电商系统给做出来,让用户能够通过PC、App购买公司的生鲜产品。
关键词:系统,所谓系统可以简单理解为我们平时所说的应用,当然系统可以包含多个小系统,这里为了简单起见,我们就先假设只开发这样一个单体应用,包含了用户下单购买的基本功能。
小石通过分析其他电商系统,知道至少需要 用户注册登录模块、用户信息模块、商品模块、订单模块 系统才能够进行运转。
系统的功能确定了,该选择用什么样的语言进行开发呢?选择什么样的方式进行开发呢?与大家一起讨论后,大家认为现在阶段的首要目标是快速做出系统来,因此大家决定采用PHP来开发,并决定使用 Yii2 框架,数据库方面使用 MySQL,WebService使用Nginx。
关键词:框架,为了快速完成系统的开发,我们会采用一些已被业内实践确认的规范来进行,比如这里采用 YII2 框架,也就是采用了业内的 MVC 规范。所以可以认为所谓的框架就是确定了一些业内规范,从某种程度上对大家形成约束或者形成都能理解的规定。
从开始到现在,还没有写一行代码,一直在进行设计与讨论,讨论需要哪些功能,设计采用什么 结构,而这里的结构主要包括了两方面:逻辑的结构与物理的结构。所谓逻辑结构就是指系统是按照什么样的流程来运转,需要哪些功能来支持。所谓物理,就是当编码完成所有的逻辑后,系统采用什么形式来部署运行。
那么到底什么是架构呢?我理解的架构:在系统诞生之初,对系统进行的逻辑设计与物理设计。他是系统的草图,可以类比为建筑领域的设计图。这张图需要确定:
业务需要的功能模块划分(建筑设计需要划分区域功能)
技术选型,用什么框架、什么存储、什么缓存(建筑领域也要确认框架结构还是框剪结构)
一个架构的0.1版本绝对不会是完美的,世界上也不存在完美的架构。像上面的小故事,我们采用最简单的架构,如下图(物理角度):
我们把所有的功能写在一份代码里,所有的数据存在一个库里,所有的代码部署在同一个Nginx上,甚至还可能我们的Nginx、MySQL都部署在同一台机器上。
公司业务得以发展,人员得以增加,系统变得更加复杂。这个时候原来的架构,一无法满足业务快速发展,二无法让多人开发变得愉快。因为几十个人在同一份代码里进行编码,想一下都是头大。文件冲突、功能依赖、bug排查、测试功能,这些都无法愉快的解决。这时就得根据新的情况重新设计架构。
我们将代码功能进行拆分,将以前的模块拆分成独立的系统,将MySQL进行主从设计,利用Nginx做负载等等。
那么为什么不一上来就进行拆分呢?因为一开始人手不足,拆分过细,开发周期慢,业务也不需要如此细致的划分。
以上就是关于“web开发中架构的含义是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。