全新的国产 golang 框架准备发布啦,快来看看吧 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
qbhy

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

  •  
  •   qbhy
    qbhy Mar 1, 2022 5867 views
    This topic created in 1517 days ago, the information mentioned may be changed or developed.

    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 )
      • grpc
      • 服务发现
      • 负载均衡
      • 自定义 go-micro
      • 微服务 demo/li>
    • 第三方 sdk

    参与项目

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

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

    交流

    扫码加入 QQ 群
    qq_pic_merged_1635476228621.jpg

    32 replies    2022-03-11 15:23:49 +08:00
    HanMeiM
        1
    HanMeiM  
       Mar 1, 2022
    为什么不直接说 spring ,要说 laravel
    qbhy
        2
    qbhy  
    OP
       Mar 1, 2022
    @HanMeiM 哈哈哈也可以,不过 spring 并没有服务提供者的概念
    ccppgo
        3
    ccppgo  
       Mar 1, 2022
    @qbhy 服务提供者不就是 Spring 的 Bean 么
    sunny1688
        4
    sunny1688  
       Mar 1, 2022
    我也借楼留一个框架~~
    高性能 TCP 网络框架,基于事件循环,可配置路由模式,无需关心封包解包,框架自动完成,支持 TLS ,后期会支持分布式模式,详情可见 repo: https://github.com/ikilobyte/netman
    qbhy
        5
    qbhy  
    OP
       Mar 1, 2022
    @ccppgo 不太一样的,Bean 提供的是一个类,服务提供者提供的是一个服务,一个服务里面可能包含一个类,也可能提供多个类,甚至可以在服务提供者里面直接运行一些任务。
    qbhy
        6
    qbhy  
    OP
       Mar 1, 2022
    @qbhy 更具体的可以参考 goal-web 组织下的一些组件仓库对服务提供者的实现代码 https://github.com/goal-web
    ccppgo
        7
    ccppgo  
       Mar 1, 2022
    @qbhy 类里面写服务不就是服务了么,service 也是 bean ,service 翻译是啥老哥。 不过我是 java 新手, 所以也不敢保证是这样, 但我觉得那个服务提供者就是个容器的作用, 跟 spring 没有区别
    hzz2
        8
    hzz2  
       Mar 1, 2022
    赞! 在 learnku 有关注过
    qbhy
        9
    qbhy  
    OP
       Mar 1, 2022
    @hzz2 谢谢支持
    B1ankCat
        10
    B1ankCat  
       Mar 1, 2022   1
    你这个框框里,都没有勾勾啊
    qbhy
        11
    qbhy  
    OP
       Mar 1, 2022
    @ccppgo 一个类提供一种服务没错,但有写时候我们可能需要许多个类一起组成一个更大,更复杂的服务,全都由一个类提供显得太臃肿,将其拆为多个类比较合适。
    qbhy
        12
    qbhy  
    OP
       Mar 1, 2022
    @B1ankCat V2 的解析问题,代码里面有的哈哈
    coolair
        13
    coolair  
       Mar 1, 2022
    一直觉得继承 XX 思想,就是没有思想。
    BeijingBaby
        14
    BeijingBaby  
       Mar 1, 2022
    go 只需要各种工具集,如果尝试搞一个框架,就太臃肿了,意味着场景太小。
    lesismal
        15
    lesismal  
       Mar 1, 2022
    @sunny1688
    #4 简单 review 了下,先 issue 了个,欢迎多多交流
    lesismal
        16
    lesismal  
       Mar 1, 2022   1
    虽然我仍然喜欢大道至简,但是希望有楼主这种项目能让那些对 golang 大道至简阴阳怪气的小白们闭嘴
    kerro1990
        17
    kerro1990  
       Mar 2, 2022
    其实 99% 的项目用不到这些框架
    macscsbf
        18
    macscsbf  
       Mar 2, 2022
    大佬 考虑用泛型吗
    qbhy
        19
    qbhy  
    OP
       Mar 2, 2022
    @coolair 哈哈哈,好的东西要学习,看过代码你就知道了。
    qbhy
        20
    qbhy  
    OP
       Mar 2, 2022
    @BijingBaby 这个框架跟 spring 也有些相似的地方,框架本身提供的是配置和容器,其他所有组件都是可选的,群里就有朋友基于我给的 example 精简了很多东西,从何挖掘到到适合他自己的脚手架
    qbhy
        21
    qbhy  
    OP
       Mar 2, 2022
    @lesismal 谢谢支持,其实有不同的声音很正常,我也只是给了开源社区的各位一个新的选择,这是开源社区发展的常态。
    qbhy
        22
    qbhy  
    OP
       Mar 2, 2022
    @kerro1990 哈哈哈,没有经过统计的 99%吗 ? 退一万步说,不是还有 1%嘛 ~ 我很乐观
    qbhy
        23
    qbhy  
    OP
       Mar 2, 2022
    @macscsbf 必须考虑阿,所以准备等 go 1.18 正式发布后,goal 框架适配后才正式发布
    macscsbf
        24
    macscsbf  
       Mar 2, 2022
    @qbhy 有没有写过一部分 能开个分支看看吗
    qbhy
        25
    qbhy  
    OP
       Mar 2, 2022
    @macscsbf 目前还没有哦,感兴趣进群里详细聊呀
    bigbigpark
        26
    bigbigpark  
       Mar 2, 2022
    赞一个,加油
    dany813
        27
    dany813  
       Mar 2, 2022
    ,话说 go 里面有啥好用的 orm 吗
    qbhy
        28
    qbhy  
    OP
       Mar 2, 2022
    @bigbigpark 谢谢~
    qbhy
        29
    qbhy  
    OP
       Mar 2, 2022
    @dany813 目前没有发现特别好用的
    kingjpa
        30
    kingjpa  
       Mar 6, 2022
    赶快发布呀,一个 phper 的 强烈期盼
    qbhy
        31
    qbhy  
    OP
       Mar 6, 2022
    @kingjpa 哈哈哈,快了快了,进群关注最新动态呀
    aurtech
        32
    aurtech  
       Mar 11, 2022
    坐标深圳,求一枚 Golang/Python 大佬!!欢迎砸简历 V:Ifboredgunquxuexi.
    About     Help     Advertise     Blog     API     FAQ     Solana     5977 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 111ms UTC 03:03 PVG 11:03 LAX 20:03
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86