Skip to content
This repository was archived by the owner on Aug 3, 2022. It is now read-only.
This repository was archived by the owner on Aug 3, 2022. It is now read-only.

Suggestions on Python SDK #1

@Guo-Zhang

Description

@Guo-Zhang

目前的Python SDK还有很大的提升空间可以进行规范,下面是一些建议。

  • 文件夹命名。通常情况下Python比较少使用src,而是可以直接把feature flags co放在第一层。减少文件夹层次会让它简单很多。
  • 版本号。目前已经到0.0.17的版本,看起来似乎出现了用小版本号不敢发布的问题,建议考虑0.1和1.0的明确计划。
  • 模块划分和类设计。目前来看User类不是必须,使用一个模块或者一个类看起来没问题。命名方面,因为有namespace的存在,ffc的前缀是可以不要的。

如果保留现在的模块,对于User类和Client类的实现建议是:

  • User类的custom属性使用kwargs传入,然后使用hasattr方法设置成属性。这样会比较符合用户对这个类的预期。
  • Client的payload可以再User里实现,在client实例方法中调用。
  • Client的variations方法似乎可以设法和variation共用代码逻辑,且命名不太容易区分。

其他还有一些小问题,比如

  • User类的Exception没有指定具体类,不过这里直接让参数不带默认值就可以了。
  • Client类的api base url类属性冗余了。这里的写法比较建议把URL和API路径统一放到一个模块,方便以后维护。此外也有一些小技巧可以让私有化部署使用SDK也很容易。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions