首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您有关于如何包装内部库以将其交付给客户的建议吗?

您有关于如何包装内部库以将其交付给客户的建议吗?
EN

Stack Overflow用户
提问于 2010-08-20 17:10:50
回答 1查看 84关注 0票数 1

在我的公司,我们正在使用一个跨平台的实用程序库,提供大量的服务。

这包括跨平台代码(例如,封装Win32或pthread的线程类)或每个特定于公司的代码(例如处理服务器和客户端应用程序之间专有通信协议的类)。

我们需要将这些特性的一部分交付给客户机,客户机同意使用与库相同的编译器和编译器选项。

目前,我的设计主要是确保库的每个版本都具有与前面的版本兼容的二进制接口:

  1. 传递DLL/SO库
  2. 使用简单明了的命名约定(受Java camelCaseNaming等的启发)
  3. STL的使用
  4. 使用全局命名空间(并以无歧义名称作为任何宏的前缀,以避免名称冲突)
  5. PImpl-用于所有需要使用的类
  6. 提供一切(并将“公共部分”给客户)
  7. 简化和统一我们的接口
  8. 在我们的PImpl类中没有虚拟方法
  9. 没有内联代码,除非异常(即使常量是导出常量值,在编译后的源代码中定义,并简单地在公共标题中声明)
  10. 实用程序/间接函数的异常内联代码,内部代码不多(例如,交换函数将内联,调用它交换对象的非内联交换方法)
  11. 一些没有真正代码的简单“值类”的异常内联代码,以避免不必要的开销(例如,复杂数字类将被内联)
  12. 通过内联代码提供高级服务(调用所描述的PImpl-ed类)(这意味着客户机可以根据自己的需要重用/修改它)。

我的列表是完整的,还是遗漏了一些可以简化未来维护/进化的东西?

我的其中一个观点是错误的吗?

EN

回答 1

Stack Overflow用户

发布于 2010-08-20 18:03:15

立面图案

我用它为大型子系统创建了“编程接口”。根据需要创建一个或多个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3533196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档