Page tree
Skip to end of metadata
Go to start of metadata

一、项目初心

  • 对技术探索与开源项目有发自内心的热爱。
  • 与更多至全球的小伙伴一起交流、探讨,不断学习与提高。
  • 通过一定的平台和方式做技术沉淀,提高自身的技术修养。
  • 结识、参与、创造,和一群志同道合的小伙伴做一些有意义的事情。
  • 参与贡献、分享技术,通过自己的努力,赢得更多人的欣赏和赞美。

二、项目背景

GoFrame项目开始得比较早,原本是公司内部孵化项目的一部分,用于企业内部使用的Go项目开发框架。由于需要给内部技术团队使用,并且鄙人深谙好的产品生命周期是20%的开发周期,80%的维护周期,因此降低入门成本,特别是维护成本是非常重要的一点考虑。所以GoFrame在设计上非常简洁,并且无论代码注释还是开发文档都写得非常详尽,且文档以中文为主,主要面向的是国内的团队和企业用户,以期降低开发人员的入门门槛、提高项目开发及维护效率。

GoFrame既是一款优秀的开发框架,也是一套高质量的基础组件集,这一切都是若干年日积月累的沉淀成果,难以一蹴而就,这也是其他Golang"框架"和"类库"难以企及和比拟的。

三、发展目标

1、工程化建设

GoFrame是面向工程化的,支持团队快速接入、高效开发、长期维护。针对业务型项目而言,提供工程实践的项目架构、设计模式、开发规范、开发工具、开发文档等团队开发与维护必需的基础服务能力。

2、基础组件建设

基础组件的研发,往往是短期投入、长期收益,投入产出比是最大的,因此GoFrame会长期不遗余力地加强对基础组件的研发建设。

3、团队企业为主

由于面向工程化,针对于团队开发协作来讲,可以将框架的服务能力价值最大化,因此GoFrame更适用于团队和企业用户。来源社区、回馈社区,鼓励团队和企业与开源社区良性循环共生。

4、社区生态共建

发挥和促进开源社区的能动性,繁荣GoFrame生态。

四、设计原则

1、简洁、易用

  • KISS设计原则。
  • 各个组件对外暴露的接口、变量足够的清晰简洁,仅公开必要的资源,减少对开发者的心智负担。
  • 各个组件内部实现对复杂功能的逻辑封装,保证良好易理解的命名规范,提高易用性和开发体验。

2、模块化、低耦合

  • "高内聚,低耦合"设计原则。
  • 一切面向模块化低耦合化设计。
  • 任意一个模块可被独立引用、按需加载。

3、面向接口化设计

  • 核心组件关键能力面向接口化设计,保证充足的可扩展能力。
  • 开发者可以根据特定的业务场景自定义接口实现,灵活性高。

4、高性能与稳定性

  • 基础组件必须保证高性能,并提供必要的性能基准测试。
  • 每个组件提供单元测试用例,保证核心功能逻辑覆盖率。
  • 组件的升级应当尽可能考虑向下兼容性,保证平滑升级。
  • 引入第三方模块时需要对其性能与稳定性进行严格评估。
  • 防止模块间重复逻辑,特别是第三方与本地模块在相同流程中的重复逻辑执行。

5、高代码与文档质量

  • 保证清晰简洁易理解的代码命名规范。
  • 保证完善的注释说明、关键逻辑说明。
  • 保证每一次迭代,开发文档与功能逻辑同步更新。














Content Menu

  • No labels