当前位置: 首页 > wzjs >正文

大学生做的网站湖南靠谱的关键词优化哪家好

大学生做的网站,湖南靠谱的关键词优化哪家好,代做课程设计的网站,做的课件能做教育部网站查询码提示: 所有体系课见专栏:Go 项目开发极速入门实战课;欢迎加入 云原生 AI 实战 星球,12 高质量体系课、20 高质量实战项目助你在 AI 时代建立技术竞争力(聚焦于 Go、云原生、AI Infra)。 在实现业务代码之前…

提示:

  • 所有体系课见专栏:Go 项目开发极速入门实战课;
  • 欢迎加入 云原生 AI 实战 星球,12+ 高质量体系课、20+ 高质量实战项目助你在 AI 时代建立技术竞争力(聚焦于 Go、云原生、AI Infra)。

在实现业务代码之前,还需要先设计一个合理的软件架构。一个好的软件架构不仅可以大大提高项目的迭代速度,还可以降低项目的阅读和维护难度。目前,行业中有多种流行的软件架构,例如:MVC 架构、六边形架构、洋葱架构、简洁架构等。在 Go 项目开发中,用的最多的是简洁架构。

本节课会详细介绍简洁架构,以及 fastgo 项目的简洁架构设计和实现方法。

为什么需要软件架构?

这里引用 Robert C.Martin 在其《Clean Architecture》书中的一句话,来说明为什么需要软件架构:软件架构的目标是最大限度地减少构建和维护系统所需的人力资源。

具体而言,采用一个合理的软件架构将带来以下好处:

  • 可测试性: 良好的软件架构能够提高代码的可测性,从而增强软件的稳定性;
  • 可维护性: 良好的软件架构使系统的各个部分相互独立,易于理解和修改。它提供了结构化的方式来组织代码,使系统的修改和维护变得更加简单;
  • 扩展性: 软件架构应能够很好的支持系统的扩展和演变。通过合理的分层和模块化,软件架构可以使系统的功能很容易的得到扩展,而无需对整个系统进行重构;
  • 可重用性: 好的软件架构能够提高代码的复用度。将通用的功能封装为可复用的包/库,可以使这些功能在不同的项目和模块中重复使用,从而提高开发效率和代码质量。

简洁架构介绍

简洁架构(Clean Architecture)是一种软件架构模式(又称整洁架构、干净架构),旨在实现可维护、可测试和可扩展的应用程序。最初由 Robert C.Martin 在其文节课 The Clean Architecture 提出。之后,因为简洁架构的诸多优点,在 Go 项目开发中被大量采用。

软件架构有多种形式,例如六边形架构、洋葱架构、尖叫架构、DCI 架构和 BCE 架构等。这些架构在细节上各有不同,但整体而言非常相似。它们的共同目标是实现关注点的分离,并通过软件的分层设计来达到这一目的,从而践行高内聚、低耦合的架构理念。

采用这些软件架构开发的应用都具有以下五点特性:

  • 独立于框架: 该架构不会依赖于某些功能强大的软件库存在。这可以让开发者使用这样的框架作为工具,而不是让开发者的系统陷入到框架的约束中;
  • 可测试性: 业务规则可以在没有 UI、数据库、Web 服务或其他外部元素的情况下进行测试,在实际的开发中,可以通过 Mock 来解耦这些依赖;
  • 独立于 UI: 在无需改变系统其他部分的情况下,UI 可以轻松地改变。例如,在没有改变业务规则的情况下,Web UI 可以替换为控制台 UI;
  • 独立于数据库: 开发者可以用 Mongo、Oracle、Etcd 或者其他数据库来替换 MariaDB,开发者的业务规则不要绑定到数据库;
  • 独立于外部媒介: 实际上,开发者的业务规则可以简单到根本不去了解外部世界。

上述五点特性,也可以看作是简洁架构的五点约束,理论上任何遵循了以上五点约束的软件架构,都可以看作是简洁架构的一种实现方式。通常所说的简洁架构指的是洋葱架构。

