当你需要给机器人开发一个功能时,你应该考虑的问题。

发布于 2021-02-26  314 次阅读


来自 [email protected]/TelegramBots

原文

When you want to implement a feature in your bot, you start asking these questions:

The WHO?

  • Who is going to use this feature? Should they be allowed to use all the features?

The WHAT?

  • Under what conditions should I allow this feature?
  • Should the message have a photo? A document? Oh, maybe a callback query?

The HOW?

  • If my bot crashes, how can I resume my operation?
  • Should I utilize a DB?
  • How can I separate logic execution of different features?
  • How can I unit-test my feature outside of Telegram?

Every time you write a command or a feature, you will need to answer these questions and ensure that your feature logic works.


翻译(欢迎指正)

如果你想为你的机器人实现一个功能时,你应该问自己以下问题:

  • 谁?
    • 谁会使用这个功能?应该允许他们使用所有功能吗?(是否需要限制他们的使用?只能让管理员使用吗?)
  • WHAT?(原谅我不知道该怎么翻译才恰当,欢迎评论指正)
    • 这个功能应该在怎样的条件下才允许使用?(要满足什么条件才能使用?)
    • 用户发送的消息1里需要有一张图片?一份文档?或者说一个答案回复2?(消息里需要包含什么东西?在缺少的情况下要如何处理?)
  • 怎么做?
    • 如果机器人崩溃了,应该如何恢复操作?(当机器人操作中断时,应该如何处理)
    • 要不要使用数据库?(考虑功能实现所需的东西,抛弃没有必要的依赖)
    • 如何区分每个功能之间的逻辑代码?(尽可能降低功能之间的耦合性,降低维护难度)
    • 这个功能如何脱离机器人框架进行独立测试?(不能依赖机器人框架进行测试,因为测试环境有可能连机器人都不能用,而且测试需要机器人框架意味着测试可能不能达到全自动,所以要达到不需要机器人框架也能进行测试才行)

1:根据 Callback Query 的功能描述,结合 Telegram 官方文档的说明,推测“message”指的是用户发给机器人的消息。

2:Callback Query 是一个问答的功能的回复,这个问答功能类似于ABCD答题一样。


脑洞大开的开发者,热爱探讨尝试各种技术! [email protected][email protected]