首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【系列教程】 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)

vscode远程开发,是把开发者自己机器上 VSCode 原样拷贝到作为目标机器(Remote Host)上,以服务形式运行,本地 VSCode 作为客户端,两者之间通过远程通讯协议彼此协调合作...clang-format支持代码风格有google、llvm、ChromiumMozilla、WebKit,我们项目使用google风格。...,还可以在项目主目录之下添加.clang-tidy文件,在里面编写项目的检查规则,这种方式更加适合对整个项目进行定制化规则编写。....clang-tidy文件并不是必须放在主目录之下,只是通常放在主目录之下方便对整个项目进行检查。...,如何一次性分析整个项目的文件

2.9K30

量化你团队代码质量

对所谓 工程化 有以下几个明确定义: 可维护:贴近 GitOps,尽量将所有可变配置放到代码仓库,不是分散维护,Everything is code....可持续:不是应付一次检查或攻坚,而是形成常态 可传承:新人只关注代码,不关注质量工具配置细节,通过类似于 MRs 结果反馈不断改进自身代码质量 一些涉及到权限控制位置(如代码质量阈设置)是需要有管理员把控...clang-tidy,它在 LLVM 工具链中,您需要在 brew install llvm 后再通过 brew link llvm 按提示将可执行文件添加到环境变量中,使脚本可以直接访问到 clang-tidy...但它可以通过量化数据告诉我们代码哪些分支、哪些逻辑我们还没有覆盖,至少能让你知道,你测试是不是在做一些无意义事情。...总结 日常开发中一些 IDE 辅助工具可以帮助我们随写随发现问题,如 VSCode clang-tidy 检查、CLion 自带 clang-tidy 检查、VS IDE clang-tidy 检查

64730
您找到你想要的搜索结果了吗?
是的
没有找到

C++最佳实践 | 1. 工具

警告有潜在性能问题强制类型转换 -Wunused 警告任何未使用东西 -Woverloaded-virtual 如果重载(不是覆盖)虚函数,则发出警告 -Wpedantic 如果使用了非标准C...include-what-you-use[41], 示例结果[42] clang-modernize[43], 示例结果[44] clang-check[45] clang-tidy[46] 静态检查...Clang静态分析器 Clang分析程序默认选项适用于各个平台,可以直接通过CMake使用[54],也可以通过基于llvm工具[55]中clang-check和clang-tidy调用。...f=255&MSPPError=-2147217396 "控制流保护(Control Flow Guard "控制流保护(Control Flow Guard)")")增加了高性能运行时安全检查。.../docs/ClangCheck.html [46] clang-tidy: http://clang.llvm.org/extra/clang-tidy.html [47] Coverity: https

3.2K10

推荐几款代码检查工具,淘宝开源代码质量检测工具

但是这种凭感觉方式太过个性随意,所谓仁者见仁智者见智,很难达成共识,那有没有一种公认标准来鉴定代码质量? 答案是有的。...如果你同事可以轻松地读懂你写代码,那说明你代码可读性很好;反之则说明你代码可读性有待提高了。遵守编码规范也能让我们写出可读性更好代码。 可维护性 代码可维护性是由很多因素协同作用结果。...(都是开源) c/c++: clang-tidy http://clang.llvm.org/extra/clang-tidy CSA https://clang-analyzer.llvm.org... soot 本质上一个 jvm bytecode 优化框架,但同样可以基于此做出各种工具,不过考虑到它复杂内容,emmmm......所以一般解决办法都是融入流程,最简单像 Unittest 一样,编译完成后跑一遍。并入 CI 流程也是普遍做法,代码入库前扫描成功允许合并,这样同时还可以保证 code format 问题。

2.1K30

Mac OS X 背后故事(上)

RIG 项目没过几年就被判了死刑,主要是缺少很多有用功能,比如端口没有保护机制,一次最多只能发送 2KB 大小信息(受硬件限制),也没有很好网络支持等。...他早期讲话用现在眼光看就是个少将体,比如“互联网…网……这个…那个…那个…怎么想这个…这…这…这…啊…啊…就是说…互联网是发明!”...这种风格显然给 Al Gore 讲话风格带来很大影响。...有了这么拽东西,Hullot 意识到如果他只在研究所窝着,那只能让十几个人享受这一成果,如果他跳槽,把这个工具公开,那对天下码工来说可是大福音。...这已经是一项很可怕技术, Apple 自己一定使用它来发现并改正 Mac OS X 整个系统各层面的问题。但许多开发者还不满足——既然你能发现漏写了 release,你为什么不能帮我自动加上