fastgo 简洁架构设计

fastgo 项目的简洁架构设计如下图所示:

整个软件架构一共分为以下三层:

  • Handler 层: 负责 API 接口请求的参数解析、参数校验、业务逻辑处理分发、参数返回逻辑。在 Handler 层中,还有 Default 和 Validation 模块,分别用来给请求参数设置默认值,并校验请求参数的合法性;
  • Biz 层: 包括了具体的业务逻辑实现。Biz 层根据 REST 资源类型分为不同的模块,内部可模块间交叉调用。在 Biz 层还有 Conversion 模块,用来进行结构体类型转换;
  • Store 层: 数据访问层(包括访问数据库或第三方微服务),用来跟数据库/微服务交互执行数据的 CURD 操作。

上图所示的简洁架构,还具有以下特点:

  • 简洁架构提供了清晰的分层结构,各层功能明确,职责分明;
  • 通过接口解耦每一层,从而实现代码的可测性、独立性和扩展性;
  • 代码依赖由上向下(图中的有向箭头表示依赖规则),单向单层依赖,提供了清晰的依赖关系,使代码易于理解和维护。

上述三个特点也使得整个软件代码具有很高的易读性和可维护性。上图所示的简洁架构有三层,但这不意味着简洁架构只有三层。如果有需要你可以对层进行增减。虽然层数可变,但是依赖关系是固定的,即:单向依赖。

上图所示的简洁架构中,API 请求的数据流转路径如下图所示。

请求到来后,先经过 Default 模块,用来给请求参数设置默认值。之后,经过 Validation 模块,用来对请求参数进行校验。

校验通过后,会经过 Handler 方法,Handler 方法会处理请求,并将请求转发到 Biz 层的 Biz 方法中。

在 Biz 方法中需要进行数据转换,在 fastgo 项目中,会将 Biz 层的数据结构转换为 Store 层的数据结构,并调用 Store 层的方法,对数据进行 CURD 操作

在 Store 层中,通过调用 GORM 包提供的各种方法,来执行数据的 CURD 操作。

http://www.dtcms.com/wzjs/394640.html

相关文章:

  • wordpress qq微信登陆地址北京seo怎么优化
  • 全能网站建设pdfseo简介
  • 门店广告牌设计广州关键词优化外包
  • 古玩网站建设意义网络公司网络营销推广方案
  • 做导航网站犯法吗百度搜索优化怎么做
  • 网站如何上传广州新闻24小时爆料热线
  • 集团网站品牌建设特点aso优化排名推广
  • 山东网站建设哪家专业seo搜索引擎
  • 成交型网站建设方案济宁百度推广公司有几家
  • 公司做网站需要准备什么资料百度推广登录平台登录
  • 北京企业官网网站建设哪家好友链申请
  • 潍坊米搜网站建设seo整站优化什么价格
  • 贵州省住房城乡建设部网站seo关键词排名软件流量词
  • 网站的v2信誉认证怎么做成品网站货源1688在线
  • 网站建设一般多少费用南京seo网站优化
  • dede cms 网站模板优化关键词推广
  • 做网站需要画原型图么白杨seo教程
  • 织梦网站怎样做seosemi是什么意思
  • 怎么做物流网站sq网站推广
  • 广州天河区最新疫情情况seo怎么推广
  • 知识付费小程序源码seo排名优化
  • 专业网页制作网站推广公司上海优化网站seo公司
  • wordpress调用支付宝南宁百度seo公司
  • 鞋业有限公司网站设计域名大全查询
  • 找做网站技术人员营销方式和渠道有哪些
  • 潍坊有哪些网站推广软文300字
  • 网站域名在哪里百度一下你就知道官页
  • ps怎样做网站大图女教师遭网课入侵视频
  • 交友网站有人做加拿大28湖北网络推广公司
  • 太原市微网站建设如何做seo优化