Apa keuntungan menggunakan pustaka C ++ Boost? [Tutup]
123
Jadi, saya telah membaca dan tampaknya perpustakaan Boost banyak digunakan dalam praktiknya (meskipun tidak di toko saya). Kenapa ini? dan apa yang membuatnya begitu indah?
Ini menyediakan berbagai fungsionalitas platform agnostik yang terlewatkan oleh STL.
Ini adalah pelengkap STL daripada pengganti.
Banyak pengembang Boost berada di komite standar C ++. Faktanya, banyak bagian Boost dianggap disertakan dalam pustaka standar C ++ berikutnya.
Itu didokumentasikan dengan baik.
Its lisensi memungkinkan dimasukkan dalam open-source dan closed-source proyek.
Fitur-fiturnya biasanya tidak bergantung satu sama lain sehingga Anda hanya dapat menghubungkan bagian-bagian yang Anda butuhkan. [ Komentar Luc Hermitte ]
Selain itu, kami juga dapat mengatakan bahwa sub-library boost dapat digunakan secara independen satu sama lain (kecuali beberapa library inti). Ini bukan karena kita menggunakan boost.shared_ptr sehingga kita harus menggunakan boost.ublas, misalnya.
Luc Hermitte
Saya senang melihat jawaban yang terlihat seperti entri ensiklopedia. Sangat mudah untuk mendapatkan material dalam jumlah besar. +1
Tyler Smith
Melalui tampaknya setiap perpustakaan bergantung pada MPL ...
Viktor Sehr
Boost memungkinkan untuk menulis sekali, pengembangan dan penggunaan lintas platform, benar?
FilBot3
Apakah ini gratis untuk penggunaan komersial?
Mayur
39
Dari halaman beranda:
"... salah satu proyek perpustakaan C ++ yang sangat dihormati dan dirancang dengan ahli di dunia." - Herb Sutter dan Andrei Alexandrescu, Standar Pengkodean C ++
"Item 55: Biasakan diri Anda dengan Boost." - Scott Meyers, C ++ Efektif, Edisi ke-3.
"Solusi yang jelas bagi sebagian besar pemrogram adalah menggunakan pustaka yang menyediakan platform elegan dan efisien yang independen terhadap layanan yang dibutuhkan. Contohnya adalah PENINGKATAN ..." - Bjarne Stroustrup, Abstraksi, pustaka, dan efisiensi dalam C ++
Jadi, ini adalah rangkaian pustaka yang banyak digunakan dan diterima, tetapi mengapa Anda membutuhkannya?
Singkatnya, Produktivitas. Penggunaan pustaka berkualitas tinggi seperti Boost mempercepat pengembangan awal, menghasilkan lebih sedikit bug, mengurangi reinvention-of-the-wheel, dan memangkas biaya pemeliharaan jangka panjang. Dan karena pustaka Boost cenderung menjadi standar de facto atau de jure, banyak programmer yang sudah terbiasa dengannya.
Sepuluh pustaka Boost disertakan dalam TR1 Pustaka Standar C ++, dan juga dijadwalkan untuk standardisasi penuh nanti. Lebih banyak library Boost sedang disiapkan untuk TR2. Menggunakan pustaka Boost memberi organisasi permulaan dalam mengadopsi teknologi baru.
Banyak organisasi sudah menggunakan program yang diimplementasikan dengan Boost, seperti Adobe Acrobat Reader 7.0.
Beberapa kelas Boost sangat berguna (shared_ptr), tetapi menurut saya kelas tersebut agak gila dengan ciri dan konsep di Boost. Waktu kompilasi dan ukuran biner yang besar benar-benar gila dengan Boost, seperti halnya dengan kode template-heavy. Harus ada keseimbangan. Saya tidak yakin apakah Boost telah menemukannya.
Anda lupa bahwa Boost bukanlah satu perpustakaan tetapi banyak. Selain itu, Anda harus mengimbangi ukuran besar dan waktu kompilasi terhadap fungsionalitas tersebut. Ciri dan konsep sangat membantu dalam pengembangan. Waktu kompilasi memang harga kecil untuk membayarnya.
Konrad Rudolph
8
Ia menambahkan pustaka yang memungkinkan pendekatan yang lebih modern untuk pemrograman C ++.
Dalam pengalaman saya, banyak programmer C ++ sebenarnya adalah programmer C ++ awal tahun 1990-an, cukup banyak menulis kelas C ++, tidak banyak yang menggunakan obat generik. Pendekatan yang lebih modern menggunakan generik untuk menyusun perangkat lunak bersama-sama dengan cara yang lebih mirip bahasa dinamis, namun pada akhirnya Anda masih mendapatkan pemeriksaan / kinerja jenis. Agak jelek untuk dilihat. Tapi begitu Anda mengatasi masalah sintaks itu benar-benar bagus. Boost memberi Anda banyak alat yang Anda butuhkan untuk menulis sesuatu dengan mudah. pointer pintar, fungsi, lambda, bindings, dll. Kemudian ada pustaka pendorong yang memanfaatkan cara baru penulisan C ++ ini untuk menyediakan hal-hal seperti jaringan, regex, dll ...
jika Anda menulis banyak for loop, atau objek fungsi hand rolling, atau melakukan manajemen memori, maka Anda harus memeriksa boost out.
BOOST adalah koleksi perpustakaan yang memenuhi kebutuhan umum untuk banyak proyek C ++. Umumnya, mereka memprioritaskan ketepatan, usabilitas, portabilitas, kinerja run-time, dan efisiensi ruang di atas keterbacaan kode implementasi BOOST, atau terkadang waktu kompilasi. Mereka cenderung tidak mencakup persyaratan fungsional tingkat tinggi yang lengkap (misalnya kerangka aplikasi), dan sebaliknya (untungnya) menawarkan blok penyusun yang dapat lebih bebas digabungkan tanpa mendikte atau mendominasi desain aplikasi.
Alasan penting untuk mempertimbangkan penggunaan BOOST meliputi:
sebagian besar perpustakaan telah diuji dan dirancang dengan cukup baik: mereka umumnya mendapatkan tinjauan yang cukup baik oleh beberapa pemrogram yang sangat baik, dibandingkan dengan orang-orang dengan solusi buatan rumah di ruang masalah yang sama, dan cukup banyak digunakan untuk mengumpulkan umpan balik dunia nyata yang luas
itu sudah ditulis dan solusi Anda mungkin belum
itu cukup portabel (tetapi itu bervariasi per perpustakaan)
lebih banyak orang di komunitas C ++ yang akan membantu Anda dengan kode Anda
BOOST sering kali merupakan tempat pembuktian untuk pengenalan ke Standar C ++, jadi Anda akan memiliki lebih sedikit pekerjaan yang harus dilakukan dalam menulis ulang kode Anda agar kompatibel dengan Standar masa depan tanpa BOOST
karena permintaan komunitas, vendor kompilator lebih cenderung untuk menguji dan bereaksi terhadap masalah kebenaran dengan penggunaan BOOST
keakraban dengan pustaka penguat akan membantu Anda melakukan pekerjaan serupa pada proyek lain, mungkin di perusahaan lain, di mana kode apa pun yang mungkin Anda tulis sekarang mungkin tidak tersedia untuk digunakan kembali
Tingkatkan pada dasarnya sinopsis dari Standar nantinya, selain itu dengan semua tinjauan sejawat dan penggunaan yang didapat Boost, Anda dapat yakin bahwa Anda mendapatkan kesepakatan yang cukup bagus untuk dependensi Anda.
Namun kebanyakan toko tidak menggunakan Boost, karena ini merupakan Ketergantungan Eksternal. Dan dalam kenyataannya, mengurangi ketergantungan eksternal juga sangat penting.
Jawaban:
Boost digunakan secara luas karena:
sumber
Dari halaman beranda:
Jadi, ini adalah rangkaian pustaka yang banyak digunakan dan diterima, tetapi mengapa Anda membutuhkannya?
Jika Anda membutuhkan:
dan lebih banyak lagi saat Anda membuat kode dalam C ++, lihat Boost .
sumber
Karena mereka menambahkan banyak hal yang hilang ke pustaka standar, sehingga beberapa di antaranya termasuk dalam standar.
Mendorong orang tidak berbohong:
sumber
Beberapa kelas Boost sangat berguna (shared_ptr), tetapi menurut saya kelas tersebut agak gila dengan ciri dan konsep di Boost. Waktu kompilasi dan ukuran biner yang besar benar-benar gila dengan Boost, seperti halnya dengan kode template-heavy. Harus ada keseimbangan. Saya tidak yakin apakah Boost telah menemukannya.
sumber
Ia menambahkan pustaka yang memungkinkan pendekatan yang lebih modern untuk pemrograman C ++.
Dalam pengalaman saya, banyak programmer C ++ sebenarnya adalah programmer C ++ awal tahun 1990-an, cukup banyak menulis kelas C ++, tidak banyak yang menggunakan obat generik. Pendekatan yang lebih modern menggunakan generik untuk menyusun perangkat lunak bersama-sama dengan cara yang lebih mirip bahasa dinamis, namun pada akhirnya Anda masih mendapatkan pemeriksaan / kinerja jenis. Agak jelek untuk dilihat. Tapi begitu Anda mengatasi masalah sintaks itu benar-benar bagus. Boost memberi Anda banyak alat yang Anda butuhkan untuk menulis sesuatu dengan mudah. pointer pintar, fungsi, lambda, bindings, dll. Kemudian ada pustaka pendorong yang memanfaatkan cara baru penulisan C ++ ini untuk menyediakan hal-hal seperti jaringan, regex, dll ...
jika Anda menulis banyak for loop, atau objek fungsi hand rolling, atau melakukan manajemen memori, maka Anda harus memeriksa boost out.
sumber
BOOST adalah koleksi perpustakaan yang memenuhi kebutuhan umum untuk banyak proyek C ++. Umumnya, mereka memprioritaskan ketepatan, usabilitas, portabilitas, kinerja run-time, dan efisiensi ruang di atas keterbacaan kode implementasi BOOST, atau terkadang waktu kompilasi. Mereka cenderung tidak mencakup persyaratan fungsional tingkat tinggi yang lengkap (misalnya kerangka aplikasi), dan sebaliknya (untungnya) menawarkan blok penyusun yang dapat lebih bebas digabungkan tanpa mendikte atau mendominasi desain aplikasi.
Alasan penting untuk mempertimbangkan penggunaan BOOST meliputi:
Perpustakaan dijelaskan dalam satu atau dua baris di sini: http://www.boost.org/doc/libs/ .
sumber
Karena pustaka standar C ++ belum sepenuhnya lengkap .
sumber
Apa pun yang melibatkan Kevlin Henney harus diperhatikan.
sumber
Tingkatkan pada dasarnya sinopsis dari Standar nantinya, selain itu dengan semua tinjauan sejawat dan penggunaan yang didapat Boost, Anda dapat yakin bahwa Anda mendapatkan kesepakatan yang cukup bagus untuk dependensi Anda.
Namun kebanyakan toko tidak menggunakan Boost, karena ini merupakan Ketergantungan Eksternal. Dan dalam kenyataannya, mengurangi ketergantungan eksternal juga sangat penting.
sumber
Boost adalah untuk C ++ seperti .NETFramework untuk C #, tapi mungkin dalam skala yang lebih kecil.
sumber
Saya menggunakan perpustakaan filesystem keluar sedikit, dan boost :: shared_ptr cukup bagus. Saya mendengarnya melakukan hal-hal lain juga.
sumber