我昨天整理了一堂课,做了一些有用的工作.我开始进行alpha测试,并且在某些时候意识到我正在为类本身添加与alpha测试相关的方法.它打击了我,他们不属于那里.在经过一些努力之后,我从基类中派生了一个测试类,该类也可以访问受保护的成员.我把所有与测试相关的方法,并在测试类中设置和拆除,并使基类倾斜,并且正如俗话所说的那样.
在这里浏览了一段时间后,我发现一条评论建议使用这种技术,使测试类成为真正的类的朋友.
回想起来,这些技术对我来说应该是显而易见的.
我正在寻找的是专门的alpha测试/单元测试类的技术,而不会增加被测试类的重量.
您个人使用了哪些技巧并推荐?
artificial-intelligence heuristics traveling-salesman nearest-neighbor genetic-algorithm
最近,SourceSafe与visual studio的集成开始表现不佳,因为我们已经移动了,而SourceSafe"服务器"位于VPN上,经历了一个缓慢的连接.这使得在visual c ++ 6中加载大型项目需要5分钟以上,因为它必须与每个项目的"服务器"进行通信.此外,有一些错误在集成中是危险的(某些共享项目的自动检出将在分支文件的错误版本上获得最新版本).这导致我想要禁用SourceSafe集成,但是我没有找到任何菜单选项或卸载选项.谷歌已报告了一些注册表调整,但似乎没有一个工作.
有没有人知道从Visual C++ 6中删除SourceSafe集成的简单方法,而不是完全卸载SourceSafe?
首先,对于任何交叉发布,我们深表歉意。希望我不会在这里重复问题,但我无法在其他地方找到它(通过 Google 和 Stack Overflow)。
这是错误的要点。如果我打电话printf,sprintf或者fprintf我的代码中的任何位置,显示浮动,我得到一个SIGSEGV (EXC_BAD_ACCESS)错误。让我举个例子吧。
以下抛出错误:
float f = 0.5f;
printf("%f\n",f);
Run Code Online (Sandbox Code Playgroud)
此代码不会:
float f = 0.5f;
printf("%d\n",f);
Run Code Online (Sandbox Code Playgroud)
我意识到那里有一个隐式转换,但我并不关心。我只是无法理解为什么打印浮点数与打印整数会引发错误。
注意:部分代码用于malloc创建一些非常大的多维数组。但是,这些打印语句没有以任何方式引用这些数组。这是我如何声明这些数组的示例。
#define X_LEN 20
#define XDOT_LEN 20
#define THETA_LEN 20
#define THETADOT_LEN 20
#define NUM_STATES (X_LEN+1) * (XDOT_LEN+1) * (THETA_LEN+1) * (THETADOT_LEN+1)
#define NUM_ACTS 100
float *states = (float *)malloc(NUM_STATES * sizeof(float));
// as opposed to float states[NUM_STATES] (more memory effecient)
float **q = (float**)malloc(NUM_STATES * sizeof(float*)); …Run Code Online (Sandbox Code Playgroud) 这是我的基本查询
select distinct a.projects , case when(billing_fy!=0)
then(select round(((sum(cost_project)/(sum(billing_fy)/((10/12)*365)))),2)
from table1 b
where a.projects = b.projects
group by projects)
else 0 end as "WIP days outstanding"
from table1 a
Run Code Online (Sandbox Code Playgroud)
它会产生以下输出
Projects WIP days outstanding
History - AURANGABAD - NASIK 0
History - PUNE - MUMBAI 0
History - NASIK - MUMBAI 89.92
History - SASAGRAM - MUMBAI 0
History - SASAGRAM - MUMBAI 1386.52
History - AURANGABAD - MUMBAI 83.25
Run Code Online (Sandbox Code Playgroud)
现在我需要的是显示除第4行以外的所有行.我首先使用case语句的原因是因为如果我这样做(billing_fy!= 0子句是为了防止由除以0引起的错误)
select projects,
round(((sum(cost_project)/(sum(billing_fy)/((10/12)*365)))),2) as "WIP days outstanding"
from …Run Code Online (Sandbox Code Playgroud) 我试图创建一个宏,只有当它是一个调试版本时才执行代码块.我设法只在启用调试时才执行一行,但我无法弄清楚如何执行整个代码块.
一行宏如下:
#include <iostream>
//error checking
#if defined(DEBUG) | defined(_DEBUG)
#ifndef DBG_ONLY
#define DBG_ONLY(x) (x)
#endif
#else
#ifndef DBG_ONLY
#define DBG_ONLY(x)
#endif
#endif
int main () {
DBG_ONLY(std::cout << "yar" << std::endl);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我开发的一些平台没有分析工具.我正在寻找您个人用来帮助您识别热点的建议/技巧,而无需使用分析器.
目标语言是C++.
我对你个人使用的东西很感兴趣.
我当前分配给的程序要求在实际处理之前将表的内容复制到备份表.
在代码审查期间,一位同事指出了这一点
INSERT INTO BACKUP_TABLE
SELECT *
FROM PRIMARY_TABLE
Run Code Online (Sandbox Code Playgroud)
风险太大,因为表可能有不同的列和不同的列顺序.
我也受限于不创建/删除/重命名表.〜唉〜
表中的列预计会发生变化,因此简单地对列名进行硬编码并不是我正在寻找的解决方案.
我正在寻找合理的非风险方式来完成这项工作.
我有一个业务用户尝试编写自己的SQL查询以获取项目统计报告(例如任务数量,里程碑等).查询开始声明80多列的临时表.然后,在将近500行代码中,临时表中有大约70个UPDATE语句,每个代码都包含自己的一组业务规则.它使用临时表中的SELECT*完成.
由于时间限制和"其他因素",这种情况已经匆忙投入生产,现在我的团队仍然坚持支持它.性能是令人震惊的,虽然由于一些整洁,它很容易阅读和理解(虽然代码气味是令人讨厌的).
我们应该关注哪些关键领域,以加快速度并遵循良好做法?
如果我有一个很大的结构(有很多成员变量).这个结构指针传递给我的代码中的许多函数.在几乎所有函数中,这种结构的一些成员变量经常被使用.
如果我将那些经常使用的成员变量放在结构声明的开头,它是否会优化MCPS的代码 - 每秒百万个周期(代码消耗的时间).如果我按时将频繁访问的成员放入,那么它们是否会被有效/更少地访问,而不是将它们随机地放在结构声明底部的结构中?如果是的话逻辑是什么?
如果我在某个函数中访问了一个结构成员,如下所示:
structurepointer1-> member_variable
如果我将它分配给局部变量然后访问局部变量,它是否有助于在MCPS方面优化它,如下所示?
local_variable = structurepointer1->member_variable;
Run Code Online (Sandbox Code Playgroud)
如果是,那它有什么帮助?
c++ ×3
c ×2
oracle ×2
sql ×2
copy ×1
heuristics ×1
homebrew ×1
malloc ×1
optimization ×1
oracle11g ×1
printf ×1
profile ×1
profiler ×1
refactoring ×1
unit-testing ×1
visual-c++-6 ×1