您如何在C/C++代码中进行死代码检测?我有一个非常大的代码库可供使用,至少10-15%是死代码.有没有基于Unix的工具来识别这个区域?有些代码仍然使用了很多预处理器,可以自动化处理吗?
我正在使用gSoap将遗留的C++系统重构为SOA.我们有一些性能问题(非常大的XML),所以我的带领让我看看协议缓冲区.我做了,它看起来很酷(我们需要C++和Java支持).但协议缓冲区只是用于序列化的解决方案,现在我需要将它发送到Java前端.我应该从C++和Java的角度使用什么来通过HTTP(只是内部网络)发送那些序列化的东西?
PS.另一个人试图加速我们的gSoap解决方案,我只对协议缓冲区感兴趣.
我在同一家公司从一个团队搬到另一个团队.在旧团队(硬核c ++)中,我们进行了大量的单元测试.在我的新团队(也是c ++)中,他们进行功能测试.在审查期间,由于单元测试,他们拒绝我的代码.大多数团队都有兴趣学习新的东西,但不是那个VIP的人,并且有遗留的开发者方法.他必须在提交前接受代码.他抵制这种变化.建议吗?
//更新:我将在这个主题中告知我的任务发生了什么,但请理解它是一家大公司,需要时间.只是为了澄清,我做的测试很好,它总是在其他团队中工作.我不是新手.我不时需要制动依赖关系导致代码明显废话.在C++中,你有时必须这样做.这可能仅仅因为测试而引入了prod代码的变化.我认为进行单元测试证明了这种简单的改变.拥有它比拥有它更好.
// update2:感谢你提供了很多好的建议,显然这里没有灵丹妙药:(大部分球队都相信,但是2位高级(15y +)开发者仍然反对.我会简短地谈谈我的其他队员将会支持我所以我希望那些家伙会同意:)放松一下我开始学习红宝石:)
是否有任何与dynamic_cast错误处理相关的良好实践(除非您不必使用它)?我想知道我应该如何处理NULL和它可以抛出的bad_cast.我应该检查两者吗?如果我捕获bad_cast或检测到NULL,我可能无法恢复...现在,我正在使用assert检查dynamic_cast是否返回NULL值.你会在代码审查中接受这个解决方案吗?
让我们想象一下,我有一组节点,我稍后会用于我的Renderer类.然后我有一个访问者类,可以访问节点或整个集合.这很简单,因为我的节点集合只是std :: list的包装器,只需要很少的额外方法.
问题是我希望节点(而不是简单列表)具有树状结构,因此节点可以有父节点和n个子节点.这将是方便的,因为我希望能够将一个节点传递给我的Renderer并将所有内容呈现在该节点的"下方".答案可能是复合材料.
我如何一起使用访客和复合?我已经读过它通常是一个很好的组合,但我的实现看起来很糟糕......我很想念......
我喜欢Rails.vim,但我在一些项目中使用它有问题.我的一个应用程序中有两个控制器位置:
app/controllers
app/controllers/v1/api
Run Code Online (Sandbox Code Playgroud)
我可以以某种方式配置(可能在config/rails.vim中?)这个额外的路径吗?我想同时使用它们.
我可以像这样用手导航:
:Rcontroller v1/api/messages_controller.rb
Run Code Online (Sandbox Code Playgroud)
但是:来自此控制器的Rmodel不起作用,它会尝试跳转到models/v1/api/model.rb
我在其中一个应用程序中介绍了访问者作为核心架构思想之一.我有几个访问者使用相同的东西.现在,我该如何测试呢?我正在考虑的一些测试比单元测试要大一些(集成测试?无论如何),但我仍然想做.您将如何测试代码,例如来自访客模式的维基艺术的C++示例
我是C++ dev从vim/g ++迁移到visual 2010 c ++.在博客中我已经读过VC++目录不再存在,我应该在vs 2010中使用属性页但我不知道如何......这就是我需要做的.我有解决方案(50个项目很强),所有这些都使用boost,pthreads,xercesc和其他一些libs.我有env变量指向我硬盘上的那些库.如何告诉VS将它们用作额外的包含路径?同样,它是2010版本,所以没有vs每个解决方案设置可用.我不想在每个项目中手动设置它.
我正在使用Solaris上的+ 1M LOC C/C++项目(远程,通过VNC或SSH).我在本地计算机上也有每日更新的源代码副本(Windows,仅用于浏览代码).
我使用VIM和ctags组合(在Solaris和Windows上),但我对结果/速度不满意.你会推荐什么样的ctags设置?应该标记什么以及如何标记有很多选项.我应该为每个项目,每个目录使用单个标记文件,还是只为每个项目使用一个?
我每隔x秒就检查一次Oracle数据库表以查看是否有新数据要处理(其他实时应用正在填充它).
我们的新客户业务流程迫使我们实时填充此表,同时包含大量记录(比如10 000),但每天只有几次.下次我的应用程序检查是否有任何要处理的内容时,它会遇到10 000条记录并尝试处理它.
它设计得不是很好,而且规模不够好.快速修复将限制应用程序从Oracle获取的记录数,下次它将选择另外50(或其他)等.
如何在Oracle SQL中限制返回的记录数?订单很重要!
select *
from cool_table where date >= to_date('200901010000', 'YYYYMMDDhh24mi')
order by seq_nr, entry_dts;
Run Code Online (Sandbox Code Playgroud) 我正在为我公司的一些Flex峰值工作.我们基本上是在评估不同的场景等.您建议将Flex组件嵌入Java应用程序的解决方案是什么?Flex < - > Java通信不是(还有......)问题,只是将swf嵌入到JFrame中.
我的项目即将引入 SOAP。它将用于 C++ <-> Java 和 C++ <-> Flex 通信。我负责重构我们的应用程序以利用 Java 业务规则引擎和新的 Flex gui。
C++ SOAP 必须阅读哪些资源?我读过W3材料。我们可能在 Solaris 机器上使用 gSOAP。
我每天都在为Solaris10上的C++开发做TDD.它大大减少了我花在使用调试器上的时间,但有时这是唯一的选择.
DBX非常强大,但不是那么用户友好.请注意,我说的是控制台DBX而不是用于DBX的SunStudio GUI.
您可以为dbx C++调试提供哪些最佳生产力提示?
PS.更改调试器不是一个选项.
c++ ×9
java ×2
unit-testing ×2
vim ×2
visitor ×2
apache-flex ×1
automation ×1
composite ×1
cscope ×1
ctags ×1
dbx ×1
dead-code ×1
debugging ×1
dynamic-cast ×1
flash ×1
gsoap ×1
http ×1
legacy-code ×1
oop ×1
oracle ×1
rails.vim ×1
soap ×1
solaris ×1
sql ×1
visual-c++ ×1