zoukankan      html  css  js  c++  java
  • golang写业务代码,用全局函数还是成员函数

    在golang中,函数划分为全局函数和成员函数,在使用的时候,有种情况,会产生一些疑惑的,就是在写业务代码的时候,使用全局函数好像会比较方便,一般业务代码,都不会复用,都是针对特定的业务进行编程,要复用的代码都会封装为功能函数了。在写业务代码的时候,使用包+全局函数的划分方式,可以将业务代码写成单例,把receive也省略掉了,简单清晰。

    使用包+全局函数的方式来划分模块,很多项目在写业务代码的时候,都是这样操作的,但这样会增加目录的层次,看起来会比较啰嗦。

    因为使用包划分代码,业务代码使用的变量都成为了包内函数,这样在多个包内文件会互相污染,而多个业务中,可能会用到相同的变量,这样要么通过命名来避免,要么通过将包划分更细进行避免,通过命名来解决,实在太过于啰嗦,不考虑。

    拆分后,很可能的代码结构:

    src
    ├── user
    │   ├── user.go
    ├── auth
    │───├── auth.go 
    

    这样很明显,拆分出来的目录太多了,几乎每一个业务一个,也是比较啰嗦的,但也还算比较清晰,但还是不够好。

    为了使代码更加清晰简洁,我觉得业务代码应该使用成员函数来实现,代码的结构应该是下面这样:

    src
    ├── user.go
    ├── auth.go
    

    这样层次简单,查看代码的时候也没那么啰嗦,而且也遵从了一种原则:要维护状态的函数,都写成成员函数,反之则可以是全局函数

  • 相关阅读:
    1.shell编程-变量的高级用法
    1.python简介
    1.numpy的用法
    1.MySQL(一)
    1.HTML
    1.Go-copy函数、sort排序、双向链表、list操作和双向循环链表
    1.Flask URL和视图
    1.Django自学课堂
    1.Django安装与运行
    ajax跨站请求伪造
  • 原文地址:https://www.cnblogs.com/xiaohunshi/p/10357121.html
Copyright © 2011-2022 走看看