2.9K40

CPU有个禁区,内核权限也无法进入!

沉闷了一小会儿,隔壁二号车间虎子说到:“咱们现在不是有安全访问级别吗,从Ring0到Ring3,已经可以很好到隔绝应用程序攻击了啊” ?...引进一个新工作模式,这种思路倒是很新鲜,大家纷纷议论开来。 “这个安全空间技术上要怎样实现?” “线程怎么进入和退出安全空间?恶意程序进去了怎么办?” “怎么调用外部普通空间函数?...领导显然对到来有些意外,不过看完准备材料还是满意同意了申请,让也参与下一次讨论会,真是功夫不负有心人! 很快就到了下一次会议,再也不用在门外偷听了。 ?...老八的话如当头一棒,怎么就没往这个方向考虑。 “加密?那什么时候解密?”,虎子问到。 ?...虎子一听说到:“唉,这个好,建议全面推广,干嘛只在安全空间用啊” 老八拍了拍虎子:“说你虎,你还真虎,这玩意对性能影响不可小觑,怎么能随便用,好钢要用到刀刃上!” “好!老八这个建议好。

54130

如何让你开源项目看上去像那么回事

开源并不等于免费和开放源代码而已 相信各位搬砖工在公司里都有面对过屎山经历,千奇百怪编码风格、神出鬼没注释和「卧槽,这也行」骚操作充斥其间,相信就算是 FLAGM 大厂也是如此。...与之相反,如果你要将你项目开源,对编码质量有很高要求。除了代码,一个开源项目还有一些杂七东西,这些可能大家并不是很注意,但却能让开源项目「看上去像那么回事」。...Issue template/PR template——Issue 和 PR 提交模板,有太多用户不知如何提一个好问题,经常信息不全、只言片语,就指望你为他排忧解难,怎么解?用水晶球吗?...虽然 Linting 经常包括在持续集成中了,但 Pre-commit 检查仍然有必要,且更快捷,能更早发现问题,因为跑一次 CI 短则几分钟,长则能达到一小时,你肯定不想等这么久结果发现代码中有个错字吧...常用此类工具有: black——代码格式化 flake8——代码检查 isort——import 语句排序 Editorconfig ——统一化一些编辑器设定,包括换行符统一、编码统一、Tab/

14120

老潘思考

大概就是这些,那会没有报任何收费培训班,好像从闲鱼买过一些盗版课(记得是优达学城),其他就都是公开免费了,再推荐一次CS231N,这门课质量真的是很高,英文好建议直接看英文版。...虽然说可以自己实现吧,但现实中没有时间让你慢慢搞慢慢预研怎么怎么来,如何快速产出才是最重要。 至于算法能不能搞,行不行,卷不卷,看法是一直很卷。...,不是很了解) 其他等等 坑都不少,需要学习也比较,毕竟在某一个平台部署,这个平台相关知识相关信息也要理解,不过有一些经验是可以迁移,因此经验也比较重要,什么AI部署、AI工程化、落地都是一个概念...能让模型在某个平台顺利跑起来就行。 部署也不是什么方向,或者说,公司招人时候也不会搞个“AI部署工程师”岗位,不像后端、前端这种相对比较固定,职责相对比较专一。...部署,相对来说干活会比较一些: 中小公司来说,算法工程师也会做部署事情,毕竟也是工程师嘛 大公司来说,会拆比较细。

24920

国际儿童日|现代儿童出现健康问题,VR能解决多少?

