สถานะการรวมอย่างต่อเนื่อง
สาขา | GCC 7.5.0 และ 9.4.0 | วิชวลสตูดิโอ 2019 | |
---|---|---|---|
เสียงดังกราว 9.0 | วิชวลสตูดิโอ 2022 | ||
เอ็กซ์โค้ด 15.2 | MinGW-w64 | ||
เอ็กซ์โค้ด 15.4 | |||
ผู้เชี่ยวชาญ | |||
การพัฒนา |
ดาวน์โหลด
โครงการ C++ Micro Services คือชุดของส่วนประกอบสำหรับการสร้างแอปพลิเคชันเชิงบริการแบบโมดูลาร์และไดนามิก มันใช้ OSGi แต่ปรับแต่งมาเพื่อรองรับโซลูชันข้ามแพลตฟอร์มแบบเนทีฟ
การใช้รูปแบบและแนวคิดของ C++ Micro Services อย่างเหมาะสมนำไปสู่ระบบที่มีคุณสมบัติต่อไปนี้อย่างน้อยหนึ่งคุณสมบัติ:
ไม่มี ยกเว้นคอมไพเลอร์ C++ ที่เพียงพอล่าสุด การขึ้นต่อกันของไลบรารีบุคคลที่สามทั้งหมดรวมอยู่ด้วยและส่วนใหญ่จะใช้สำหรับรายละเอียดการใช้งาน
ไลบรารีใช้ภาษา C++17 และฟีเจอร์ไลบรารี และคอมไพล์บนแพลตฟอร์มที่แตกต่างกันมากมาย
เวอร์ชันคอมไพเลอร์ที่จำเป็นขั้นต่ำที่แน่นอนที่แนะนำ:
ไม่ใช่เวอร์ชันคอมไพเลอร์ขั้นต่ำที่แน่นอนทั้งหมดที่ได้รับการทดสอบ (ตามที่ระบุไว้) เราทดสอบและแนะนำคอมไพเลอร์ต่อไปนี้:
เวอร์ชัน CMake ที่จำเป็นขั้นต่ำที่แนะนำ:
สำหรับการสร้าง CI ทั้งหมดผ่าน GitHub Actions เวอร์ชัน CMake (และเวอร์ชันของซอฟต์แวร์อื่นๆ ที่ให้มา) ที่เราใช้จะถูกกำหนดโดยซอฟต์แวร์ที่ให้ไว้ในรันเนอร์ที่โฮสต์โดย GitHub
สำหรับข้อมูลเกี่ยวกับเวอร์ชันเฉพาะของซอฟต์แวร์ที่นักวิ่งใช้ โปรดดูแหล่งข้อมูลต่อไปนี้:
ด้านล่างนี้คือรายการคอมไพเลอร์/ระบบปฏิบัติการที่ทดสอบแล้ว:
โครงการ C++ Micro Services ได้รับการพัฒนาครั้งแรกที่ศูนย์วิจัยโรคมะเร็งแห่งเยอรมนี ซอร์สโค้ดของมันโฮสต์เป็นโครงการ GitHub ดูไฟล์ลิขสิทธิ์ในไดเรกทอรีระดับบนสุดสำหรับข้อมูลลิขสิทธิ์โดยละเอียด
โครงการนี้ได้รับอนุญาตภายใต้ Apache License v2.0
CppMicroServices.org ยินดีต้อนรับนักพัฒนาที่มีภูมิหลังและประสบการณ์ที่หลากหลาย ชุมชนที่มีความหลากหลายและครอบคลุมจะสร้างแนวคิดที่ยอดเยี่ยมมากขึ้น มอบมุมมองที่เป็นเอกลักษณ์มากขึ้น และสร้างโค้ดที่โดดเด่นยิ่งขึ้น เป้าหมายของเราคือการทำให้ชุมชน CppMicroServices ยินดีต้อนรับทุกคน
เพื่อให้เกิดความชัดเจนถึงสิ่งที่คาดหวังจากสมาชิกของเรา CppMicroServices ได้นำหลักจรรยาบรรณที่กำหนดโดย contributor-covenant.org มาใช้ เอกสารนี้ใช้ในชุมชนโอเพ่นซอร์สหลายแห่ง และเราเชื่อว่าเอกสารนี้สะท้อนถึงค่านิยมของเราได้เป็นอย่างดี
โปรดดูที่ :any:`หลักจรรยาบรรณ <หลักจรรยาบรรณ>` สำหรับรายละเอียดเพิ่มเติม
เริ่มต้นด้วยการโคลนที่เก็บโปรเจ็กต์ สิ่งสำคัญที่ควรทราบคือเนื่องจากโปรเจ็กต์ใช้โมดูลย่อย git คุณต้องโคลนพื้นที่เก็บข้อมูลด้วยแฟล็ก --recursive นี่จะเป็นการโคลนโมดูลย่อยและวางไว้ในไดเร็กทอรีที่เกี่ยวข้อง หากต้องการอ่านเพิ่มเติมเกี่ยวกับวิธีการทำงานของโมดูลย่อย git และวิธีโคลนโมดูลย่อยเหล่านั้นลงในพื้นที่เก็บข้อมูลที่มีอยู่แล้วบนดิสก์ของคุณ โปรดดูเอกสารประกอบของ Git
โดยพื้นฐานแล้ว ไลบรารี C++ Micro Services มอบรีจิสทรีบริการแบบไดนามิกที่มีประสิทธิภาพ นอกเหนือจากวงจรการใช้งานที่มีการจัดการ เหนือสิ่งอื่นใด กรอบงานจะจัดการหน่วยลอจิคัลของโมดูลาร์ที่เรียกว่า บันเดิล ที่มีอยู่ในไลบรารีแบบแบ่งใช้หรือแบบคงที่ แต่ละบันเดิลภายในไลบรารีมีอ็อบเจ็กต์ :any:`cppmicroservices::BundleContext` ที่เกี่ยวข้องกัน ซึ่งเข้าถึงรีจิสทรีของบริการได้
เมื่อต้องการสอบถามรีจิสทรีสำหรับออบเจ็กต์บริการที่ใช้อินเทอร์เฟซเฉพาะตั้งแต่หนึ่งอินเทอร์เฟซขึ้นไป รหัสจะมีลักษณะดังนี้:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void UseService (BundleContext context)
{
auto serviceRef = context. GetServiceReference <SomeInterface>();
if (serviceRef)
{
auto service = context. GetService (serviceRef);
if (service) { /* do something */ }
}
}
การลงทะเบียนวัตถุบริการกับอินเทอร์เฟซบางอย่างมีลักษณะดังนี้:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void RegisterSomeService (BundleContext context, const std::shared_ptr<SomeInterface>& service)
{
context. RegisterService <SomeInterface>(service);
}
โมเดลบริการ OSGi ยังอนุญาตให้เพิ่มคำอธิบายประกอบบริการด้วยคุณสมบัติ และใช้คุณสมบัติเหล่านี้ในระหว่างการค้นหาบริการ นอกจากนี้ยังช่วยให้สามารถติดตามวงจรชีวิตของออบเจ็กต์บริการได้อีกด้วย โปรดดูเอกสารประกอบสำหรับตัวอย่างและบทช่วยสอนเพิ่มเติมและการอ้างอิง API นอกจากนี้ยังมีโพสต์บล็อกเกี่ยวกับ OSGi Lite สำหรับ C++
พื้นที่เก็บข้อมูล Git มีสองสาขานิรันดร์ คือสาขาหลักและสาขาการพัฒนา สาขาหลักประกอบด้วยรหัสคุณภาพการผลิตและ HEAD ชี้ไปที่เวอร์ชันที่ออกล่าสุด สาขาการพัฒนาเป็นสาขาเริ่มต้นและมีสถานะปัจจุบันของการพัฒนา ดึงคำขอโดยค่าเริ่มต้นกำหนดเป้าหมายไปที่สาขาการพัฒนา ดูไฟล์ :ref:`CONTRIBUTING <contributing>` สำหรับรายละเอียดเกี่ยวกับกระบวนการสนับสนุน
พื้นที่เก็บข้อมูล CppMicroServices กำหนด git hooks ในไดเรกทอรี .githooks ไดเร็กทอรีนี้ได้รับการตั้งค่าเป็นไดเร็กทอรีสำหรับ git hooks ผ่านการรัน git config core.hooksPath <path> ในไฟล์ CMakeLists.txt ของเรา
หาก hook pre-commit clang-format ล้มเหลวเนื่องจากไม่ได้ติดตั้ง clang-format โปรดติดตั้งและวางไว้บนเส้นทาง ในทำนองเดียวกัน หากไม่ได้ติดตั้ง git-clang-format ให้ทำเช่นเดียวกัน git-clang-format มาพร้อมกับการกระจาย LLVM ของรูปแบบ clang
หากไม่สามารถทำได้สำหรับคุณ คุณสามารถระบุ --no-verify เมื่อทำการเปลี่ยนแปลง นี่เป็นสิ่งที่ท้อแท้อย่างมาก และคุณต้องให้เหตุผลว่าทำไมคุณจึงไม่สามารถจัดรูปแบบการคอมมิตของคุณได้
เราขอสงวนสิทธิ์ในการปฏิเสธคำขอดึงข้อมูลใดๆ ที่มีรูปแบบไม่ถูกต้องและไม่ได้ระบุเหตุผลที่ถูกต้อง