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

golang 框架选择,单体小应用,服务端渲染,利于 seo,前后端个人开发,方便独立维护.选择哪种框架好呢?

  •  
  •   sciel1211 · 2021-07-12 11:38:43 +08:00 · 7591 次点击
    这是一个创建于 1222 天前的主题,其中的信息可能已经有所发展或是发生改变。
    个人开发简单的小项目,后面用来挂广告随缘流量的那种.哪种框架比较适合呢?

    - Gin?
    - Iris ?
    - Echo?
    - Revel?
    -Beego? 没用过

    有像 python 的 django 的吗?

    如果 golang 没有,那其他语言哪种框架比较好呢?
    60 条回复    2021-08-25 21:16:53 +08:00
    plutome
        1
    plutome  
       2021-07-12 11:56:14 +08:00
    个人的话 就 gin+vue 就完事了.
    答应我, 不用 Beego 好么?
    ozygod
        2
    ozygod  
       2021-07-12 12:11:09 +08:00
    我个人觉得 beego 可以用,简单且全,省得自己去各种组装
    zoharSoul
        3
    zoharSoul  
       2021-07-12 12:29:46 +08:00
    好像没有类似 django 这种的,
    golang 的这些都称不上框架...顶多算个 http 路由的封装..
    sciel1211
        4
    sciel1211  
    OP
       2021-07-12 12:30:53 +08:00
    @plutome 你的意思是使用 gin 的 template 方式,渲染 html, 在 html 页面里面引入`vue js`从而使用 vue?

    还是说,用 gin 提供后台数据,vue 使用 Nuxt.js 服务端渲染?
    liaosp
        5
    liaosp  
       2021-07-12 12:42:50 +08:00
    gin
    seki
        6
    seki  
       2021-07-12 12:46:08 +08:00
    如果你用 nuxt 的话,nuxt 本身也是一个 node.js 后端,可以不用 go 出场

    除了 template 也可以前后端分析,后端提供 api,前端启动时去访问,当然前端是 nuxt 也行
    kaolajia123
        7
    kaolajia123  
       2021-07-12 12:49:17 +08:00
    echo 或者 gin
    XCFOX
        8
    XCFOX  
       2021-07-12 12:51:09 +08:00
    既然要服务端渲染,不如直接用 Node.js ,Next.js + Prisma
    https://www.prisma.io/nextjs
    ifsclimbing
        9
    ifsclimbing  
       2021-07-12 13:05:09 +08:00
    php
    ifsclimbing
        10
    ifsclimbing  
       2021-07-12 13:05:25 +08:00
    rails
    ifsclimbing
        11
    ifsclimbing  
       2021-07-12 13:05:36 +08:00
    django
    Jwyt
        12
    Jwyt  
       2021-07-12 13:09:12 +08:00
    @sciel1211 他肯定是前后端分离的意思吧
    alexmy
        13
    alexmy  
       2021-07-12 13:35:20 +08:00
    我选择前端用 next.js 。后端用 go 自己封装了一个,以前用 iris 。
    kaellzt777
        14
    kaellzt777  
       2021-07-12 14:02:11 +08:00
    答应我, 不用 Beego 好么?
    isouu
        15
    isouu  
       2021-07-12 14:07:06 +08:00
    试试 GoFrame 呢
    kerro1990
        16
    kerro1990  
       2021-07-12 14:19:43 +08:00
    gin
    mybigbigpark
        17
    mybigbigpark  
       2021-07-12 14:19:46 +08:00
    GoFrame
    pinylin
        18
    pinylin  
       2021-07-12 14:23:33 +08:00
    gin
    a719114136
        19
    a719114136  
       2021-07-12 14:27:52 +08:00
    1. go 没 django 这样的框架,go 的框架都是类似于 flask 这种的。
    2. 建议直接用 django,非要用 go 的话,这几个其实都差不多。
    Rwing
        20
    Rwing  
       2021-07-12 14:28:26 +08:00
    我倒是觉得没必要用 go,除非你是学习用,不然拿 go 来写业务系统或 crud 的很累,不如我推荐一下 C# ?
    jianhua
        21
    jianhua  
       2021-07-12 14:29:57 +08:00
    beego 怎么了
    joesonw
        22
    joesonw  
       2021-07-12 14:41:43 +08:00 via iPhone
    macaron 的集成比较多
    keepeye
        23
    keepeye  
       2021-07-12 14:49:40 +08:00
    iris 吧,基本都有,自带 mvc 能凑合用,orm 可以用 gorm
    kidlj
        24
    kidlj  
       2021-07-12 15:03:54 +08:00   ❤️ 1
    Echo + Ent. + html/template + Stimulus
    zzzzqqw
        25
    zzzzqqw  
       2021-07-12 15:12:59 +08:00
    没用过 gin,只用过 beego,它怎么了?
    很简单易用啊,想到了需求直接去看 documentation,要啥有啥
    Evilk
        26
    Evilk  
       2021-07-12 15:15:23 +08:00
    php + workerman
    stach
        27
    stach  
       2021-07-12 15:35:42 +08:00
    js python php 这一类语言比较符合楼主的需求, go 一般都是做纯 api 的服务.
    wowbaby
        28
    wowbaby  
       2021-07-12 16:01:41 +08:00
    前段时间打算用 go 来重构 php 项目,看了几个框架文档,比较全的 iris,goframe 等,其它没有 mvc,restful 模式 seo 不太友好,服务器渲染感觉又复杂化了,衡量之后,感觉工程之大,最终是放弃了,感觉 go 写业务优势不明显,不想找罪受,毕竟不太想写代码了,很多东西都没有,得自己封装,很累。比如 Yii 的 ARD 、缓存依赖、组件化、事件等,项目中可以很溜的玩,再说 php7 后性能也不差,基本性能瓶颈在 io 、db 。
    mekingname
        29
    mekingname  
       2021-07-12 16:15:53 +08:00
    goframe 就是像 django 一样的框架。
    ucando
        30
    ucando  
       2021-07-12 16:20:57 +08:00
    小项目? PHP 可真香
    xiaochong0302
        31
    xiaochong0302  
       2021-07-12 16:27:38 +08:00
    个人业务全干工程师选择 PHP,上班流水线打螺丝就 go,java 无所谓的
    bonfy
        32
    bonfy  
       2021-07-12 16:49:03 +08:00
    gin
    caryqy
        33
    caryqy  
       2021-07-12 17:19:14 +08:00
    我自己喜欢使用 gin + vue 的形式


    vue 单纯替换 jquery 使用,使用 gulp 来压缩合并
    meshell
        34
    meshell  
       2021-07-12 17:49:23 +08:00   ❤️ 1
    go + template + Alpine.js 吧。
    gsanidt
        35
    gsanidt  
       2021-07-12 20:20:26 +08:00
    gin
    OliverDD
        36
    OliverDD  
       2021-07-12 22:25:03 +08:00
    echo
    Smash
        37
    Smash  
       2021-07-12 22:31:40 +08:00
    @sciel1211 go 的 embed 可以把 vue 这些前端文件打进二进制包.免去了部署的麻烦
    MichealXie
        38
    MichealXie  
       2021-07-13 00:24:25 +08:00
    @plutome beego 怎么了?
    wzw
        39
    wzw  
       2021-07-13 05:37:27 +08:00
    GoFrame
    DipperRoy
        40
    DipperRoy  
       2021-07-13 06:48:14 +08:00
    只要你不用 beego 我们就是好朋友
    hunk
        41
    hunk  
       2021-07-13 09:08:50 +08:00
    @plutome 刚开始用 beego 的 orm,有点上瘾
    itwarcraft88
        42
    itwarcraft88  
       2021-07-13 09:09:57 +08:00
    GoFrame+1 慢慢需要的话再自己搭建吧
    bthulu
        43
    bthulu  
       2021-07-13 09:17:37 +08:00
    业务追求开发效率就不要用 go, 时间成本不是问题就随便折腾
    est
        44
    est  
       2021-07-13 09:20:59 +08:00
    我觉得还是直接静态页面吧。
    evam
        45
    evam  
       2021-07-13 09:43:51 +08:00
    @DipperRoy #40 beego 怎么了??求解
    wangritian
        46
    wangritian  
       2021-07-13 09:45:23 +08:00
    php-swoole 正在转 go,推荐 goframe,作者很了解一线业务开发的痛点
    bzshow1
        47
    bzshow1  
       2021-07-13 11:42:47 +08:00
    当然用 rust 的 warp
    libook
        48
    libook  
       2021-07-13 12:29:17 +08:00   ❤️ 1
    不建议把这些功能全塞到 Go 技术栈里,Go 的生态决定它比较适合做微服务(你去看前几名的框架,一水的轻量级),也就是 API CRUD 的那一部分;这方面更像 Flask,而 Django 是大而全的。

    大而全的框架现在比较少见了; Node.js 下的 Egg(KPI 预警)、Express 也集成了不少东西,你自己开发的话前后端都用 JS/TS,也比较方便。

    个人开发也可以前后端分离,只要做了分离,以后扩展就非常方便。比如前期可以直接在 Go 里挂个静态路由给前端目录,后续可以换 Nginx,性能不够上集群,最终可以迁移到 CDN 。

    SEO 的话可以去参考一些 SSR 方案,也就是说在服务器上把 Vue 、React 之类的富前端页面进行静态化渲染,专门用于 SEO,因为静态化了,所以这块也可以和原本的前端文件一样的方式提供。

    如果你对 Django 很熟悉,也觉得 Django 满足当前的需求,那么就用 Django 吧,没必要非要换技术栈,因为不同技术栈的设计目标、特性都不同,所以你没法简单把一个模式从一个技术栈搬到另一个技术栈,那样最终的结果很可能是你觉得还是不如原来的技术栈好用;要想学习多些领域,就得打破思维定式,去看看真正适合每个技术栈的方案都是什么。
    wangxin13g
        49
    wangxin13g  
       2021-07-13 14:18:08 +08:00
    php
    如果你不写云原生 用 go 就是给自己找不痛快
    haonse
        50
    haonse  
       2021-07-13 17:12:53 +08:00 via iPhone   ❤️ 1
    gin+pongo2,自己用了几年了很顺手,pongo2 这个模板引擎语法和 django 模板引擎一样,我从 py 过来的无压力
    haonse
        51
    haonse  
       2021-07-13 17:20:24 +08:00 via iPhone   ❤️ 1
    @haonse 另外,和你一样的需求过来,不建议用 beego,但凡多用过几种 web 框架,都能看出它设计上的反人类( py 转 go 的,py 和 go 的 web 框架都试过,go 现在就是 gin iris echo 三选一),举一例:如果你在大型项目里面看到过注解路由,试过手动编译路由文件,就知道我的意思了
    sunmoon1983
        52
    sunmoon1983  
       2021-07-13 19:13:23 +08:00   ❤️ 1
    试试 GoFrame 吧
    mauve
        53
    mauve  
       2021-07-13 20:01:51 +08:00
    这几个不适合 SSR,反倒是前端生态里有很多适合 SSR 的,如 VuePress 、Next.js 、Nuxt.js 、Gatsby.js ,你当然可以用,但比起这几个 JAMStack( Javascript API Markup)来说在 Go 这边有个更适合的框架:Hugo,号称 The world's fastest framework for building website

    然后你还需要一个 Headless CMS https://jamstack.org/headless-cms/

    关键词:Hugo JAMStack
    qloog
        54
    qloog  
       2021-07-14 13:33:57 +08:00
    也可以试试 [https://github.com/1024casts/snake]( https://github.com/1024casts/snake), 内置登录、注册页面,剩余的可以自己扩展,如果后续有 API 开发需求也可以无缝对接。
    ziyeziye
        55
    ziyeziye  
       2021-07-14 14:53:52 +08:00   ❤️ 1
    goframe, 工具全套
    yagamil
        56
    yagamil  
       2021-07-21 00:20:01 +08:00
    个人也想搭一个玩玩, 楼主可以一起学习学习~~
    xiaogui
        57
    xiaogui  
       2021-07-21 17:26:33 +08:00   ❤️ 1
    也可以试试 Fiber
    i4color
        58
    i4color  
       2021-07-24 22:14:07 +08:00
    gin+xorm+vue+elementui
    qq1340691923
        59
    qq1340691923  
       2021-07-27 14:32:21 +08:00
    根据你的需求,我的建议是选 php
    yrj
        60
    yrj  
       2021-08-25 21:16:53 +08:00 via iPad
    @xiaogui go fiber + 1

    用的人这么少吗?我是第二个安利的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5347 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 03:44 · PVG 11:44 · LAX 19:44 · JFK 22:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.