7
votes

Est tordé de bien?

Je continue d'entendre tout ce battage médiatique à propos de Twisted pour Python, mais je viens de le trouver facilement déroutant. Que pensez-vous être plus simple à utiliser? Des prises simples ou la mise en œuvre torsadée?


1 commentaires

Sockets simples? Mise en œuvre tordue.


4 Réponses :


3
votes

Je dirais que c'est bon. Il suffit de regarder Cette page de projets utilisant Twisted .


0 commentaires

4
votes

tordu est un cadre de concurrence. Il vous permet de jongler des tâches multiples dans une application sans utiliser de threads / processus. Cela utilise-t-il un système asynchrone entraîné par événement et est particulièrement bon avec les applications de réseautage. Le code asynchrone a généralement tendance à être un peu de «différent» des trucs normaux, car le flux n'est pas explicite et que les choses se produisent en fonction des événements externes. Cela peut être déroutant mais ça marche. Twisted est sans doute la bibliothèque de la simultanée Async Python la plus mature ASYNC, donc si c'est ce que vous envisagez de faire, Twisted est une bonne chose à parier.

"prises simples" comme vous les mettez comme des primitives de communication et pas vraiment comparables à tordues. Qu'essayez-vous de faire?


0 commentaires

29
votes

Je tiens ce que j'ai écrit dans Python en un mot (2e édition p. 540):

torsadé comprend un puissant et de haut niveau Composants tels que serveurs Web, utilisateur Systèmes d'authentification, serveurs de messagerie et clients, messagerie instantanée, ssh Clients et serveurs, un serveur DNS et client, et ainsi de suite, ainsi que le Infrastructure de niveau inférieur sur laquelle Tous ces composants de haut niveau sont construit. Chaque composant est fortement évolutif et facilement personnalisable, et Tous sont intégrés à l'interopération doucement. C'est un hommage au pouvoir de python et à l'ingéniosité de Les développeurs de Twisted qui peuvent tellement être accompli dans les deux mégaoctets ' valeur de téléchargement.

Demandant si ce cadre incroyablement riche et puissant est "plus simple à utiliser" que "les prises simples" est un peu comme demander si une voiture est "plus simple à utiliser" qu'une vis: quelle bizarre Question!

Les voitures sont construites avec vis (entre autres) et ne peuvent pas être aussi "simples à utiliser" - juste parce qu'une vis ne fait si peu, une voiture fait tellement. < / p>

