GoFrame框架介绍及设计GoFrame框架介绍及设计 郭强 成都医联科技 架构师 目 录 框架介绍 01 模块化设计 02 统一框架设计 03 代码分层设计 04 对象封装设计 05 DAO封装设计 06 未来发展规划 07 框架介绍 第一部分 • 框架介绍 • 框架架构 • 项目初心 框架介绍 GoFrame是一款模块化、高性能、企业级的Go基础开发框架。 • 模块化、松耦合 • 模块丰富、开箱即用 自顶向下、体系化设计 • 统一框架、统一组件、降低选择成本 • 开发规范、设计模式、代码分层模型 • 强大便捷的开发工具链 • 完善的本地中文化支持 • 设计为团队及企业使用 特点 框架介绍-框架架构 • 发布方式:Docker、二级制、源码模块 • 模块管理: • 核心模块、社区模块、三方模块 • Go Modules管理方式 • 开发工具链 • 设计模式:MVC、三层架构、工具集 台特性 框架介绍-项目初心 工程化建设 统一框架 核心组件 项目架构 设计模式 开发规范 开发文档 开发工具 …… 模块化设计 第二部分 • 复用原则 • 单仓包设计 • 模块聚合设计 • 常见问题 模块化设计 什么是模块? 模块化的目标? 模块也称作组件,是软件系统中可复用的功能逻辑封装单位。 在不同的软件架构层次,模块的概念会有些不太一样。 在开发框架层面,模块是某一类功能逻辑的最小封装单位。0 码力 | 37 页 | 8.84 MB | 1 年前3
go web 框架 严清Frameworks Web Service 框架解决的核⼼心问题 —— 严清 teambition 团队协作⼯工具创导者 关于我 • 五年年 JS ,⼀一年年 Go,也玩 Rust Github 满满绿格⼦子⻅见证我开发⽣生涯的⼀一⾯面 • 16 年年底组建 Go 团队,重构后端服务体 系,为此造了了⼀一些轮⼦子,如 Gear 框架 基于 kubernetes 和 SOA,部分已上线,如 web 框架 HTTP能⼒力力确实相对完整 • 即使有更更复杂的需求,即插即⽤用的包管理理 机制也能轻易易实现 Go 的⼤大糟点啊,学学 Rust • 第三⽅方框架都有学习成本,踩上坑就得潜 ⼊入源码求解决 其实就两三千⾏行行代码,都是精华,值得 看 如果你只写 Hello World 或 Todolist,或者是个⼈人开发者、爱折腾,没问题! 否则,还是使⽤用⼀一款框架吧! Web 框架要解决三个核⼼心问题 • 定义灵活、⼀一致的开发模式 简单易易上⼿手,⽀支撑⼤大规模复杂应⽤用,⽀支撑团队开发 • 集成简洁、完善的异常处理理能⼒力力 不不被 if err != nil { } 羁绊,不不放过任何异常,优雅漂亮地处理理错误和异常 • 提供强⼤大、实⽤用的 HTTP 操作⽅方法语法糖 写 web 服务就是操作 HTTP,实⽤用语法糖极⼤大提升开发⼈人员的幸福指数0 码力 | 23 页 | 333.12 KB | 1 年前3
基于 mesos 的容器调度框架基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 1/36 基于 mesos 的容器调度框架 Gopher 杭州 meetup 5 August 2017 黄励博(huangnauh) 又拍云 2017/8/3 基于 mesos 的容器调度框架 http://go-talks http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 2/36 What's Upone 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 3/36 Mesos 介绍 Image credit: 2017/8/3 基于 mesos 的容器调度框架 http://go-talks.appspot.com/github.com/huangnauh/slides/upone.slide#3 4/36 Mesos 调度 各个 Agent 启动后, 向 Master 注册,携带统计资源, 由 Master 决定给每个框架多少资源, 默认 采用分级主导资源公平算法 每个框架收到资源后, 根据自身任务需求, 调度任务的资源分配0 码力 | 36 页 | 2.49 MB | 1 年前3
4 seata-golang 分布式事务框架微信号: scottlewis 分布式事务框架 Seata-Golang 刘晓敏 H3C ⽬ 录 Demo 演示 01 Seata 原理 02 Mysql driver 原理 03 Mysql driver 接⼊ 04 TODO & QA 05 分布式事务就是指事务的参与者、⽀持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系 统的不同节点之上。简单的说,就是0 码力 | 14 页 | 3.23 MB | 1 年前3
3.云原生边云协同AI框架实践云原生边云协同AI框架实践 普杰 华为云边缘云创新Lab 高级工程师 KubeEdge SIG AI Tech Lead 目 录 Edge AI现状与趋势 01 Sedna:边云协同AI框架 02 Sedna-GM:K8S Operator 03 实践案例 04 Edge AI现状与趋势 第一部分 Why Edge AI? • Cloud中心化的AI计算范式不足以应对端上AI 随着边侧算力逐步强化,边缘AI持续演变至分布式协同AI 分布式协同AI技术挑战 1. 边缘资源碎片化 2. 边缘数据孤岛 3. 边缘样本少 4. 边缘数据异构 分布式协同AI 技术挑战 边云协同AI框架 第二部分 首个分布式协同AI开源项目Sedna 基于KubeEdge提供的边云协同能力,支持现有AI类应用无缝下沉到边缘 为分布式协同机器学习服务 ✓ 降低构建与部署成本 ✓ 提升模型性能 同应用创新大赛最佳创新奖 ✓ 数据集管理 ✓ 模型管理 ✓ …… 基础框架 ✓ 协同推理 ✓ 增量学习 ✓ 联邦学习 ✓ 终身学习 训练推理框架 ✓ 主流AI框架 ✓ 模块算法 ✓ 可扩展算法接口 ✓ …… 兼容性 项目地址:https://github.com/kubeedge/sedna 开源分布式协同AI框架KubeEdge-Sedna 1. GlobalCoordinator0 码力 | 37 页 | 2.36 MB | 1 年前3
云原生go-zero微服务框架设计思考云原生go-zero微服务框架设计思考 万俊峰Kevin@好未来 关于我 万俊峰Kevin ● go-zero作者 ● 好未来资深专家 ● 晓黑板研发负责人 ● 十多年研发团队管理经验 ● 近20年开发和架构经验 Agenda ● go-zero之前世今生 ● go-zero是如何设计的 ● go-zero如何高效解决问题 go-zero之前世今生 go-zero的由来 go-zero的由来 ● 单体服务的困局 ● 架构的选型 ● 如何无痛切换 go-zero是什么? ● Web & RPC微服务框架 ● 微服务代码生成工具goctl ● 通用API定义规范 go-zero的设计原则 ● 保持简单,第一原则 ● 弹性设计,面向故障编程 ● 工具大于约定和文档 ● 尽可能约束做一件事只有一种方式 ● 对业务开发友好,封装复杂度 go-zero是如何设计的 客户端 ● 支持自定义fallback ● http/rpc框架内建 ● 自动触发,自动恢复 自适应熔断 ● K8S的HPA 80%触发 ● CPU>90%开始拒绝低优先级请求 ● CPU>95%开始拒绝高优先级请求 ● 基于滑动窗口,防止毛刺 ● 有冷却时间,防止抖动 ● 实践检验,配合K8S弹性伸缩 ● http/rpc框架内建 自适应降载 ● 超时 ● 级联调用 ● 跟客户端超时配合0 码力 | 29 页 | 5.70 MB | 9 月前3
大规模高性能区块链架构设计模式与测试框架-李世敬大规模高性能区块链架构 设计模式与测试框架 Gopher Meetup 深圳站 2021 年 8 ⽉ 21 号 趣�科技 李世敬 目录 区块链概述 01 大规模高性能区块链架构设计介绍 02 基于Go插件的区块链性能测试工具 03 写在最后 04 区块链概述 4 趣链科技 版权所有 ©2016-2021 4 趣链科技 版权所有 ©2016-2021 4 趣链科技 版权所有 ©2016-2021 智能合约脚本 合约执⾏引擎 分布式应⽤DApp ⽹络层 P2P⽹络 区块链⽹络模型 区块链⽹络协议 扩 展 层 扩展操作 跨链协议 链上链下计算 预⾔机 扩展组件 消息队列MQ 证书管理 测试框架 治理层 权限体系 治理模型 区块链审计 BaaS运维治理 应⽤层 司法存证 供应链⾦融 智慧政务 物联⽹ 能源电⼒ 跨境贸易 ⼯业物联⽹ 智慧城市 ... 不同于完全开放、 智能合约脚本 合约执⾏引擎 分布式应⽤DApp ⽹络层 P2P⽹络 区块链⽹络模型 区块链⽹络协议 扩 展 层 扩展操作 跨链协议 链上链下计算 预⾔机 扩展组件 消息队列MQ 证书管理 测试框架 治理层 权限体系 治理模型 区块链审计 BaaS运维治理 应⽤层 司法存证 供应链⾦融 智慧政务 物联⽹ 能源电⼒ 跨境贸易 ⼯业物联⽹ 智慧城市 ... 不同于完全开放、0 码力 | 39 页 | 56.58 MB | 1 年前3
Go Web编程12.2 网站错误处理 12.3 应用部署 12.4 备份和恢复 12.5 小结 13.如何设计一个Web框架 13.1 项目规划 13.2 自定义路由器设计 13.3 controller设计 13.4 日志和配置设计 13.5 实现博客的增删改 13.6 小结 14.扩展Web框架 14.1 静态文件支持 14.2 Session支持 14.3 表单支持 14.4 用户认证 14.5 的库,它采用了Go style方式对数据库进行操作,实现了struct到数据表记录的 映射。beedb是一个十分轻量级的Go ORM框架,开发这个库的本意降低复杂的ORM学习曲线,尽可能在ORM的运行效率 和功能之间寻求一个平衡,beedb是目前开源的Go ORM框架中实现比较完整的一个库,而且运行效率相当不错,功能 也基本能满足需求。但是目前还不支持关系关联,这个是接下来版本升级的重点。 b 式数据。正则是 一个让人又爱又恨的工具,它处理文本的能力非常强大,我们在前面表单验证里面已经有所领略它的强大,7.3小节 将详细的更深入的讲解如何利用好Go的正则。Web开发中一个很重要的部分就是MVC分离,在Go语言的Web开发中V有一 个专门的包来支持template,7.4小节将详细的讲解如何使用模版来进行输出内容。7.5小节讲详细介绍如何进行文 件和文件夹的操作。7.6小结介绍了字符串的相关操作。0 码力 | 295 页 | 5.91 MB | 1 年前3
2.1.7 谈如何构建易于拆分的单体应用情硬是搞出来 n 个服务......(职责划分和架构选型不 合理,为了微服务⽽微服务) • 监控,告警,CI/CD,服务治理,分布式追踪等基础 设施不完善,维护成本⾼(⾃建—>云原⽣) 02 困境 MVC架构 微服务架构的困境与突破 ➢ 构建合理的业务模型(Monolith or Microservice) 1. 建模⽅法不只有领取驱动设计-DDD,还有⽤例驱动 设计-UDD等; 2. 并 合适的时机选择合适的架构,⼤多数情况下单体先⾏, 尤其是对于创业公司或者⼤公司内部的创业项⽬ or ⼩项 ⽬ ➢ 选择基础设施相对完善的云平台和合适的业务框架 03 突破 建模:通过表象看本质 第⼆部分 建模:通过表象看本质 ➢ 软件开发过程:描述软件开发全过程、软件开发活动以及他们之间关系的结构框架。 。。。 常⻅的软件开发模型 RUP开发模型 业务建模 01 软件开发过程 建模:通过表象看本质 ➢ 建 toolkit for building microservices (or elegant monoliths) in Go. Architecture and design : It is not an MVC framework. Instead, Go-kit services are laid out in three layers: transport endpoint servcie http/grpc/thrift0 码力 | 27 页 | 13.04 MB | 1 年前3
Build web application with Golangthe majority of people) looks like a language used by aliens. In section 7.4, you will see how the MVC pattern is used to develop applications in Go, and also how to use Go's template package for templating section: Templates Regexp 166 7.4 Templates What is a template? Hopefully you're aware of the MVC (Model, View, Controller) design model, where models process data, views show the results and finally can conclude discussing the V (View) part of the MVC architecture. In the following chapters, we will cover the M (Model) and C (Controller) aspects of MVC. Links Directory Previous section: Regexp Next0 码力 | 327 页 | 1.63 MB | 1 年前3
共 49 条
- 1
- 2
- 3
- 4
- 5













