Chỉnh sửa Trở lại câu hỏi này sau một vài năm
Tiếp tục sử dụng ngày càng nhiều thư viện boost, tôi nghĩ rằng tôi nên cập nhật câu hỏi này để đưa ra một trường hợp chắc chắn về lý do tại sao bạn nên sử dụng boost khi mô tả sản phẩm phù hợp với chức năng mong muốn của bạn. Điều này sẽ thuyết phục ngay cả những người nói nay. Tải về openSSL, thử tạo ứng dụng khách và máy chủ với nó. Bây giờ hãy thử và làm cho nó hoạt động trên mọi nền tảng. Sau đó, tải xuống và sử dụng boost :: asio :: ssl để tạo cùng một ứng dụng. Nếu bạn không tin rằng boost là nơi thích hợp để tìm kiếm mã sạch, được tối ưu hóa tốt, được đánh giá ngang hàng, mã đa nền tảng, bài tập đơn giản này sẽ chuyển đổi bạn.
Phiên bản Tl; dr:
Theo tôi, bạn không thấy hàng tấn công ty phát triển quy mô nhỏ hoặc vừa sử dụng boost vì đó là một con thú hoang to lớn và mạnh mẽ không dễ thuần hóa và về cơ bản bạn sẽ tự mình cố gắng học cách để dùng nó. Tài liệu này thiếu một vài cách (xem phiên bản dài) và "cộng đồng" xung quanh dự án dường như bị thiếu, phân tán hoặc không hoạt động (so với các dự án khác).
Phiên bản rất dài:
Tôi nhận ra rằng đã có một câu trả lời được chấp nhận nhưng vì một người thực sự sử dụng boost trong gần như mọi dự án tôi làm, tôi nghĩ tôi sẽ đăng câu trả lời.
Tôi nhớ khi lần đầu tiên tôi được chọc ngoáy và thật lòng tôi không có ý tưởng gì về những gì đang xảy ra. Boost không phải là tài liệu rất tốt ở tất cả. Mọi người có thể không đồng ý với tôi về điều đó tôi chắc chắn bởi vì có rất nhiều đoạn mã ví dụ và một nhận xét, nhưng tất cả đều rất lạnh lùng và mơ hồ cũng như khó điều hướng.
Ngoài ra, có vẻ khó tìm thấy bất kỳ nơi nào bạn cảm thấy như bạn đã tìm thấy "cộng đồng" xung quanh dự án. Trong thực tế, cộng đồng dường như không tồn tại, hoặc du mục. Thật không may, ngay cả danh sách gửi thư của họ đã bị troll bởi rất nhiều trang web đỉa mà bạn có thể đi xuống lỗ thỏ này luôn luôn quay trở lại nơi bạn bắt đầu.
Hai yếu tố này làm cho việc học cách sử dụng các thư viện boost là một nhiệm vụ khá khó khăn. Ngay cả khi các kỹ thuật sử dụng boost không quá phức tạp, thì đó là một bộ thư viện đồ sộ và nhìn chằm chằm xuống khi tất cả những gì bạn được trang bị là một vài đoạn mã và các phần rải rác của danh sách gửi thư từ các góc tối nhất của internet ... Chà, bạn hiểu ý rồi đó.
Tôi đã tìm hiểu về việc tăng cường xung quanh phiên bản 1.45 và giờ chỉ có ở phiên bản 1.52 / 1.53 mà tôi cảm thấy đủ thoải mái để sử dụng nó trong sản xuất. Có rất nhiều thứ để làm quen và ghi nhớ, ngay cả những điều đơn giản như cách bạn định cấu hình tăng và ghi nhớ cấu hình đó, bởi vì cách các thư viện được xây dựng và chức năng có thể thay đổi tùy theo sở thích của bạn vào thời gian biên dịch do cách mọi thứ có thể tùy chỉnh là
Tuy nhiên , đừng nhầm lẫn , một khi bạn có thể tăng sức mạnh, bạn đã có được một vũ khí mạnh mẽ để nhanh chóng xây dựng các chương trình đa nền tảng vững chắc. Chỉ lấy boost::asio
ví dụ. Bạn có thể viết một máy chủ web không đồng bộ đa nền tảng vững chắc, có khả năng mở rộng và mạnh mẽ chỉ trong vài trăm dòng. Tôi đã viết nhiều máy khách, máy chủ, proxy, v.v.
Như những người khác đã chỉ ra, các công ty lớn hơn thường bị mắc kẹt với những thứ di sản hoặc muốn tự lăn lộn mà tôi hoàn toàn hiểu được. Ngoài ra còn có điều thực sự ngớ ngẩn mà tôi đã nghe nói và gặp phải khi các nhà phát triển và quản lý dự án cấm sử dụng boost vì nó "quá lớn". Tôi đoán là họ tin rằng boost là 1 thư viện duy nhất hoặc họ chưa bao giờ nghe nói về BCP .
Vì sao tôi chọn sử dụng boost
Tôi muốn nói rằng tôi sử dụng nó bởi vì như bạn ngụ ý trong câu hỏi của bạn, đó là "thư viện" C ++. Boost được xem trong thế giới C ++ như con dao quân đội của những thứ mà cuối cùng bạn sẽ cần sử dụng. Vì vậy, ý tưởng là nếu có nhu cầu, cần có một phiên bản có hiệu suất cao và khả năng di động của nó. Các công ty lớn góp phần thúc đẩy , những người có học thức cao với sơ yếu lý lịch ấn tượng đóng góp và duy trì nó , và khi một tiêu chuẩn mới của C ++ đang được phát triển, mọi người thường tìm cách thúc đẩy để xem những phần nào của nó sẽ trở thành tiêu chuẩn C ++.
Vì vậy, nếu tôi cần thêm một số chức năng có thể có thư viện hiện có, thì nơi đầu tiên tôi sẽ tìm thấy là vì tôi khá an toàn khi cá cược rằng nó được tối ưu hóa tốt, di động, nó sẽ được hỗ trợ và duy trì cho một thời gian rất dài và các lỗi sẽ được tìm thấy và xử lý. Trong thế giới nguồn mở, những phẩm chất đó có thể rất khó trở thành hiện thực.