Mais si vous voulez aller de A à B (et éventuellement transporter des passagers, des bagages, des animaux de compagnie, ...) Une vis ne vous aidera pas beaucoup (à moins que vous n'alliez essentiellement à construire une voiture à partir de zéro ;-) .

Bien sûr, les voitures ne sont pas le seul moyen de passer de A à B, tout aussi torsadé, ce n'est pas le seul moyen de construire des systèmes centrés sur le réseau dans Python. Un cheval et une buggy (comme Asyncore ) est pittoresque et amusant, bien que moins pratique; un train à grande vitesse (comme Tornado ) peut être plus facile à utiliser et au moins aussi rapide, bien que beaucoup plus flexible ; Et pour diverses fins spécialisées, vous préférerez peut-être toutes sortes d'autres moyens de transport, des jocycles aux navires de croisière (comme, en Python et pour la mise en réseau, toutes sortes d'autres forfaits, de paramiko à dnspython ) - tous incluront les vis dans le cadre de leurs composants (comme, toutes incluront toutes les prises dans le cadre de la façon dont ils sont construits), aucun ne sera aussi facile à utiliser que «des prises simples», chacune (dans sa propre gamme d'applicabilité) fera beaucoup plus pour vous que "des prises simples" sur leur propre pouvant éventuellement.

torsadé est un excellent choix dans un vaste nombre de cas, souvent le meilleur lorsque vous devez intégrer de multiples aspects de la fonctionnalité et / ou implémenter un protocole pour lequel il n'existe pas de solution entièrement emballée. Les "prises simples" ne sont pas - ce ne sont pas un composant de bas niveau sur lequel la fonctionnalité supérieure, des niveaux de niveau supérieur sont construits, et il y a rarement une bonne raison (à l'exception de l'apprentissage, bien sûr) de "rouler le vôtre "Composants de niveau supérieur construits" à partir de zéro "sur des sockets (plutôt que de choisir des puissants, bien construits existants) - comme si vous étiez rarement justifié dans la construction de votre propre ordinateur à partir de transistors, de résistances, de condensateurs, etc. plutôt que de choisir des circuits intégrés appropriés; -).


6 commentaires

Eh bien, je veux juste apprendre. C'est pourquoi j'ai demandé: B Je veux apprendre à construire la voiture! : P


J'espère qu'il y a une "tordu en un mot". J'aime le livre "Python en bref" et "Python Cookbook". Je ne peux toujours pas écrire du code manifestement avec TwistedMatrix, même finir de lire le livre tordu actuel et le document tordu ...


@Jake, apprendre à construire des voitures est une merveilleuse entreprise. Malheureusement, il n'y a pas vraiment de bon manuel pour celui-ci (pas une seule base sur Python, au moins), mais vous pouvez progresser progressivement en étudiant les prises, les protocoles TCP / IP, les protocoles de niveau supérieur sur eux, la mise en œuvre de certains protocoles dans la norme Python. Bibliothèque (vanille ordinaire, sans multitâche), puis threading vs async systems, asyncore, tordu (dans chaque cas, mélange "Comment puis-je l'utiliser pour la tâche x" avec "comment est-ce implémenté en interne et pourquoi ont-ils choisi cette décision de conception" ). Long voyage en effet, mais grand apprentissage à venir! -)


@sunqiang, je ne connais aucun livre au-delà des "essentiels" très orientés par tâche que je suppose est ce que vous entendez par "le livre tordu actuel", Amazon.com/GP/Product/... - Les mentions de torsadées dans les 2nd Eds de noix et de cuisine sont malheureusement trop courtes pour vous apprendre à des détails substantiels (l'espace est toujours un tyran).


@Alex, oui, c'est le livre référé. Il y a plusieurs années, la plupart des livres liés à Python sont «Général» Python Book offrant une couverture complète. Maintenant, les jours Python sont plus populaires, certains livres de python spécialisés ne couvrent que des sujets de partie. Je pense que c'est une bonne chose à la communauté python (et à moi aussi bien sûr).


Jake, si vous voulez "apprendre à construire la voiture", il serait peut-être bon que vous travailliez sur torsadé elle-même, plutôt que de faire quelque chose avec tordu? Il y a toujours plus à faire (voir << a href = "http://twistedmatrix.com/trac/report/1>" rel = "nOfollow noreferrer"> twistedmatrix.com/trac/report/1> ) Et nous sommes toujours disponibles sur #Twisted sur le réseau FreeNode IRC pour vous aider à démarrer.



0
votes

Twisted a été publié pour la première fois en 2002 et a considérablement gonflé depuis lors; (Il s'agit d'un sujet délicat et de nombreuses personnes affirment que c'est bien et nécessaire dans un cadre) - Cependant, pour une personne qui s'approche du projet, elle peut être un peu intimidante. Il existe toutefois des options si vous poussez vers des cadres asynchrones. J'ai trouvé ce blog pour être intéressant: http://nichol.as/asynchronique-Servers-in- Python . Benchmarks de côté, les échantillons de code seuls sont assez intéressants à comparer.


1 commentaires

Twisted est lourd, je suis d'accord mais non gonflé. C'est un sentiment très libérateur lorsque vous recherchez quelque chose et que vous le trouvez à l'intérieur tordus - déjà mis en œuvre, testé et prêt à partir.