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

学习 go 一段时间了, 自己写了一个项目玩玩, 大家帮忙掌掌眼

  •  
  •   liuky · 2020-05-10 18:16:56 +08:00 · 4303 次点击
    这是一个创建于 1663 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没有项目经验, 也没有大佬带, 纯自己摸索着写的, 也不知道大厂是怎么写项目的, 大家帮忙过过眼, 看看有没有需要改正的, 可以互相学习哈. 贴一下 github 地址: https://github.com/mirckliu/kyblog

    15 条回复    2020-05-14 14:44:41 +08:00
    fanhaipeng0403
        1
    fanhaipeng0403  
       2020-05-10 19:57:08 +08:00
    额。。
    m0cha
        2
    m0cha  
       2020-05-10 20:00:48 +08:00 via iPhone
    建议把项目介绍补上
    Hanggi
        3
    Hanggi  
       2020-05-10 20:24:36 +08:00   ❤️ 1
    整个结构像 java,不是说不好,但这样完全发挥不出 go package 的优势。

    个人感觉一个模块内的代码可以扁平点。如何?
    qloog
        4
    qloog  
       2020-05-10 22:14:10 +08:00
    qloog
        5
    qloog  
       2020-05-10 22:14:44 +08:00
    可以参考下这个: https://github.com/1024casts/snake
    多个企业里在用
    silenzio
        6
    silenzio  
       2020-05-11 08:45:19 +08:00
    @qloog 可以详细介绍一下吗? 哪些内容放在 pkg 里, 哪些放在根目录里? 感谢
    qloog
        7
    qloog  
       2020-05-11 08:53:10 +08:00
    silenzio
        8
    silenzio  
       2020-05-11 09:49:12 +08:00
    @qloog 感谢
    chinazz
        9
    chinazz  
       2020-05-11 10:29:22 +08:00
    @qloog 你这个是参考别的开源项目改的吗?之前见过类似的代码组织结构。
    qloog
        10
    qloog  
       2020-05-11 10:35:10 +08:00
    @chinazz 对,也参考了一些其他项目的组织结构,实际使用下来这些目录结构确实是比较常用的。
    liuky
        11
    liuky  
    OP
       2020-05-11 12:18:55 +08:00
    @m0cha 学习项目哈, 只简单写了一下简介
    liuky
        12
    liuky  
    OP
       2020-05-11 12:19:57 +08:00
    @qloog 先收藏回去瞧一瞧借鉴借鉴
    jinzhongyuan
        13
    jinzhongyuan  
       2020-05-13 14:55:25 +08:00
    @Hanggi "完全发挥不出 go package 的优势" 指点一下,啥意思
    Hanggi
        14
    Hanggi  
       2020-05-13 15:56:42 +08:00
    也不算什么指点。
    你可以看看一些比较热门的 go 开源项目,其中很多项目喜欢在一个目录里放一大堆 go 文件。

    这是因为在 go 语言里,相同目录下一般是同一个 package,同一 package 下的不同文件之间,里面的各种函数、成员都是可以互相调用的,且不需要 import 。

    既然可以互相调用,为什么要分那么多层文件夹呢?增加不必要的导入不是吗?
    sunshinev
        15
    sunshinev  
       2020-05-14 14:44:41 +08:00
    @Hanggi 其实同一个目录下的 go file,file 的名称主要是用来区分核心能力的。每个目录都是一个 Package,整体 Package 对外输出统一能力。然后整个项目就是无数个包组成的。

    项目不错~ 加油加油

    同时欢迎指点 我的项目. https://github.com/sunshinev/go-sword
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1185 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:55 · PVG 02:55 · LAX 10:55 · JFK 13:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.