Tôi ngày càng nghe thấy rằng các nền tảng khung xoắn của Python và các khung công tác khác đều nhạt khi so sánh.
Ai có thể làm sáng tỏ điều này và có thể so sánh Twisted với các khung lập trình mạng khác.
Tôi ngày càng nghe thấy rằng các nền tảng khung xoắn của Python và các khung công tác khác đều nhạt khi so sánh.
Ai có thể làm sáng tỏ điều này và có thể so sánh Twisted với các khung lập trình mạng khác.
gevent
là một thay thế cho Twisted cho "thầy bói" ứng dụng blip.tv/file/4883016
Câu trả lời:
Có rất nhiều khía cạnh khác nhau của Twisted mà bạn có thể thấy thú vị.
Twisted bao gồm rất nhiều và rất nhiều triển khai giao thức, có nghĩa là nhiều khả năng sẽ có một API mà bạn có thể sử dụng để nói chuyện với một số hệ thống từ xa (máy khách hoặc máy chủ trong hầu hết các trường hợp) - có thể là HTTP , FTP , SMTP, POP3, IMAP4 , DNS , IRC, MSN, OSCAR, XMPP / Jabber , telnet, SSH , SSL, NNTP hoặc một trong những giao thức thực sự ít người biết đến như Finger, hoặc danh tính, hoặc một trong những giao thức xây dựng giao thức cấp thấp hơn như netstrings của DJB , đơn giản các giao thức hướng dòng , hoặc thậm chí một trong các giao thức tùy chỉnh của Twisted như Perspective Broker (PB) hoặcGiao thức nhắn tin không đồng bộ (AMP) .
Một điều thú vị khác về Twisted là trên đầu các triển khai giao thức cấp thấp này, bạn sẽ thường tìm thấy một phần trừu tượng dễ sử dụng hơn. Ví dụ: khi viết một máy chủ HTTP, Twisted Web cung cấp một bản tóm tắt "Tài nguyên" cho phép bạn xây dựng cấu trúc phân cấp URL từ các đối tượng Python để xác định cách các yêu cầu sẽ được phản hồi.
Tất cả điều này gắn liền với các API hợp tác, chủ yếu là do không có chức năng nào trong số này được thực hiện bằng cách chặn trên mạng, vì vậy bạn không cần phải bắt đầu một chuỗi cho mọi hoạt động bạn muốn thực hiện . Điều này góp phần vào khả năng mở rộng mà mọi người thường gán cho Twisted (mặc dù đây là loại khả năng mở rộng chỉ liên quan đến một máy tính duy nhất, không phải loại khả năng mở rộng cho phép ứng dụng của bạn phát triển để sử dụng toàn bộ cụm máy chủ) vì Twisted có thể xử lý hàng nghìn các kết nối trong một luồng duy nhất, có xu hướng hoạt động tốt hơn việc có hàng nghìn luồng, mỗi luồng cho một kết nối duy nhất.
Tránh phân luồng cũng có lợi cho việc kiểm tra và gỡ lỗi (và do đó độ tin cậy nói chung). Vì không có chuyển đổi ngữ cảnh trước trong một chương trình dựa trên Twisted thông thường, bạn thường không cần lo lắng về việc khóa. Các điều kiện chạy đua phụ thuộc vào thứ tự của các sự kiện mạng khác nhau xảy ra có thể dễ dàng được kiểm tra đơn vị bằng cách mô phỏng các sự kiện mạng đó (trong khi mô phỏng chuyển đổi ngữ cảnh không phải là tính năng được cung cấp bởi hầu hết (bất kỳ?) Thư viện luồng).
Twisted cũng thực sự quan tâm đến chất lượng . Vì vậy, bạn sẽ hiếm khi tìm thấy các hồi quy trong bản phát hành Twisted và hầu hết các API chỉ hoạt động, ngay cả khi bạn không sử dụng chúng theo cách phổ biến (bởi vì chúng tôi cố gắng kiểm tra tất cả các cách bạn có thể sử dụng chúng, không chỉ thông thường đường). Điều này đặc biệt đúng đối với tất cả các mã được thêm vào Twisted (hoặc sửa đổi) trong 3 hoặc 4 năm qua, vì độ phủ 100% của đường truyền là yêu cầu thử nghiệm tối thiểu kể từ đó.
Một điểm mạnh khác thường bị bỏ qua của Twisted là mười năm tìm ra những điều kỳ quặc của nền tảng khác nhau . Có rất nhiều lỗi ổ cắm không có giấy tờ trên các nền tảng khác nhau và thật khó để biết rằng chúng thậm chí còn tồn tại chứ chưa nói đến việc xử lý chúng. Twisted đã dần dần bao phủ nhiều hơn và nhiều hơn nữa, và nó khá tốt ở thời điểm này. Các dự án trẻ hơn không có kinh nghiệm này, vì vậy họ bỏ lỡ các chế độ thất bại khó hiểu có thể chỉ xảy ra với người dùng của bất kỳ dự án nào bạn phát hành, không phải với bạn.
Tất cả những gì tôi nói, điều tôi thấy thú vị nhất về Twisted là đó là một thư viện khá nhàm chán cho phép tôi bỏ qua rất nhiều vấn đề thực sự nhàm chán và chỉ tập trung vào những điều thú vị và vui vẻ. :)
Vâng, nó có lẽ là theo khẩu vị.
Twisted cho phép bạn dễ dàng tạo các máy chủ / máy khách mạng hướng sự kiện mà không thực sự lo lắng về mọi thứ để hoàn thành việc này. Và nhờ Giấy phép MIT , Twisted có thể được sử dụng ở hầu hết mọi nơi. Nhưng tôi chưa thực hiện bất kỳ điểm chuẩn nào nên tôi không biết nó chia tỷ lệ như thế nào, nhưng tôi đoán khá ổn.
Một điểm cộng khác sẽ là Dự án xoắn , bạn có thể nhanh chóng xem cách triển khai hầu hết các máy chủ / dịch vụ mà bạn muốn.
Twisted cũng có một số tài liệu tuyệt vời , khi tôi bắt đầu với nó một vài tuần trước, tôi đã có thể nhanh chóng có được một nguyên mẫu hoạt động.
Khá mới với cảnh trăn xin vui lòng sửa cho tôi nếu tôi sai.