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

Go 的 web 框架有什么好处?

  •  
  •   wangxn · 2017-03-07 16:34:17 +08:00 · 2353 次点击
    这是一个创建于 2796 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没怎么写过 web 后台程序,这几天写一个个人用的小网站,发觉 Go 的标准库也很方便。 那用一个框架有什么好处?额外提供了什么特别有用的东西呢?

    15 条回复    2018-06-12 09:20:55 +08:00
    kindjeff
        1
    kindjeff  
       2017-03-07 16:49:24 +08:00   ❤️ 1
    我写博客程序的时候也是这么想的,一共就写俩页面,给三四个接口,为什么要用框架。不过后来还是用了,因为有一些出错控制,不会崩,代码行数还是少一点,写起来比较舒服。而且以后要再加功能更好加。
    loading
        2
    loading  
       2017-03-07 17:00:23 +08:00 via Android   ❤️ 1
    目前,我感觉和语法糖差不多的样子吧!反正很多东西都要做轮子。
    gejigeji
        3
    gejigeji  
       2017-03-07 17:08:40 +08:00   ❤️ 1
    看需求
    orvice
        4
    orvice  
       2017-03-07 20:56:31 +08:00   ❤️ 1
    ` /users/{id} ` 这种路由的时候就需要框架了吧..
    pathbox
        5
    pathbox  
       2017-03-07 21:02:43 +08:00 via Android   ❤️ 1
    @orvice 也可以不用框架,而用 middleware ,也完全可以自己写正则匹配,只是框架帮你做了这些事情
    janxin
        6
    janxin  
       2017-03-07 22:10:58 +08:00   ❤️ 1
    用一个成熟的框架好处是少写代码,少做轮子
    mengzhuo
        7
    mengzhuo  
       2017-03-07 22:22:35 +08:00   ❤️ 3
    个人理解 stdlib 最多就是个棚,别人的至少是水电齐全的毛坯房。

    不要小看那些框架,光是 router 就各种优化技巧(前缀树等
    更别说 header 优化(惰性 load )、 http corner case ( HEAD OPTIONS 处理)、 middleware 在方便使用的情况下做到 0 alloc
    log 处理上也有很多坑和窍门( rotate truncate 后 fd 句柄重写)
    wangxn
        8
    wangxn  
    OP
       2017-03-07 23:10:14 +08:00
    @orvice 可以的。标准库注册一个“/users/” handler 就行了。
    wangxn
        9
    wangxn  
    OP
       2017-03-07 23:11:13 +08:00
    @mengzhuo 高见。然而都看不懂 @_@
    lightening
        10
    lightening  
       2017-03-07 23:13:54 +08:00
    A framework's power is 10% technical, & 90% organizational. It focuses your team by removing questions they'd spend time disagreeing on.
    lightening
        11
    lightening  
       2017-03-07 23:17:26 +08:00   ❤️ 2
    框架帮你避免的就是 “这个文件放哪个目录”,“这个 URL 用什么格式” 这种和业务本身无关,放哪儿都可以,但需要你思考并在一个项目中保持一致性的决定。
    jarlyyn
        12
    jarlyyn  
       2017-03-09 00:56:39 +08:00   ❤️ 1
    需要路由
    需要缓存框架
    需要个 middleware
    Unknwon
        13
    Unknwon  
       2017-03-09 07:45:32 +08:00   ❤️ 1
    1. 如果以学习为目的。。基本上没好处因为所有细节都被隐藏了,好在 Go 的项目都是开源的所以还可以学习源代码不过一般除非遇到 Bug ,估计都不会去读源码。
    2. 如果以快速开发为目的,找到一个适合自己习惯的 Web 框架可以大大提高自己的生产力(如果一共只有一个项目,不存在生产力高低的情况,开发多个项目之后就会发现一个顺手地框架的重要性和便利性),不用重复写代码,也不用自己处理各种边缘情况。
    reus
        14
    reus  
       2017-04-20 11:32:38 +08:00
    一个难上手、无法处理所有情况的框架,对生产力的抑制,完全掩盖掉对生产力的提高。
    KgM4gLtF0shViDH3
        15
    KgM4gLtF0shViDH3  
       2018-06-12 09:20:55 +08:00
    路由,中间件和模板怎么搞,规范怎么搞,人家迭代那么多次的框架你一个人一会儿就能搞定吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3443 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:39 · PVG 18:39 · LAX 03:39 · JFK 06:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.