folly学习笔记-序

1. 背景

folly是Facebook开源库 的缩写,包含一系列核心库,很多时候都是作为其内部C++项目的依赖库,也是各个项目需要将代码共享时放置的地方,它是对boost和标准库的补充,而不是竞争关系。只有当其他库不存在需要的功能或性能无法满足需要时,才会开始进行开发新的组件。当标准库或boost废弃一些功能时,folly也会努力的跟着适应变化。

性能问题散布在folly库的各个角落,是其关注的核心点,有时甚至导致一些非常特别的设计(例如,PackedSyncPtr.h,SmallLocks.h)

folly的github地址是https://github.com/facebook/folly,《modern c++ design》作者Andrei Alexandrescu是其主要作者之一。

2.设计

逻辑设计

folly尽可能将每个模块做到独立,但从不保证不会依赖内部的其他模块。

所有的符号都定义在folly命名空间内,当然除了宏意外,folly命名空间内部还会定义一些其他命名空间,如internal或detail, 当用户永远不应该使用这些内部符号。所有的宏都是大写并以FOLLY_开头。folly项目 下有个experimental目录,这些代码也在大量使用并可以通过测试,主要是考虑到未来API接口可能变化很大。

物理设计

folly和boost一样使用“口吃”的目录结构folly/folly,内部是扁平的结构,目前不会专门为一些模块设计特殊的目录,experimental目录下的内容最好不要使用,以免folly升级后原来代码不能使用,test目录包含所有模块的单元测试,一般以Test结尾,docs目录是一些文档,可以通过看文档或者folly主目录下的头文件查看有哪些模块。

note: 下一篇介绍其文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,034评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,937评论 19 139
  • 快乐,其实很简单。一首诗就可以描绘,可惜,我不是诗人。 生活,其实没那么不容易。一次旅行就可以化解长期积压的不如意...
    沙溪小语阅读 2,924评论 0 3
  • http://begeek.cn/post/7408.html
    Omit03阅读 1,333评论 0 0

友情链接更多精彩内容