当前位置:  开发笔记 > 编程语言 > 正文

超级健壮的Chrome c ++和便携式 - 提示 - 帮助 - 评论

如何解决《超级健壮的Chromec++和便携式-提示-帮助-评论》经验,为你挑选了2个好方法。

我们正在生成一个可移植的代码(win + macOs),我们正在研究如何使代码更加冗余,因为它经常崩溃...(溢出或通常不好的初始化):-(

我正在读到谷歌浏览器为每个标签使用一个进程,所以如果出现问题,那么程序不会完全崩溃,只会崩溃.我觉得这很整洁,所以我可以试一试!

所以我想知道是否有人有一些提示,帮助,阅读列表,评论或可以帮助我构建更多rubust c ++代码的东西(便携式总是更好).

在同一主题中,我也想知道是否有一个可移植的流程库(如boost)?

好多谢谢.



1> Torlack..:

Chrome的答案更多的是关于故障缓解而不是代码质量.做Chrome正在做的就是承认失败.

    更好的QA不仅仅是程序员测试他们自己的工作.

    单元测试

    回归测试

    阅读其他公司使用的最佳实践.

说实话,如果你的软件由于溢出和初始化错误而经常崩溃,那么你就有一个非常基本的编程质量问题,这个问题不容易修复.这听起来像哈希和意思,这不是我的意图.我的观点是,错误代码的问题必须是您最关心的问题(我确信这是问题).像Chrome或自由使用异常处理来捕捉程序缺陷这样的事情只会让你分心.



2> Zathrus..:

我开发了许多多平台C++应用程序(最大的是150万行代码并在7个平台上运行 - AIX,HP-UX PA-RISC,HP-UX Itanium,Solaris,Linux,Windows,OS X) .你的帖子实际上有两个完全不同的问题.

    不稳定.你的代码不稳定.修理它.

    使用单元测试在他们杀死你之前找到逻辑问题.

    如果不明显,请使用调试器找出导致崩溃的原因.

    使用boost和类似的库.特别是,指针类型将帮助您避免内存泄漏.

    跨平台编码.

    同样,尽可能使用为此设计的库.特别适用于任何GUI位.

    尽可能使用标准(例如ANSI vs gcc/MSVC,POSIX线程与Unix特定的线程模型等),即使它需要更多的工作.最小化特定于平台的代码意味着减少整体工作量,减少要学习的API.

    隔离,隔离,隔离.尽可能避免针对不同平台的内联#ifdef.相反,将平台特定代码粘贴到自己的头/源/类中,并使用构建系统和#includes来获取正确的代码.这有助于保持代码清洁和可读.

    如果可能的话,使用C99整数类型而不是"long","int","short"等 - 否则当你从32位平台移动到64位平台并且渴望突然改变时它会咬你从4个字节到8个字节.如果它曾被写入网络/磁盘/等,那么你将遇到平台之间的不兼容性.

就个人而言,我首先要稳定代码(不添加任何其他功能),然后处理跨平台问题,但这取决于你.请注意,Visual Studio具有出色的调试器(上面提到的代码库仅仅因为这个原因而被移植到Windows).

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有