不少孩子在体验过这种方式后,都希望下次打针时能够再次使用VR显。 ? 看来,作为一种分散注意力技术,VR真的很值得医疗人员后续深入研究。不仅能减轻父母负担,也能让孩子更容易去接受治疗。...究竟是什么伤害了孩子眼睛?要怎么做才能避免孩子进入“近视大军”? ? 据相关研究表明,近视是由于睫状肌缺乏锻炼,长时间做作业、玩电脑、看电视手机,导致孩子眼睛长时间近距离盯着一个“点”看。...那么,怎么做才能使孩子喜欢上锻炼睫状肌?适当正确使用VR显,就是一个很好方法。VR可以让孩子在1-2米视距景深中活动,并能引导其眼球活动。 再加上沉浸式内容带来有趣体验,孩子定会乐在其中。...如此一来,不仅能让孩子睫状肌得到有效锻炼,还能让孩子爱上这种锻炼方式。 ? 孩子是人类社会发展基础,孩子健康成长与快乐,将一直是父母乃至社会重点之所在。...如何更好保护孩子,不是仅限于今天才去思考问题。国际儿童日存在,是为了让人们明白,永远不要因为身形、年龄而去忽略这一个群体。相反,这一群体更应该因此受到呵护与爱惜。

59720

CPU有个禁区,内核权限也无法进入!

沉闷了一小会儿,隔壁二号车间虎子说到:“咱们现在不是有安全访问级别吗,从Ring0到Ring3,已经可以很好到隔绝应用程序攻击了啊” ?...引进一个新工作模式,这种思路倒是很新鲜,大家纷纷议论开来。 “这个安全空间技术上要怎样实现?” “线程怎么进入和退出安全空间?恶意程序进去了怎么办?” “怎么调用外部普通空间函数?...领导显然对到来有些意外,不过看完准备材料还是满意同意了申请,让也参与下一次讨论会,真是功夫不负有心人! 很快就到了下一次会议,再也不用在门外偷听了。 ?...老八的话如当头一棒,怎么就没往这个方向考虑。 “加密?那什么时候解密?”,虎子问到。 ?...虎子一听说到:“唉,这个好,建议全面推广,干嘛只在安全空间用啊” 老八拍了拍虎子:“说你虎,你还真虎,这玩意对性能影响不可小觑,怎么能随便用,好钢要用到刀刃上!” “好!老八这个建议好。

59610

为什么人人都该懂点LLVM

利用它,可以分析程序要多久一次来完成某项工作;改造程序,使其更适用于你系统,或者模拟一个新处理器架构或操作系统——只需稍加改动,不需要自己烧个芯片,或者写个内核。...下面是一些巧妙利用了LLVM,而又不是在做编译器研究项目: UIUCVirtual Ghost,展示了你可以用编译器来保护挂掉系统内核中进程。...使用了LLVM代码一些惯例,使得动态类型检查更高效,因为编译器总要用它们。具体来说,如果I不是“二元操作符”,这个构造函数返回一个空指针,就可以完美应付很多特殊情况(比如这个)。...;但我们插件会让它将输入翻倍不是加2。...你会希望有一套记(annotations),来帮助你从程序里传递信息给LLVM流程。这里有一些构造记系统方法: 一个实用取巧方法是使用魔法函数。

1.5K00

用 Rust 改写了自己C++项目:这两个语言都很折磨人!

因此代码每次变动,Rust 要读取比 C++ 多。· 对此,大家怎么?...写完发现,原来 Rust 项目比 C++ 项目还要大,Rust 代码 17.1k 行, C++ 只有 16.6k 行。...一次搭建 Rust 自定义工具链比 Nightly 还要慢 2%,在 Rust config.toml 各种选项中反复调整,不断交叉检查 Rust CI 构建脚本以及自己脚本,最终在好几天挣扎后让这二者性能持平...C++20 模块 C++ 代码用是 #include,但如果用 C++20 中新增加 import 又会怎么?C++20 模块是不是理论上来说应该会让编译速度超级快?...至少对编码风格来说,Rust 在大型项目上开发编译时间甚至更加远比 C++ 还要糟糕。

1.1K20

PowerBI 可视化大赛选手获奖感言

