gpt4 book ai didi

python - 学习编写可重用的库

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:27 25 4
gpt4 key购买 nike

<分区>

我们需要编写简单的脚本来操作负载均衡器的配置(即,从池中排出节点,启用或禁用流量规则)。负载均衡器有一个 SOAP API(通过一堆 WSDL 文件定义),它非常全面,但使用它的级别非常低,需要大量手动错误检查和列表操作。它不会产生可重用的、健壮的代码。

我想编写一个 Python 库来处理与 SOAP 接口(interface)交互的具体细节,但我真的不知道从哪里开始;我所有的编码经验都是为特定工作编写一次性的整体程序。这对小型工作来说很好,但对我或我的同事没有帮助——我们每次都在用不同数量的辐条重新发明轮子:~)

API 已经提供了 getPoolNames() 和 getDrainingNodes() 之类的方法,但它们使用起来有点笨拙。大多数获取节点列表并返回另一个列表,因此(比如说)计算启用哪些虚拟服务器涉及此类事情:

names = conn.getVirtualServerNames()
enabled = conn.getEnabled(names)
for i in range(0, len(names)):
if (enabled[i]):
print names[i]
conn.setEnabled(['www.example.com'], [0])

而像这样的:

lb = LoadBalancer('hostname')
for name in [vs.name for vs in lb.virtualServers() if vs.isEnabled()]:
print name
www = lb.virtualServer('www.example.com').disable()

更像 Pythonic 并且(恕我直言)更容易。

有很多事情我不确定:如何处理错误,如何处理 20 多个 WSDL 文件(每个文件一个 SOAPpy/suds 实例?)以及从 API 方法到我需要做的方法。

这更像是一个更广泛问题的例子(如何学习编写库而不是一次性脚本)所以我不想回答这些具体问题——它们在那里是为了展示我的想法并说明我的想法问题。我发现我目前做事的方式有代码味道(一次性的、不可重用的代码),但我不知道如何修复它。一个人如何进入在更抽象的层面上解决问题的心态?您如何“学习”软件设计?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com