GoFrame框架介绍及设计ments/0/b/7/5/0b75cadc74cad743cba13b7c359b8600/p4_1.jpg) GoFrame是一款模块化、高性能、企业级的Go基础开发框架。 • 模块化、松耦合 • 模块丰富、开箱即用 • 简洁易用、快速接入 • 文档详尽、易于维护 ## 特点 • 自顶向下、体系化设计 • 统一框架、统一组件、降低选择成本 • 开发规范、设计模式、代码分层模型 - 减轻心智负担,提高模块可维护性,更容易保证各业务项目的模块版本一致性 ## 模块化设计-常见问题 虽然框架每一个模块都按照低耦合设计,模块可以选择性引入,但在使用时也得全量下载完整框架代码。 1. 模块低耦设计:文件层面的源文件下载与模块之间的逻辑耦合没有直接关系 2. 框架核心精简:功能强大且代码精简,包含测试与示例代码共8MB容量 3. 编译语言特性:编译型语言和解释型语言的模块管理逻辑不太一样 recommend.go user.go wallet.go ## 痛点: • 没有代码分层设计,代码耦合高 • 单包职责过大,维护成本高 - 包命名困难,易出现重复包名,使用困惑,开发效率低 - 包管理困难,容易出现 cycle import 循环引用问题 ## 改进: • 代码分层设计,降低代码耦合 - 功能逻辑按照对象封装,细化封装粒度,降低单包职责 • 规避了同名包名的问题 • 规避了0 码力 | 37 页 | 8.84 MB | 2 年前3
基于AngularJS的企业应⽤前端架构为什么企业会需要二次开发平台? - 人力与定制化需求的矛盾 • 为什么企业选择自己做二次开发平台? - 每个行业都有自己的特点 • 怎样才能做好二次开发平台? - 业务模型的维护,界面与逻辑的松耦合 ## 移动端 • 移动端需要完全从头开始开发吗? - 代价太大了 - 它能利用已有的什么? - 服务、前端业务逻辑 • Angular有哪些特性适合移动端开发? – ngTouch •0 码力 | 13 页 | 517.57 KB | 2 年前3
领域驱动设计&中台/可视化的遗留系统微服务改造领域驱动设计、事件风暴工作坊、服务画布 ## 好的设计 ## 高内聚 就是把相关的行为聚集在一起,把不相关的行为放在别处。如果你要修改某个服务的行为,最好只在一 处修改。 ## 低耦合 如果做到了服务之间的松耦合,那么修改一个服务就不需要修改另一个服务。一个松耦合的服务应该尽可能少地知道与之协作的那些服务的信息。 ## 领域驱动设计  ## 通过在新的应用中实现新特性,保持和现有系统的松耦合,仅在必要时将功能从原系统中剥离,以此逐步地替换原有系统。  ## 修缮者模式 “修缮者模式”在既有系统资产的基础上,通过剥离新业务和功能,逐步“释放”现有系统耦合度,解决遗留系统质量不稳定和Bug0 码力 | 54 页 | 3.85 MB | 2 年前3
个推微服务实践9/06993267472cd5d307d3a115903f276e/p5_5.jpg) 数据库 微服务架构定义: 一个服务负责一项业务 服务独立部署 服务独立技术选型和开发 服务间松耦合 数据独立 ## 微服务的优缺点 优点 开发成本低 技术选型灵活 服务独立无依赖 服务可按需扩展 可用性高 权衡 部署复杂 运维难度增加 服务间通讯成本高 分部式事务控制难 统一通信协议,减少客户端代码耦合 统一鉴权,流控,防攻击 可能成为系统瓶颈  ## 微服务的架构 ## 服务发现 注册中心 查询服务地址 注册/心跳 A 客户端 调用 B 简单,扩展灵活 客户端维护服务端地址,耦合 开发成本高 3a115903f276e/p11_3.jpg) 合理拆分力度 尽量独立,避免暴露细节 服务要有抽象 避免和业务强耦合 服务需无状态 架构设计 或通过异步方式解耦 减少依赖 ## 微服务的架构 强调服务层次 服务独立 服务通用 服务无状态 服务松耦合 微服务架构设计 ## 图 ## 个推微服务实践 ## 个推微服务实践 个推服务的三种场景  持续集成/部署 松耦合架构 反馈验证 内建质量 环境管理 数据管理 组织协同 微服务架构是松耦合架构机制的一种实现 ## 为什么基于DevOps?  ## 单体架构—面临的问题 所有业务代码耦合在一个应用,随着业务的发展,代码越来越臃肿 随着开发团队的壮大,团队成员技术水平参差不齐,缺乏统一的代码规范,整个应用代码越来越乱 新成员加入之后,由于业务代码耦合在一起,需要阅读过多不是自己负责的业务代码,花费过多时间才能融入 - 经常出现一个慢SQL,影响整个DB性能,甚至影响整个DB挂掉,影响全部业务都不能运转 - 各种业务代码耦合在一起,开发效率低,每次测试以及上线发版,均需耗费过多时间 ## 垂直应用架构 - 从单体应用按照业务垂直拆分出多个应用 每个系统拥有独立域名 系统1 系统2 DB 系统3 DB 系统4 DB 系统5 DB DB DB ## 垂直应用架构—面临的问题 虽然按照业务线拆分系统,但拆分粒度过大,业务耦合依然严重 不同应用依然存在访问一个DB的情况,数据表拆分不彻底 - 业务团队各自为战,经常出现抢地盘,重复造轮子,浪费开发资源,团队协作效率差 • 多个业务系统边界不清晰 ## 微服务架构—电商服务化架构0 码力 | 43 页 | 3.89 MB | 2 年前3
云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)云原生四要素的基本含义 2020 年,云原生产业联盟发布《云原生发展白皮书》 $ ^{[1]} $ ,指出云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度,代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等。云原生技术架构的典型特征包括:极致的弹性能力,不同于虚拟机 接口方式进行通信,从而形成一个整体的应用系统。微服务可以部署在不同的服务器上,也可以部署在相同的服务器不同的容器上。当前应用产生的故障不会影响到其他应用,单应用的负载也不会影响到其他应用。这其中每个拆分的服务就是微服务,彼此之间都是松耦合的,甚至可以使用各研发人员擅长的不同开发语言进行编写。图 9 展示了微服务场景下可能存在的攻击类型。  ## 微服务的两个“谬论” ■ 服务之间是强隔离的。 微服务是大型系统的唯一选择。 解耦合 独立开发部署 架构、组织、流程  “银弹”。 ■ 第二,编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。 ■ 第三,关注微服务的本质,即服务的分解和定义,而不是技术,如容器和其他工具。 ■ 第四,确保你的服务松耦合,并且可以独立开发、测试和部署,不要搞成分布式单体,那将会是巨大的灾难。 ■ 第五,也是最重要的,不能只是在技术上采用微服务架构。拥抱DevOps的原则和实践,在组织结构上实现跨职能的自治团队,这必不可少。0 码力 | 45 页 | 16.09 MB | 2 年前3
共 212 条
- 1
- 2
- 3
- 4
- 5
- 6
- 22













