簡體   English   中英

為客戶端、服務器和插件組織框架

[英]Organising frameworks for client, server, and plugins

我正在開發一個大型項目,該項目包括一個服務器、一些用於控制可以加載到服務器進程中的設備的插件,以及可以連接到服務器的客戶端。 我正在尋找構建最終需要存在的框架的最佳實踐。

有在客戶端、服務器和插件之間共享的 header 文件,以及特定於系統各個方面的一些頭文件。 有時標頭僅在客戶端和服務器之間或服務器和插件之間共享。 類似地,項目的所有三個方面都可以共享公共代碼,也有只有一個特定方面需要的代碼。

項目完成后,我們需要發布一個客戶端應用程序和插件開發者 API 供第三方開發。

我不確定如何正確構建支持這一點所需的框架。

我需要有 2 個獨立的框架嗎? 或者我可以擁有 1 個包含所有標頭並提供 2 個單獨的 dylib 的框架嗎?

如果我需要有 2 個獨立的框架,我該如何處理在系統各個方面共享的 header 文件? 我不想將它們復制到每個框架中以避免版本控制可能出現的問題。

第三個僅標頭框架會是一個合理的選擇嗎?

任何人都可以推薦一個在 OS X 上使用框架構建這種東西的最佳實踐嗎?

框架 = 庫 +庫的標頭

每個框架只需要包含您要公開的接口的 header 文件。 即使使用通用頭文件來構建所有三個框架,您也沒有義務捆綁它們。

一個 3 框架方法會很好,即使其中一個框架只捆綁了公共頭文件而根本沒有庫。 示例:如果您在 Mac 上安裝 Qt,您會看到它在許多框架中拆分,但標頭從不重復。 還有一些框架只包含頭文件而沒有代碼(例如 QtScript.framework)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM