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

基于 Go 实现的短网址服务

  •  
  •   timothyye · 2016-12-02 20:53:23 +08:00 · 3058 次点击
    这是一个创建于 2703 天前的主题,其中的信息可能已经有所发展或是发生改变。
    练手写了个短网址服务,框架基于 Iris 实现,前端页面用了 gulp 构建,短网址的存储用的 redis
    6 月挖的坑,中途拖延症爆发,总算在年底前埋了坑……

    网址: http://biturl.top
    GitHub 地址: https://github.com/TimothyYe/biturl
    31 条回复    2016-12-03 20:33:47 +08:00
    fyibmsd
        1
    fyibmsd  
       2016-12-02 20:58:11 +08:00 via iPhone
    前段时间也搞了一个 https://bitm.pro
    timothyye
        2
    timothyye  
    OP
       2016-12-02 20:59:23 +08:00   ❤️ 1
    @fyibmsd 666666
    poemind
        3
    poemind  
       2016-12-02 21:55:17 +08:00
    666
    newworld
        4
    newworld  
       2016-12-02 22:17:46 +08:00 via iPhone
    感谢 开源 一直想学这些,不知楼主对于 php 这方面的短网址有没有了解 解惑一二😬
    timothyye
        5
    timothyye  
    OP
       2016-12-02 22:21:25 +08:00
    @newworld PHP 的没搞过,不过短网址的实现算法应该是差不多的
    henbf
        6
    henbf  
       2016-12-02 22:23:10 +08:00   ❤️ 1
    outmanone
        7
    outmanone  
       2016-12-02 22:25:52 +08:00
    Golang 不错。。。看代码用 node build JS ,用 docker 来做容器,这样就可以随意发布了。
    newworld
        8
    newworld  
       2016-12-02 22:49:48 +08:00 via iPhone
    @timothyye 好的 谢谢
    @henbf 谢谢 😬
    Zohar
        9
    Zohar  
       2016-12-02 23:05:07 +08:00 via Android   ❤️ 2
    支持一下(´・ω・`)
    kslr
        10
    kslr  
       2016-12-02 23:37:00 +08:00   ❤️ 1
    设计感觉可以再优化优化,操作部分实在太小了。
    YORYOR
        11
    YORYOR  
       2016-12-03 00:03:29 +08:00 via iPhone
    防碰撞用的什么策略呢 还没来得及去读代码
    lakeview
        12
    lakeview  
       2016-12-03 00:10:19 +08:00
    加个访问统计如何,国内新浪短网址服务都没有统计功能,本来打算 google ,然后想起来国内大多数人访问不到 google:(
    timothyye
        13
    timothyye  
    OP
       2016-12-03 00:19:30 +08:00 via Android
    @lakeview 你是说记录下每个短网址被访问的次数吗?
    timothyye
        14
    timothyye  
    OP
       2016-12-03 00:21:09 +08:00 via Android
    @YORYOR 就是用了网上一个比较通用的短网址算法,一次生成四个短网址,我只是取了其中一个,其实还可以判断这四个是否跟已有短网址重叠,这个代码还可以优化
    LazyZhu
        15
    LazyZhu  
       2016-12-03 00:24:47 +08:00   ❤️ 1
    lakeview
        16
    lakeview  
       2016-12-03 00:25:31 +08:00
    @timothyye 是的, google 的短网址服务器可以当一个样板, https://goo.gl/
    timothyye
        17
    timothyye  
    OP
       2016-12-03 00:25:54 +08:00 via Android
    @lakeview 谢谢,空了我看看
    timothyye
        18
    timothyye  
    OP
       2016-12-03 00:26:18 +08:00 via Android
    @LazyZhu 谢谢
    lakeview
        19
    lakeview  
       2016-12-03 00:28:17 +08:00
    顺便说下, google 开放了短网址的 api ,大概直接调用就好了,哈哈
    timothyye
        20
    timothyye  
    OP
       2016-12-03 00:28:43 +08:00 via Android
    @scnace 同拖延症……
    timothyye
        21
    timothyye  
    OP
       2016-12-03 00:29:24 +08:00 via Android
    @lakeview API 也可以有
    scnace
        22
    scnace  
       2016-12-03 00:31:47 +08:00 via Android
    @timothyye 人艰不拆 还是加到 TODOs 里面吧。
    raincious
        23
    raincious  
       2016-12-03 00:36:13 +08:00 via Android
    看了下貌似核心代码就 utils.ShortenURL ,感觉没什么意义。不可以加上统计和自定义功能之类。

    而且碰撞处理就是 overwrite ?
    raincious
        24
    raincious  
       2016-12-03 00:37:04 +08:00 via Android
    @raincious

    - 不可以加上统计和自定义功能之类。
    + 可以加上统计和自定义功能之类。
    timothyye
        25
    timothyye  
    OP
       2016-12-03 00:40:19 +08:00 via Android
    @raincious 现在碰撞处理确实是覆盖,哈哈,后期可以优化
    TonyChol
        26
    TonyChol  
       2016-12-03 03:46:22 +08:00   ❤️ 1
    我之前试着用 React 写前端的时候也试着写了这么一个类似的服务😂: https://zbcai.xyz
    sfwn
        27
    sfwn  
       2016-12-03 10:21:18 +08:00
    66666 社长
    P0P
        28
    P0P  
       2016-12-03 11:03:22 +08:00
    https://ooo.0o0.ooo/2016/12/03/584235df93fe3.png

    http://biturl.top/qmqmUj
    Cpcong
        29
    Cpcong  
       2016-12-03 12:41:34 +08:00
    @newworld 我前段时间倒是用 php 写过,你可以参考下 https://github.com/Cpcong/roc
    timothyye
        30
    timothyye  
    OP
       2016-12-03 13:37:49 +08:00 via Android
    @P0P 有 bug ,哈哈
    timothyye
        31
    timothyye  
    OP
       2016-12-03 20:33:47 +08:00
    @P0P bug 已修……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   887 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 22:12 · PVG 06:12 · LAX 15:12 · JFK 18:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.