V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
qbhy
V2EX  ›  Go 编程语言

全新的国产 golang 框架准备发布啦,快来看看吧

  •  
  •   qbhy ·
    qbhy · 2022-03-01 18:27:24 +08:00 · 5072 次点击
    这是一个创建于 1002 天前的主题,其中的信息可能已经有所发展或是发生改变。

    goal

    一个继承了 laravel 思想的 golang web 框架

    框架特点

    goal 通过容器和服务提供者作为框架的核心,以 contracts 为桥梁,为开发者提供丰富的功能和服务,这点与 laravel 是相似的。

    • 强大的容器
    • 服务提供者
    • 契约精神

    功能特性

    • examples 各种程序的例子(还在完善中...)
    • contracts 定义模块接口
    • container 容器实现!!!
    • pipeline 简单但是很强大的洋葱模型的管道
    • supports 支持库
      • logs 日志模块
      • collection 集合库
      • utils 工具库,封装了包含字符串处理、默认参数处理、类型转换、反射等工具函数
    • application 应用
      • exceptions 异常处理模块
      • signal 信号监听,goal 实现了优雅关闭功能
    • config 配置模块
    • redis Redis 模块
    • cache 缓存模块
      • redis
      • memory 将数据存储在内存中,不支持持久化和分布式
      • memcached
      • file
      • database 数据库驱动
      • multi 高可用多级缓存
    • encryption 加密模块
    • hashing 哈希模块
    • validation 数据校验模块
    • mail 邮件模块
    • events 事件模块
    • filesystem 文件系统模块
      • local 本地文件系统
      • qiniu 七牛文件系统
      • oss 阿里云文件系统
    • database 数据库操作模块
      • query builder 查询构造器
      • seeders 数据填充
      • migration 数据迁移
      • drivers 数据库驱动
        • mysql
        • postgresql
        • sqlite
        • clickhouse
        • sqlserver
    • eloquent ORM 模块,计划 golang 1.18 发布后完成,因为泛型
    • http http 相关模块,请求、响应、中间件等
      • sse server-sent-events 模块(简称 sse)
      • routing http 路由服务
      • session 会话服务
        • cookie 将会话信息存储到加密的 cookie 中
        • redis
        • file
        • database
        • memcached
    • console 命令行模块
      • commands 自定义命令模块
      • scheduling 任务调度模块
    • auth 用户认证模块
      • gate 用户授权模块
    • serialize 序列化模块
      • json
      • xml
      • gob
      • protobuf
    • queue 消息队列模块
      • redis
      • kafka
      • nsq
      • rocketMQ
      • rabbitMQ
    • rate limiter 限流器
    • bloom-filter 布隆过滤器
      • file 持久化到文件
      • redis 通过 redis bit 实现的过滤器,支持分布式
    • websocket socket 通信模块
    • micro 远程调用模块(集成 go-micro )
    • 第三方 sdk

    参与项目

    你可以通过以下方式参与到项目中来

    • 完善已有模块(优化或者改 bug )
    • 完善或者修复测试用例
    • 开发新的模块(比如标记为未完成的模块)
    • 添加或者修改完善注释(用英语)
    • 修改错别字或者不当用词(文档和代码都可以,比如变量命名)
    • 帮助开发独立文档( readme 是临时的,后面需要独立的文档项目)
    • 开发扩展包( goal 的扩展相当容易,后面我会写教程,现阶段进群聊)
    • 使用 goal 实现各种例子(放 examples 文件夹或者新建仓库在这里引用)
    • 更多方式进群聊吧

    交流

    扫码加入 QQ 群
    qq_pic_merged_1635476228621.jpg

    32 条回复    2022-03-11 15:23:49 +08:00
    HanMeiM
        1
    HanMeiM  
       2022-03-01 18:59:06 +08:00
    为什么不直接说 spring ,要说 laravel
    qbhy
        2
    qbhy  
    OP
       2022-03-01 19:22:09 +08:00
    @HanMeiM 哈哈哈也可以,不过 spring 并没有服务提供者的概念
    ccppgo
        3
    ccppgo  
       2022-03-01 19:52:46 +08:00
    @qbhy 服务提供者不就是 Spring 的 Bean 么
    sunny1688
        4
    sunny1688  
       2022-03-01 20:03:01 +08:00
    我也借楼留一个框架~~
    高性能 TCP 网络框架,基于事件循环,可配置路由模式,无需关心封包解包,框架自动完成,支持 TLS ,后期会支持分布式模式,详情可见 repo: https://github.com/ikilobyte/netman
    qbhy
        5
    qbhy  
    OP
       2022-03-01 20:17:35 +08:00
    @ccppgo 不太一样的,Bean 提供的是一个类,服务提供者提供的是一个服务,一个服务里面可能包含一个类,也可能提供多个类,甚至可以在服务提供者里面直接运行一些任务。
    qbhy
        6
    qbhy  
    OP
       2022-03-01 20:18:36 +08:00
    @qbhy 更具体的可以参考 goal-web 组织下的一些组件仓库对服务提供者的实现代码 https://github.com/goal-web
    ccppgo
        7
    ccppgo  
       2022-03-01 20:35:58 +08:00
    @qbhy 类里面写服务不就是服务了么,service 也是 bean ,service 翻译是啥老哥。 不过我是 java 新手, 所以也不敢保证是这样, 但我觉得那个服务提供者就是个容器的作用, 跟 spring 没有区别
    hzz2
        8
    hzz2  
       2022-03-01 20:54:13 +08:00
    赞! 在 learnku 有关注过
    qbhy
        9
    qbhy  
    OP
       2022-03-01 21:04:07 +08:00
    @hzz2 谢谢支持
    B1ankCat
        10
    B1ankCat  
       2022-03-01 21:05:58 +08:00   ❤️ 1
    你这个框框里,都没有勾勾啊
    qbhy
        11
    qbhy  
    OP
       2022-03-01 21:06:06 +08:00
    @ccppgo 一个类提供一种服务没错,但有写时候我们可能需要许多个类一起组成一个更大,更复杂的服务,全都由一个类提供显得太臃肿,将其拆为多个类比较合适。
    qbhy
        12
    qbhy  
    OP
       2022-03-01 21:06:39 +08:00
    @B1ankCat V2 的解析问题,代码里面有的哈哈
    coolair
        13
    coolair  
       2022-03-01 22:18:16 +08:00
    一直觉得继承 XX 思想,就是没有思想。
    BeijingBaby
        14
    BeijingBaby  
       2022-03-01 22:29:15 +08:00
    go 只需要各种工具集,如果尝试搞一个框架,就太臃肿了,意味着场景太小。
    lesismal
        15
    lesismal  
       2022-03-01 23:33:11 +08:00
    @sunny1688
    #4 简单 review 了下,先 issue 了个,欢迎多多交流
    lesismal
        16
    lesismal  
       2022-03-01 23:34:29 +08:00   ❤️ 1
    虽然我仍然喜欢大道至简,但是希望有楼主这种项目能让那些对 golang 大道至简阴阳怪气的小白们闭嘴
    kerro1990
        17
    kerro1990  
       2022-03-02 08:27:12 +08:00
    其实 99% 的项目用不到这些框架
    macscsbf
        18
    macscsbf  
       2022-03-02 09:07:21 +08:00
    大佬 考虑用泛型吗
    qbhy
        19
    qbhy  
    OP
       2022-03-02 09:37:58 +08:00
    @coolair 哈哈哈,好的东西要学习,看过代码你就知道了。
    qbhy
        20
    qbhy  
    OP
       2022-03-02 09:39:52 +08:00
    @BeijingBaby 这个框架跟 spring 也有些相似的地方,框架本身提供的是配置和容器,其他所有组件都是可选的,群里就有朋友基于我给的 example 精简了很多东西,从何挖掘到到适合他自己的脚手架
    qbhy
        21
    qbhy  
    OP
       2022-03-02 09:41:22 +08:00
    @lesismal 谢谢支持,其实有不同的声音很正常,我也只是给了开源社区的各位一个新的选择,这是开源社区发展的常态。
    qbhy
        22
    qbhy  
    OP
       2022-03-02 09:42:21 +08:00
    @kerro1990 哈哈哈,没有经过统计的 99%吗 ? 退一万步说,不是还有 1%嘛 ~ 我很乐观
    qbhy
        23
    qbhy  
    OP
       2022-03-02 09:43:19 +08:00
    @macscsbf 必须考虑阿,所以准备等 go 1.18 正式发布后,goal 框架适配后才正式发布
    macscsbf
        24
    macscsbf  
       2022-03-02 11:25:06 +08:00
    @qbhy 有没有写过一部分 能开个分支看看吗
    qbhy
        25
    qbhy  
    OP
       2022-03-02 12:23:30 +08:00
    @macscsbf 目前还没有哦,感兴趣进群里详细聊呀
    bigbigpark
        26
    bigbigpark  
       2022-03-02 14:00:42 +08:00
    赞一个,加油
    dany813
        27
    dany813  
       2022-03-02 18:18:08 +08:00
    👍,话说 go 里面有啥好用的 orm 吗
    qbhy
        28
    qbhy  
    OP
       2022-03-02 19:47:02 +08:00
    @bigbigpark 谢谢~
    qbhy
        29
    qbhy  
    OP
       2022-03-02 19:47:23 +08:00
    @dany813 目前没有发现特别好用的
    kingjpa
        30
    kingjpa  
       2022-03-06 10:35:15 +08:00
    赶快发布呀,一个 phper 的 强烈期盼
    qbhy
        31
    qbhy  
    OP
       2022-03-06 20:38:09 +08:00
    @kingjpa 哈哈哈,快了快了,进群关注最新动态呀
    aurtech
        32
    aurtech  
       2022-03-11 15:23:49 +08:00
    坐标深圳,求一枚 Golang/Python 大佬!!欢迎砸简历 V:Ifboredgunquxuexi.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3698 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:13 · PVG 08:13 · LAX 16:13 · JFK 19:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.