本文最后更新于 1104 天前,其中的信息可能已经有所发展或是发生改变。
来自 Github@rubenlagus/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答题一样。