当前位置:  开发笔记 > 编程语言 > 正文

为什么需要Twisted?

如何解决《为什么需要Twisted?》经验,为你挑选了3个好方法。

我一直在使用扭曲的框架大约一个星期(更多是因为好奇而不是必须使用它)并且它在进行事件驱动的异步网络编程时非常有趣.

但是,有些事我无法理解.扭曲的文档开始于

Twisted是一个非常灵活的框架,可以编写功能强大的服务器.

我的疑问是: - 为什么我们需要这样一个事件驱动的库来编写功能强大的服务器,因为那里已经有非常高效的各种服务器实现了?

当然,在编写这个事件驱动的I\O库时,扭曲的开发人员必须考虑的不止一些具体实现.那些是什么?为什么要扭曲?



1> Jean-Paul Ca..:

在对另一个答案的评论中,你说"每个图书馆都应该......"."假设"由谁?使用案例肯定是确定要求的好方法,但这不是唯一的方法.同时讨论所有Twisted的用例也没有意义.没有用例证明Twisted中的每个API都是合理的.有数百或数千个不同的用例,每个用例都证明Twisted的细分较小或较大.这些经历了Twisted开发的多年来,并没有尝试保留它们的列表.我可以说我在扭曲名称的一部分工作,所以我会有一个主题,我当时正在介绍一篇论文.我在Twisted Conch中实现了vt102解析器,因为我迷恋终端并想要一个涉及它们的有趣项目.我在Twisted Mail中实现了IMAP4支持,因为我在一家开发邮件服务器的公司工作,该邮件服务器需要比当时提供的任何其他IMAP4服务器更严格地控​​制邮件存储.

因此,正如您所看到的,Twisted的不同部分是出于各种不同的原因编写的(我只给出了我自己的原因的例子,而不是任何其他开发人员的原因).

从长远来看,编写程序的最初原因通常并不重要.现在编写代码:Twisted Names现在为互联网上的许多域名运行DNS,vt102解析器帮助我找到了工作,推动IMAP4开发的公司已经停业.真正重要的是你现在可以用代码做些什么.正如MattH指出的那样,由此产生的过多功能导致了一个库(可能是唯一的)解决了一系列有趣的问题.



2> MattH..:

为什么我们需要这样一个事件驱动的库来编写功能强大的服务器,因为那里已经有非常高效的各种服务器实现?

所以解释:你无法想象为什么有人在染色产品已经存在时需要一个工具包?

我猜你从来不需要敲响协议网关,例如
- 通过unix套接字按需编写md5本地文件的守护进程
- 使用udp查询一个软件并通过http公开统计信息.

我在几分钟内就SO的问题为第二个例子写了一个小概念验证.没有扭曲,我不能那样做.

你看过:ProjectsUsingTwisted吗?


有些中间件库没有特定的实现和/或预定用途,并且应该足够通用,以便其他应用程序使用中间件,而不是直接使用套接字或更低级别的其他东西.

3> Jacob Oscars..:

更多关于'为什么':( 免责声明:我不是Twisted的开发者),有必要考虑Twisted的高龄(相对于Python).当写入Twisted时,没有足够强大的非阻塞网络/事件驱动库围绕反应器模式编写(几乎每个人都在使用线程).Twisted的初始用例是一款大型多人游戏,虽然这款游戏的具体细节似乎有些丢失.

自从@ MattH的链接提示以来,用Python编写的大量各种网络服务器基于Twisted.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有