学习 Power BI 过程中,当遇到计值上下文、上下文转换,编写 DAX 语句始终得不到正确结果,或者为什么要使用 ALLSELECTED () 不是 ALL (),DAX 圣经生涩难懂、语义烧脑...三是 “勿,理本质”,同样业务问题,DAX 语句编写上实现方法可能与众不同,有长、有短、有直白、有烧脑,但不管怎么样,最基础、最核心、最本质永远是你对业务逻辑理解,不同 DAX 语句编写方法,...二是顶层设计构思整体框架,也就是你报表分几页展示,每页包含什么内容,导航栏如何设计,筛选器如何选择,报表风格如何确定,电脑端怎么展示、手机端怎么展示,最好做一个思维导图,用最简单方法 PPT 设计好你报表页面背景...作品整体风格突出 “简洁”,在可视化对象应用上主要使用条形图、柱形图和折线图,在布局上同类别放在一起,关掉了过多内容标签,突出可视化对象直接效果,对于报表阅读者易理解、干扰少。 ?...这难倒不是修炼 Power BI,自我成长突破一次励志展示吗? 非科班技术人员;非短时间学习得成;期间寂寞和挑战无人得知;三次参加比赛未果;但教育本质之一不就是发现更强大自己过程吗?

2K50

微信安全下一代特征计算引擎探索与实践

并且自研库函数使用风格也和C++库使用有较大差别,学习成本高。下面是DSL语言和库与C++对比, 微信后台有成熟C++基建,大家很熟悉C/C++语法。...注意Clang前端并不是Clang二进制程序, 而是Clang编译器提供前端库,LLVM IR经过LLVM优化器,根据优化级别生成优化后LLVM IR存储在内存中, 常见优化有常量传播,常量折叠,...算法和语义检查编译优化研发人员只需要专注优化算法开发,因为中间表示LLVM IR和源代码无关,指令集架构ISA无关。...Clang语义检查与一般方法不同,常规方案方法是在生成抽象语法树AST之后,遍历AST进行检查Clang在AST节点生成过程中即时检查语义。...基于Clang开发 执行下面的命令,使用-emit-llvm选项编译一个cpp文件到LLVM IR,Clang内部使用了哪些类和数据结构,执行流程是怎样,如果我们想在这个编译流程上加上自定义内容

16710

人工智能黑暗面

验证码和AI不解情缘 当我们上网时候,最烦就是验证码,它老是来让你填。这是计算机在确定你却是是个“大活人”,不是一个程序在恶意攻击访问它。...比如说,当你连续三次在登陆Facebook时候输错密码,网站肯定会跳出来一个验证码来确定你是个活人不是恶意暴力破解密码程序。...但是其他密码嘛,相对来说就容易一些了。所以我们怎么猜这些密码?最简单方法就是翻一本厚厚字典,然后将每个单词都当成密码去试。这种情况下如果你也就能猜中用“password”当密码童鞋了。...译者:这里有个链接,觉得可以不加,因为就是在一个门户里搜了一下神经网络关键词结果,毫无营养……然后那个啥,GAN解释没用原文,因为太枯燥了怕别人看不懂,就结合自己认识写了一个,如果翻译不好的话再联系翻译这句...但悲剧是,现在机器学习已经知道怎么产生能够通过钓鱼检查钓鱼邮件了! 训练集是这样婶儿,一大堆邮件,一些邮件是被反钓鱼拦住,还有一些是能成功发送

84910

勒索软件终结者:勒索软件,今天叔叔要教导你一些做人道理!| 原创工具

不过话又说回来,能坚持下来还有一个很重要原因就是真的是很刺激。你想啊,你是抱着完全解决掉一个安全细分领域重大疑难心情来写代码好吗?是不是很刺激,然后有安全厂商推出解决方案时。...哪怕它强行针对性设计出不需要遍历磁盘文件加密勒索方案的话,那能怎么做,顶多是把自己注入到explorer进程,随用户浏览进行加密操作,哪怕这样,你会发现第一容易被用户发现,第二,依然避不开加密到陷阱文件...增量备份的话有逻辑漏洞(容易被攻击导致崩溃),因此必须针对勒索软件奇葩行为来重新设计一套文件备份方案,给出方案就是小文件进行备份,大文件进行保护,否则依然会出现被针对性攻击导致崩溃逻辑漏洞...这个怎么说,要么就不玩,要玩的话就得认认真真干有模有样一点不是么?哎呀,你们别打我呀,苦憋一年就为了这一次装X容易么(简直是下尽血本来装X好么,这是一种什么样精神)。...可以为大家免费写代码这都不是问题。但你也不能让亏本,是不是这个道理嘛?放心很便宜,一个序列号29块钱(就一顿盒饭钱哪),比发票还便宜,需要开发票的话(发票+快递费)30块钱。够意思了吧!

