此存儲庫包含
可靠的C ++應用程序的框架稱為魯棒服務核心(RSC)。 RSC將使您的項目走上正確的道路,如果您要開發或重新設計一個系統,該系統的要求將其表徵為
RSC中使用的設計模式使開發人員更有生產力。它們已在旗艦電信產品中得到證明,包括(根據作者作為其主要軟件架構師的經驗)核心網絡服務器,該服務器處理AT&T的蜂窩網絡中的所有調用。匯總模式的模式語言出現在Robust Communications軟件的第二章中。文檔RSC軟件概述描述了其中哪些在此存儲庫中可用,並指向實現它們的主要代碼文件,該教程提供了有關其中一些的更多信息。
C ++靜態分析工具的開發使RSC的開發有些局限。這些工具檢測到違反各種C ++設計指南的行為,例如在Scott Meyers有效的C ++中發現的指南。他們還分析了#include指令,以確定要添加或刪除哪些指令。然後,他們的編輯器允許您輕鬆,互動地修復工俱生成的許多警告。即使您不使用RSC開發應用程序,也可能會發現這些工具有用。這裡提供了它們的概述。
包括具有框架的應用程序可用於測試並說明其使用。因此,該存儲庫包括一個POTS(普通的普通電話服務)應用程序。選擇鍋是出於多種原因。一方面,在電信行業工作時,作者在類似應用方面擁有豐富的經驗。但更重要的是,Pots是一種非平凡的應用,但是每個人都對自己的作用有合理的理解。因此,您應該能夠在不閱讀大規範的情況下弄清楚Pots代碼在做什麼。這裡提供了POTS應用程序的概述。
2002年,英國的一個小組開始設計一種允許軟件機器人進行棋盤遊戲外交的協議。他們的網站具有各種有用的鏈接和下載,其中包括外交服務器的可執行文件。機器人登錄該服務器,該服務器將它們發送給遊戲的狀態,使他們可以使用協議相互通信,並裁定他們提交的動作。他們的網站還提供用於開發機器人的軟件。我決定重構此軟件,將其從Windows中解散,然後將其與C ++ 11保持一致。這有助於RSC發展以更好地支持使用IP(在這種情況下)使用IP(TCP)的獨立客戶。所得軟件可在DIP目錄中獲得,並在此處進行一些詳細描述。
此頁面提供了RSC的概述。另一個頁面列出了在許多主題上更深入的文檔。
下載其中一個版本。由於最新版本正在進行中,並且可能是不穩定或不完整的代碼,因此不建議從主頁上的代碼下拉菜單下載。
警告
為了進行適當的操作,必須從其SRC目錄下方的目錄啟動RSC。請參閱“安裝指南”。
RSC
如果您不想構建RSC,則每個版本都提供調試和發布可執行文件。
包含RSC源代碼的目錄以及它們之間的依賴項在main實現之前的註釋中列出。這些目錄中的每一個都是一個單獨的靜態庫, main位於自己的目錄中。
RSC是使用Visual Studio 2022開發的,並使用CMAKE構建,如下所述。此處描述了RSC的Windows構建選項。 Visual Studio的.VCXPROJ文件不再在構建過程中使用,因此將其從存儲庫中刪除。
在初始化過程中,RSC在初始化時會顯示每個模塊。 (一個模塊等效於靜態庫。)在所有模塊初始化後,CLI提示nb>似乎表明NB目錄中的CLI命令可用。此處顯示在啟動期間寫給控制台的內容,此處提供了所有CLI命令的列表。
如果輸入>read saveinit作為第一個CLI命令,則初始化的函數跟踪,該函數跟踪甚至在main調用之前就開始。這個痕跡看起來很像。在此類跟踪中出現的每個函數調用Debug::ft ,記錄以下記錄:
所有輸出都顯示在目錄中。 ./<dir> /excluded/output,其中<dir>是SRC目錄上方的目錄。除了您要求的任何特定輸出(例如初始化跟踪)外,每個CLI會話還會產生
數字字符串YYMMDD-HHMMSS附加到這些文件的名稱上,以記錄系統初始化(用於控制台文件和初始日誌文件)或最新重新啟動時間(對於後續日誌文件)的時間。
使用RSC作為框架的最簡單方法是在RSC的SRC目錄下方創建一個靜態庫。為此目的提供了應用程序目錄。只需使用應用程序所需的任何RSC的子集即可。這將始終包括名稱空間NodeBase ( NB目錄)。它還可能包括NetworkBase ( NW目錄)和SessionBase ( SB目錄)。建議為您的應用程序使用新的名稱空間。
如果您將代碼放在其他地方,RSC在啟動它時將無法找到重要的目錄,如“安裝指南”中所述。然後,您需要修改函數Element::RscPath ,以便它可以找到包含輸入目錄的目錄。您還應該將RSC的幫助目錄添加到該目錄。
要初始化您的應用程序,請從Module派生。有關示例,請參見NbModule ,該NBModule初始化了NodeBase 。更改CreateModules ,以便它也可以實例化您的模塊,以及您在構建中需要的其他模塊。
要與您的應用程序進行交互,請從CliIncrement中得出。有關示例,請參見NbIncrement ,這是NodeBase的增量。在模塊的Startup功能中實例化CLI增量。當您啟動RSC時,您可以通過輸入>incr來通過CLI訪問命令,其中incr是增量的構造函數傳遞給CliIncrement構造器的縮寫。
輸入目錄中的大多數文件是測試腳本。描述POTS應用程序的文檔還討論了其測試,該測試練習了RSC軟件的相當一部分。其他一些測試本質上更具戰術性:
一組腳本測試Thread類的安全網能力。專用頁面描述了這些測試和每個測試的當前狀態。
在CLI中輸入>nt訪問“ NT”增量(一組CLI命令)。它提供了用於在BuddyHeap , SlabHeap , LeakyBucketCounter , Q1Way , Q2Way和Registry Interfaces中測試功能的命令。
RSC是根據GNU通用公共許可證(版本3)免費獲得的,該版本基本上說您還必鬚髮布自己的軟件以及對RSC的更改。如果您要開發要保留專有的商業軟件,則GPLV3許可證還允許RSC根據免費軟件基金會批准的另一個許可證的條款許可。其中一些許可證允許您的軟件保持專有。但是,將需要賠償,並且您對RSC本身的任何更改(錯誤修復和增強功能)仍然必鬚髮布。
這裡描述瞭如何為RSC做出貢獻。
Github現在讓您贊助項目。 “贊助商”按鈕位於此頁面的頂部。