我刚刚开始为一家大公司工作.在最近的一次内部审计中,测量了Cyclomatic复杂度 和文件大小等指标 ,结果发现包括我团队拥有的模块在内的几个模块的索引非常高.所以在上周我们一直专注于为我们的代码降低这些索引.通过删除决策点和拆分文件.
也许我错过了一些新人,但是,这将如何使我们的软件变得更好?,我知道软件指标可以衡量你的代码有多好,但是相反,它的工作方式却相反吗?我们的代码会变得更好,因为例如我们将10000行文件制作成4 2500行文件吗?
我已经提出了与此类似的代码的问题
void aFuncion()
{
struct entry
{
std::string field1;
int field2;
int field3;
entry(const entry& ent)
{
// copy constructor code
}
entry()
{
// default constructor code
}
entry(std::string s, int a, int b)
{
field1 = s;
field2 = a;
field3 = b;
}
}; //end of structure definition
std::vector<entry> vec;
entry en("a string", 1, 2);
vec.push_back(en); // vec has garbage in index 0
}
Run Code Online (Sandbox Code Playgroud)
将条目推入向量后,调试器仅显示向量第一个条目中的垃圾.
一旦我们从结构定义中取出了函数,问题就解决了.
为什么问题会发生怎么把定义变成函数解决了呢?
(我们正在使用VS 32 on XP 32 bit)