1.1K70

真正杀死C++不是 Rust

还有一些汇编代码片段,Stepanov 风格迭代器,以及 Alexandrescu 风格元编码。总之是应有尽有。那么,为什么? 因为这款引擎前后历时 8 年时间,经手了 5 个不同团队。...这本身没什么问题,毕竟当年晶体管密度每 18 个月翻一番,程序员数量每 5 年翻一番,糟糕程序员写不出优秀代码也并不是什么大问题。 如今,我们生活在 21 世纪。...花费了几个月时间,使用C++解决 Numba 中不会出现问题,而那位Bremen兼职学生完成相同工作只花费了几天时间。如果不是因为那是他第一次使用Numba,可能只需要几个小时。...C++ 永远不会真正消失,它只会被更新更强大新技术所取代。 严格来说,不是“将来会被取代”,而是“正在被取代”。职业生涯源自 C++,如今在使用 Python 写代码。...静态分析器会检查命名空间是否混乱,动态分析器会检查内存泄漏。CI/CD 负责跨平台编译。性能分析器让了解代码实际运行情况,反汇编器可以解释为什么。

8610

曾经有你,未来有

世界和我世界本没有交集,但只要在你身边,就是你全世界。 尝试着去解释“爱”真谛,理解也是所想,其乐融融有谁不想?...尝试着去解释“爱”真谛,理解也是所想,其乐融融有谁不想? 树欲静而风不止,子欲养亲不待。人往往是这样傻,失去知道珍惜。 在仅有的记忆中,父亲留给自己大多数是背影。...上面这个小片段是对父亲记忆,最清晰一次很少和父亲交流,往往几句话下来不欢而散。出生于农村,和他见面很少,即使见面了也没有几句话,心中更是五味陈。...他不怎么过问我学习,内心,更多时候我们仿佛是用眼神交流,透露着失望。父不知子,子不知父,说大概就是和我父亲吧。 父亲走后日子,慢慢学会了释怀。想想当时,真是百般感受。...这时明白父亲对感情是如此深沉,犹如高山巍峨,海水壮阔。树欲静而风不止,子欲养亲不待。人往往是这样傻,失去了知道珍惜。但这些感受是需要时间,不到一定时候是不会出现

42010

更快学习 JavaScript 6 个思维技巧

也是经过了很多次惨不忍睹教训明白了这个技巧。 3.用正确心态去做练习 很多人认为反复练习特别无聊,所以他们通常会选择跳过或尝试走捷径。...如果你快进JavaScript练习,那么最终反而需要更多学习时间。试着让练习变得令人感兴趣,这样是不是就不会那么抗拒?...有好几次,一开始只是想打开Facebook,看一小会,然后不知不觉就发现已经看了几个小时。这是怎么发生?或许正是因为并不打算看很长时间。万事开头难,一旦开了,后面陷进去就变得容易多了。...再试一次,但这次,希望你能从字面上去检查每一行代码,告诉每一行代码都发生了什么。” 这次,朋友终于能够很好地解释代码中正在发生什么。...问题关键是,他终于可以一步一步地检查了代码片段,不是囫囵吞枣想要一次性理解所有代码。 在类似于这样情况下,思考得更慢实际上能让你学得更快。

61550

更快学习 JavaScript 6 个思维技巧

也是经过了很多次惨不忍睹教训明白了这个技巧。 3.用正确心态去做练习 很多人认为反复练习特别无聊,所以他们通常会选择跳过或尝试走捷径。...如果你快进JavaScript练习,那么最终反而需要更多学习时间。试着让练习变得令人感兴趣,这样是不是就不会那么抗拒?...有好几次,一开始只是想打开Facebook,看一小会,然后不知不觉就发现已经看了几个小时。这是怎么发生?或许正是因为并不打算看很长时间。万事开头难,一旦开了,后面陷进去就变得容易多了。...再试一次,但这次,希望你能从字面上去检查每一行代码,告诉每一行代码都发生了什么。” 这次,朋友终于能够很好地解释代码中正在发生什么。...问题关键是,他终于可以一步一步地检查了代码片段,不是囫囵吞枣想要一次性理解所有代码。 在类似于这样情况下,思考得更慢实际上能让你学得更快。

58570

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券