🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# IRC / 实时聊天系统 许多项目使用*互联网多线交谈*(*IRC*)提供实时聊天室,作为用户和开发者互相提问并得到及时答复的讨论场所。即使你*可以*在你的服务器运行IRC服务器时,也不必为此事麻烦。而应该象其他人一样:在Freenode([http://freenode.net/](http://freenode.net/))运行你的IRC频道。Freenode给了你足够的权利来管理你项目的IRC频道,[[17](#)]可以让你摆脱维护IRC服务器这类无意义的麻烦。 首先要选择一个频道名称。最明显的选择是你的项目名—如果在Freenode存在,就使用它。如果不存在,可以选择一个与项目名接近的名称,尽可能的易于记忆。在你的项目网站上将频道广而告之,这样期望快速提问的访问者可以立刻看到它。例如,Subversion主页上显著放置的方框中所出现的: > *If you're using Subversion, we recommend that you join the*`users@subversion.tigris.org`*mailing list, and read the [Subversion Book](http://svnbook.red-bean.com/) and [FAQ](http://subversion.tigris.org/faq.html). You can also ask questions on IRC at*`irc.freenode.net`*channel* `#svn`. 一些项目有多个频道,每个子主题一个。例如,一个频道关注安装问题,另一个是使用问题,还有一个是开发聊天,等等。 ([Chapter 6, *交流*](# "Chapter 6. 交流")的[the section called “处理成长”](# "处理成长")讨论了如何划分多个频道)。当你的项目还年轻时,应该只有一个频道,所有人在一起讨论。之后,随着用户到开发者比率增加,也就有必要分开单独的频道。 人们如何知道所有的已有频道,以及在哪个频道讨论?他们何时交谈,如何知道当地的习惯? 答案是通过设定*频道主题*告诉他们。[[18](#)]频道主题是每个用户在进入频道时看到的一些信息。可以给每个新人一份快速指南,指出更进一步的信息。例如: ~~~ You are now talking on #svn Topic for #svn is Forum for Subversion user questions, see also http://subversion.tigris.org/. || Development discussion happens in #svn-dev. || Please don't paste long transcripts here, instead use a pastebin site like http://pastebin.ca/. || NEWS: Subversion 1.1.0 is released, see http://svn110.notlong.com/ for details. ~~~ 内容很扼要,但是它告诉新人所必需知道的东西。它精确的说明频道的目的,提供了项目的主页(如果某人是游荡近来,而并非从项目网页过来),提及相关的频道,并给出一些指导。 **粘贴站点** 一个IRC频道是一个共享空间:任何人可以看到每个人的谈话。通常情况下,这是一个好事情,这允许人们在感到能做出贡献时跳入谈话,也可以通过观察学习。但如果某人希望一次提供一大段信息时,例如调试会话脚本,因为会输出很多行,会扰乱其他人的对话。 解决办法是使用*pastebin*或*pastebot*站点。当向某人要求一大块数据时,告知他们不要粘贴到频道中,而是去(例如)[http://pastebin.ca/](http://pastebin.ca/),将数据粘到那里的表单中,并在IRC频道中告知结果的URL。任何人可以访问这个URL并察看数据。 现在有许多免费的粘贴站点,完整地例子太多了,这里是我曾经用过的:[http://www.nomorepasting.com/](http://www.nomorepasting.com/)、[http://pastebin.ca/](http://pastebin.ca/)、[http://nopaste.php.cd/](http://nopaste.php.cd/)、[http://rafb.net/paste/](http://rafb.net/paste/)、[http://sourcepost.sytes.net/](http://sourcepost.sytes.net/)、[http://extraball.sunsite.dk/notepad.php](http://extraball.sunsite.dk/notepad.php)、和[http://www.pastebin.com/](http://www.pastebin.com/)。 ### 机器人(Bots) 许多面向技术的IRC频道有一个非人的成员,叫做*机器人(bot)*,它可以对特定的命令返回信息。通常情况下,这个机器人就像频道中的其它成员一样,命令是通过谈话传递给的机器人。例如: ~~~ <kfogel> ayita: learn diff-cmd = http://subversion.tigris.org/faq.html#diff-cmd <ayita> Thanks! ~~~ 这是告诉机器人(以ayita登入了频道)记住以特定的URL回答“diff-cmd”的提问,现在其他用户可以向ayita讯问,并获取diff-cmd的信息: ~~~ <kfogel> ayita: tell jrandom about diff-cmd <ayita> jrandom: http://subversion.tigris.org/faq.html#diff-cmd ~~~ 通过速记法可以得到同样的结果: ~~~ <kfogel> !a jrandom diff-cmd <ayita> jrandom: http://subversion.tigris.org/faq.html#diff-cmd ~~~ 准确的命令集和行为方式各不相同。以上的例子来自`ayita`([http://hix.nu/svn-public/alexis/trunk/](http://hix.nu/svn-public/alexis/trunk/)),通常在freenode的`#svn`运行着一个实例。其它机器人包括Dancer([http://dancer.sourceforge.net/](http://dancer.sourceforge.net/))和Supybot([http://supybot.com/](http://supybot.com/))。请注意,运行机器人无需服务器的权限。一个机器人就是一个客户端程序;任何人可以设置一个并监听特定的服务器/频道。 如果你的频道一次次的得到同样的问题,我强烈推荐你设置一个机器人。只有一小部分频道用户会获得需要处理机器人的专业技能,而这些用户会回答不成比例的大部分问题,因为机器人可以帮助他们有效率的回复。 ### 归档IRC 尽管可以将IRC频道发生的任何事情都归档,但这不是必要的。IRC对话名义上是公开的,但是许多用户认为这是非正式的,半私密的对话。用户会对语法不是很在意,而且经常会表达意见(例如,关于其它软件或其他程序员),这些都不是他们希望永久保存归档的。 当然,有时候*摘要*必须能够保存。大多数IRC客户端可以在用户要求的情况下记录对话到一个文件,如果不能,人们也可以仅仅是将对华拷贝和粘贴到固定的论坛(经常是bug跟踪系统)中。但是不加区分的归档所有内容会让某些用户不悦。如果你需要归档所有的事情,请确认你已经在频道主题明确说明,并给出了归档的URL。 [[17](#)] 没有要求或期望你能够为Freenode捐献,但是如果你或你的项目能够负担,请考虑贡献一下。他们在美国有一个免税的慈善团体,提供有价值的服务。 [[18](#)] 使用`/topic`命令设定频道主题。IRC频道中的所有的命令以“`/`”开头。如果你不熟悉IRC的使用和管理,可以看[http://www.irchelp.org/](http://www.irchelp.org/);而[http://www.irchelp.org/irchelp/irctutorial.html](http://www.irchelp.org/irchelp/irctutorial.html)是一份完美的教程。