所以我们在我们的项目中有这个巨大的(11000行巨大的?)mainmodule.cpp源文件,每次我都要触摸它时我都会感到畏缩.
由于这个文件是如此中心和大,它不断累积越来越多的代码,我想不出一个让它真正开始缩小的好方法.
该文件在我们产品的几个(> 10)维护版本中使用并主动更改,因此很难重构它.如果我"简单地"把它分开,比如说开始,分成3个文件,那么合并来自维护版本的变化将成为一场噩梦.而且,如果你拆分了一个历史悠久且历史悠久的文件,跟踪和检查历史中的旧变化SCC突然变得更加困难.
该文件基本上包含我们程序的"主类"(主要内部工作调度和协调),因此每次添加一个功能时,它也会影响该文件,并且每次增长时都会影响该文件.:-(
在这个情况下,你会怎么做?有关如何将新功能移动到单独的源文件而不会弄乱SCC工作流程的任何想法?
(关于工具的注意事项:我们使用C++ Visual Studio;我们使用AccuRevas SCC但我认为这里的类型SCC并不重要;我们Araxis Merge用来做实际比较和合并文件)
我的Visual Studio 2008设置存在严重问题.我收到了一个非常有用的错误'加载安装组件时遇到了问题.取消设置.' 每当我尝试卸载,重新安装或修复Visual Studio 2008(团队系统版本).如果我无法解决这个问题,我别无选择,只能完全擦拭我的电脑并重新开始,这将花费一整天!我最近在尝试构建有关内存耗尽的项目时遇到了非常奇怪的错误(尽管当时有大约2GB的物理内存空闲),这使我当前的VS安装无用.
注意我在安装VS2008 之后使用SQL Server文件夹中的vs_setup.msi文件安装了VS2005 shell版本,以便在Business Intelligence Development Studio中获得对SQL Server 2005 Reporting Services设计器的访问权限(这在VS2008中无法解释).
有没有人有这个问题的解决方案?
PS:我知道这是没有直接关系的节目,但是我觉得这是适当的,从而它直接关系到我的能力在所有的程序!
注意:一位同事找到了这个问题的解决方案,希望这可以帮助其他人解决这个问题.
installation maintenance visual-studio-2005 visual-studio-2008 visual-studio
我需要从远程仓库中删除旧的和未维护的分支.我正试图找到一种方法来列出他们上次修改日期的远程分支,但我不能.
有人知道以这种方式列出远程分支的简单方法吗?
高度重复的代码通常是一件坏事,并且有一些设计模式可以帮助减少这种情况.然而,由于语言本身的限制,有时它是不可避免的.以下示例来自java.util.Arrays:
/**
* Assigns the specified long value to each element of the specified
* range of the specified array of longs. The range to be filled
* extends from index <tt>fromIndex</tt>, inclusive, to index
* <tt>toIndex</tt>, exclusive. (If <tt>fromIndex==toIndex</tt>, the
* range to be filled is empty.)
*
* @param a the array to be filled
* @param fromIndex the index of the first element (inclusive) to be
* filled with the specified value
* @param toIndex …Run Code Online (Sandbox Code Playgroud) 我最近发现并修复了我正在处理的网站中的一个错误,导致表中数百万个重复的数据行即使没有它们也会非常大(仍然是数百万).我可以很容易地找到这些重复的行,并可以运行单个删除查询来终止它们.问题是尝试一次性删除这么多行会长时间锁定表,如果可能的话我想避免这种情况.我可以看到摆脱这些行的唯一方法,而不是取下网站(通过锁定表):
我只是想知道是否有其他人之前有这个问题,如果是这样,你如何处理它而不取下网站,并希望,如果有任何中断用户?如果我使用2号或类似的方法,我可以安排这些东西在深夜运行并在第二天早上进行合并,并且让用户提前知道,这不是什么大问题.我只是想看看是否有人有更好或更简单的方法来进行清理.
使用JDBC时,我经常遇到类似的结构
ResultSet rs = ps.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
// Some other actions
}
Run Code Online (Sandbox Code Playgroud)
我问自己(以及代码的作者)为什么不使用标签来检索列值:
int id = rs.getInt("CUSTOMER_ID");
Run Code Online (Sandbox Code Playgroud)
我听过的最好的解释是关于表现的.但实际上,它是否会使处理速度极快?我不相信,尽管我从未进行过测量.即使按标签检索会慢一点,但在我看来,它提供了更好的可读性和灵活性.
那么有人可以给我很好的解释,避免通过列索引而不是列标签来检索列值吗?这两种方法的优点和缺点是什么(可能是关于某些DBMS)?
我有几个编程工作.每个人有20-50名开发人员,项目持续3 - 5年.
每次都是一样的.有些程序员很聪明,有些程序员很平均.每个人都有自己的CS学位,每个人都阅读设计模式.意图是好的,人们正在努力编写好的代码,但几年后代码变成了意大利面条.模块A中的更改突然中断了模块B.除了编写模块的人之外,总有这些代码部分无人能理解.改变基础设施是不可能的,向后兼容性问题阻碍了良好的功能进入.有一半时间你只想从头开始重写所有内容.
比我更有经验的人将此视为正常.是吗?它必须是吗?我该怎么做才能避免这种情况,或者我应该接受它作为生活中的事实?
编辑:伙计们,我对这里的回复数量和质量印象深刻.这个网站及其社区摇滚!
我开始觉得使用正则表达式会降低代码的可维护性.正则表达式的简洁性和强大功能有些恶意.Perl将其与副作用(如默认运算符)相结合.
我有习惯记录正则表达式,至少有一个句子给出基本意图,至少有一个匹配的例子.
因为构建了正则表达式,所以我觉得对表达式中每个元素的最大组件进行注释是绝对必要的.尽管如此,即便是我自己的正则表达式让我摸不着头脑,好像我在读克林贡一样.
你故意愚弄你的正则表达式吗?你是否将可能更短,更强大的那些分解成更简单的步骤?我放弃了嵌套正则表达式.是否存在由于可维护性问题而避免的正则表达式构造?
不要让这个例子覆盖这个问题.
如果迈克尔·艾什的下面有一些错误,你会有什么可以做任何事情,但完全扔掉它?
^(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[13-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$
Run Code Online (Sandbox Code Playgroud)
根据请求,可以使用上面的Ash先生的链接找到确切的目的.
比赛 01.1.02 | 11-30-2001 | 2000年2月29日
非比赛 02/29/01 | 13/01/2002 | 11/00/02
我继承了一个PHP项目,结果证明这是一场噩梦.以下是重点:
由于所有这些问题,开发速度令人沮丧.除了向Stack Overflow发泄我的挫折之外,还有关于如何开始这个烂摊子的任何建议?我自己也很熟悉PHP开发,但它似乎设置了某种开发环境,以便在不破坏实时服务器的情况下测试更改是第一步.有关如何入门的任何提示?什么是典型的测试方法?在我的桌面上设置本地版本的网站似乎需要做很多工作(服务器是Linux,但这里的桌面是Windows).我可以在实时服务器上创建一个子目录进行测试,还是......?那数据库怎么样?
其次,是否有某种分析我能够跟踪服务器上实际使用的文件?我想删除实际上没有包含的重命名的副本.更好的是,有没有办法告诉文件的哪些部分没有被执行?有许多复制的函数和垃圾,我怀疑它们也没有被使用.同样,对于包括,任何解决混乱的提示?
好吧,我会停止在这里发泄,让自己受到每个人的怜悯.:)
我过去为几个项目构建了基于PHP的"运行状况检查"脚本,但它们总是为场合定制,而不是作为独立产品进行抽象编写.我想知道这种解决方案是否存在.
我通过"健康检查"获得的是一个受保护的网页,其功能与单元测试套件非常相似,但在更具操作性的级别上,显示红色/黄色/绿色状态等
您是否在您的应用程序和网站中执行此操作或部分操作?
是否有任何标准化工具可以带来执行测试的所有功能(理想情况下是插件),只需要相应配置?
我说的是一个轻量级的解决方案,甚至可以在最小的基于PHP的Web包上运行,没有扩展和服务器访问.
也许有一种方法可以使用一个可用于PHP的单元测试框架(最好是PHPUnit)来设置它?如果是这样,您是否知道任何资源/教程概述如何?
更新:似乎没有一个流行的现成解决方案,否则,有超过100个视图,我相信会有一些提及它.由于最初对构建开源项目这样的工具感兴趣,请随时发布一个理想的解决方案,以及它必须具备的功能.
maintenance ×10
java ×2
php ×2
branch ×1
c++ ×1
coding-style ×1
git ×1
guava ×1
installation ×1
jdbc ×1
mysql ×1
optimization ×1
preprocessor ×1
readability ×1
regex ×1
resultset ×1
sql-delete ×1