写点什么

C++ 最佳实践 | 7. 正确性和脚本

作者:俞凡
  • 2022 年 5 月 15 日
  • 本文字数:1101 字

    阅读完需:约 4 分钟

本系列是开源书C++ Best Practises的中文版,全书从工具、代码风格、安全性、可维护性、可移植性、多线程、性能、正确性等角度全面介绍了现代 C++项目的最佳实践。本文是该系列的第七篇,也是最后一篇。

正确性

避免无类型的接口

错误:


std::string find_file(const std::string &base, const std::string &pattern);
复制代码


正确:


std::filesystem::path find_file(const std::filesystem::path &base, const std::regex &pattern);
复制代码


上面的方法虽然好点,但是仍然存在std::stringstd::filesystem::path之间的双向隐式转换。


考虑使用如下类型安全库:


  • https://foonathan.net/type_safe/

  • https://github.com/rollbear/strong_type


请注意,更强的类型也意味着编译器可以做出更多优化。


启用脚本

脚本语言和编译语言的组合非常强大,既可以给我们喜欢的编译语言的好处(类型安全、性能、线程安全选项、一致的内存模型),又给了我们快速尝试新东西的灵活性,而不需要完全重新构建。


基于虚拟机的编译语言已经做到了这点: JRuby, Jython, IronRuby, IronPython


延伸阅读

注: 这系列启发了 O'Reilly 的系列视频: Learning C++ Best Practices

C++

CMake

结语

最后,请试着扩展视野,尝试其他编程语言。其他语言有不同的构造和表达式,学习其他的东西会鼓励我们更有创造性的使用 C++,写出更干净、更有表现力的代码。


你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。

微信公众号:DeepNoMind

发布于: 刚刚阅读数: 2
用户头像

俞凡

关注

公众号:DeepNoMind 2017.10.18 加入

俞凡,Mavenir Systems研发总监,关注高可用架构、高性能服务、5G、人工智能、区块链、DevOps、Agile等。公众号:DeepNoMind

评论

发布
暂无评论
C++最佳实践 | 7. 正确性和脚本_c++_俞凡_InfoQ写作社区