为此类用例创建键/值或字典的好做法是什么?



我目前有一个系统,报告警报,并根据警报削减门票。每个警报必须包含名称、资源、到runbook的链接和文档。

我正试图为一个用例编写干净的代码。

警报名称通常为35个字符以上,并包含空格。

因此键/值对看起来像这样:

tickets = { 
"Alert for Admin login": 
f"Alert Name: {alert_name}",
f"Runbook": {link},
f"Documentation": {link},
"Description": "Description here"
}

例如,这只是一个警告。系统将收到多个警报,因此可能有大约10个这样的键值对。描述将是最长的,可能需要空格。

这样实现会被认为是好的做法吗?我想把它写得尽可能容易读。任何建议或指导都会有所帮助。

如果您的数据结构类似于@ almmy -code的答案,那么您可以为您的警报编写一个数据类。

from dataclasses import dataclass

ticket = { 
"name": f"Name here",
"desc": "Description here",
"runbook": f"link1",
"docs": f"link2"
}

@dataclass
class Alert:
name: str
runbook: str
docs: str
desc: str
alert = Alert(*+ticket)

你也可以继承你的警报来创建子类,以区分和自定义他们的行为。

class AdminAlert(Alert):
pass

这使得代码通常更具可读性,因为设置或获取值的整个alert["item"]被替换为alert.item。此外,您还可以根据类型了解它存储的数据,这有助于整理内容。

但是,每次警报结构发生变化时,您也会调整datacclass,希望这种情况不会经常发生:)

如果你想定义一个结构来描述每个票据,我建议这个结构既干净又容易阅读,同时又尊重python的命名规则:

ticket = { 
"name": f"{alert_name}",
"description": "Description here",
"runbook": f"{link}",
"documentation": f"{link}"
}

相关内容

  • 没有找到相关文章