最近,我们的团队继承了庞大的代码库,大约1千兆字节的c/c ++源代码.核心部分(我们实际上可能会不时修改或更新)大约650MB和57,000个文件.所以我得到了一个完美的测试用例,看看哪些源代码浏览器实际上和他们声称的一样好.以下是我的测试结果,我希望看到其他意见.我知道这个主题已经在stackoverflow中多次提出,但我对他们的任何答案都不满意(或者我错过了一些,如果是这种情况请告诉我).顺便说一句,通过源代码浏览器,我的意思是它可以帮助您轻松找到类/函数定义; 显示调用树,交叉引用,类似的东西.
visual c ++ 2010 express edition(免费版).太糟糕了,它没有费心做任何分析工作只是抱怨它找不到头文件.顺便说一句,这就是为什么我从不喜欢visual c ++; 它总是希望你以自己的方式做事,而不是让事情变得更容易.
源导航器.我几年前使用过source navigator.我发现新的名称源navigaor NG正在开发中,所以我决定尝试一下.太糟糕了,650MB代码添加到项目中,它就死了.
理解C++.我看到有人建议在这里理解c ++,所以我也尝试了一下.也不好.随着1G文件添加到它的项目,它也死了.它有650MB,可以工作但不会留下深刻印象.由于它是一个商业工具,我刚刚通过它.
代码块.1G文件将使它死亡,但650MB它可以工作.当你的鼠标指向一个函数时(例如source insight和slickedit),它不能自动显示函数定义,但是当你右键单击一个函数并选择pop时,它可以找到函数defition的大部分时间(好消息)菜单项"转到功能定义".坏消息是,当我关闭项目并再次打开它时,仍然需要很长时间才能加载.
codelite.codelite看起来像代码块(毕竟他们都使用wxWidget).但我发现codelite比代码块更好,因为当我重新打开已关闭的项目时,它的加载速度比代码块(650MB文件)快得多.它也可以通过弹出菜单找到功能定义.因此,如果有人想选择一个免费的c/c ++ IDE,我的投票就是代码.
cscope.当我在摩托罗拉GSM部门工作时,我们使用了cscope,并且有数百万行代码.但问题是我的团队成员都不擅长vim或者emacs而我们只想要一个让我们生活更轻松的IDE(我想这些评论可能会让某些人失望.抱歉,对不起)
来源见解.当然,我的测试不会错过源代码洞察力.源洞察力确实很好.但它的UI有点"丑陋",它不支持unicode.那太糟糕了.
光滑的编辑.在我的测试中,光滑的编辑和源洞察是唯一可以处理1G文件的工具,当你指向一个函数并在你输入时提供函数完成时自动显示函数定义.在我看来,光滑编辑的UI比源洞察力要好得多.我唯一的问题是它们都没有提供代码折叠(而免费的代码折叠和代码块提供).这里有一个修正:slickedit实际上有代码折叠(在视图菜单中有选择性显示),它不是那么明显,你必须先设置选择性显示!
我不尝试像eclispe CDT或netbean这样的基于Java的IDE,因为我不认为他们可以处理1G文件.
所以总结一下我做了什么,我会说如果你想要一个商业工具,我的投票就是slickedit(这不是一个卖点.我与浮油编辑没有任何关系); 如果你想要一个免费的,肯定的是codelite.
但我想听听别人的意见.
我遇到过一篇讨论"代码钦佩"问题的文章.基本上,作者讨论了开发人员应该如何对他们编写的代码持更多怀疑态度.我们如何过分"钦佩"我们的代码,将自己与自己联系起来,使我们更容易受到可能在我们面前的错误和其他不幸事件的影响.
你觉得这个问题怎么样?您是否有关于如何避免/更多地意识到这个问题的更多提示?
我意识到,作为一名编程学生,我最大的弱点就是我很难理解其他人的代码.
我对"教科书"代码或明确注释的代码没有任何麻烦,但是当给出几百行的程序,包含十几个不同的函数而没有注释时,我发现它甚至很难开始.
我知道这种类型的代码是我在职业生涯中可能遇到的代码,我认为代码理解能力差对我来说是一个很大的障碍,所以我想专注于提高我的技能在这方面.
哪些工具/技术有助于提高您的体验中的代码理解力?
你如何处理不熟悉的,未注释的代码?为什么?你认为你的技术有用吗?
谢谢
你有什么建议用作源控件,windows的项目存储库 - .NET开发环境(2个编码器,可能使用系统)
谢谢
另外:该团队还包括3名开发人员.1 vb6移动到.net,我自己在.net,和一个Web开发人员(php,javascript等)
我正在寻找的系统将很容易融入视觉工作室的ide
我目前正在撰写正式的研究报告,我将在此报告中包含代码.
问题:是否有可接受的方式在研究报告中显示代码?我在考虑字体,间距等问题,以及代码是应该在文档内部还是在附录中显示.
代码将是JavaScript和PHP.代码的所有部分都不会超过25行(因此它们仅仅是片段).将有大约六个片段.每个片段都有几个段落,解释代码中发生的事情,并讨论其优缺点.
我没有与提交报告的机构联系,也没有关于如何格式化代码的公布指南(请不要质疑这些要点).
我一直在研究Lucene 2.9特别是重做令牌流API之间的差异,它只是发生在我身上它特别难看,相比旧的只是返回一个新的或重新填充给定的值,如果你重用说Token.
我没有做任何分析,但似乎使用MAP来存储属性并不是那么有效,并且更容易创建一个包含值等的新值类型.TokenStream和Attribute的东西看起来像对象池,这几乎是不必要的这些天来,对于简单的值类型,如文本标记.
学习编程的最佳方法之一是从优秀的工程师那里阅读高质量的代码/项目.您认为哪些开源项目值得关注?我的意思是,你可以用一杯葡萄酒打印并坐在树下享受阅读的代码.
如果可以的话,还要指明软件是否适合查看,因为它的文档,设计,UML图或只是简单的代码.我相信UML在开源项目中并不常见.
有没有像项目分支这样的东西抛光代码和设计的唯一目的是给其他程序员一个伟大的软件的好例子?
有没有类似于AStyle的工具来格式化m文件中的matlab代码?
我想在我的服务器上托管git repos,但仍然有一个很好的工具来管理它们,比如Beanstalk或Assembla.
有没有人知道可下载的类似工具(除了Assembla私有)?安全性和可靠性问题不允许托管解决方案.
我目前正在开发一个项目,我们使用开源库(GPL)进行一些特定的算法和计算.稍后将由我们自己的实现替换.
我现在想知道的是,在实现您自己的库时,您可以让自己"帮助"或"启发"多少,以后应该由闭源应用程序使用.将一些代码段或过程直接从开源复制到您的实现中是不合法的.但是,如果不实际违反GPL条件,您可以遵循开源实施多少?如果您研究并理解源代码,基于此做自己的实现是合法的吗?
coding-style ×3
ide ×3
readability ×3
open-source ×2
.net ×1
git ×1
gpl ×1
hosting ×1
matlab ×1
report ×1
repository ×1
uml ×1