扭曲有什么好处?

Jak*_*ake 7 python sockets twisted

我一直听到关于Twisted for python的所有这些炒作,但我发现它简直令人困惑.你认为什么更简单易用?简单的插座或实现扭曲?

Ale*_*lli 28

我支持我在Python中用Nutshell编写的内容(第2版,第540页):

Twisted包括强大的高级组件,如Web服务器,用户身份验证系统,邮件服务器和客户端,即时消息,SSH客户端和服务器,DNS服务器和客户端等,以及较低级别的基础架构,所有这些高级组件都是构建的.每个组件都具有高度可扩展性且易于定制,并且所有组件都集成在一起以便顺利地进 这是对Python的强大功能以及Twisted开发人员的独创性的致敬,可以在2兆字节的下载量内实现这一目标.

询问这个令人难以置信的丰富而强大的框架是否比"简单套接字"更"易于使用"有点像询问汽车是否"比使用螺丝更简单":这是一个奇怪的问题!

汽车正在用螺钉(除其他事项外),可不能像"简单易用" -仅仅因为一个螺丝做这么少,有车不那么多.

但是如果你想从A到B(并且可能载着乘客,行李,宠物......)螺丝也没什么用(除非你基本上要从头开始制造汽车;-).

当然,汽车并不是从A到B的唯一途径,就像扭曲不是在Python中构建以网络为中心的系统的唯一方式一样.马和马车(如asyncore)古朴而有趣,虽然不太实用; 高速列车(如龙卷风)可能更容易使用,至少同样快,但灵活性较差; 而且出于各种专业目的,您可能更喜欢各种其他交通工具,从单轮脚踏车到游轮(如Python,网络,各种其他包装,从paramikodnspython)) - 所有这些都包括螺丝作为其组件的一部分(例如,所有将包括插座作为它们的构建方式的一部分),没有一个将像"简单套接字"一样容易使用,每个(在它自己的)适用范围)比你自己的"简单套接字"可能做的更多.

Twisted在许多情况下,这是一个很好的选择,当您需要集成功能的多个方面和/或实现某些没有完全打包解决方案的协议时,这通常是最好的选择."简单套接字"不是 - 它们只是一个低级组件,其中构建了更高功能,更高级别的组件,并且很少有一个很好的理由(除了学习,当然)"滚动自己"在插座顶部"从头开始构建更高级别的组件(而不是选择功能强大,构建良好的现有组件) - 就像你很少有理由用晶体管,电阻器,电容器等构建自己的计算机一样,而不是采取适当的集成电路;-).