小编Cha*_*hap的帖子

AVL树是邪恶的吗?

我正在阅读Steve Yegge关于单身人士的文章.在其中他提到他的老师告诉他AVL树是邪恶的.只是红色和黑色的树木是更好的解决方案吗?

algorithm binary-tree avl-tree red-black-tree

24
推荐指数
2
解决办法
5176
查看次数

软件质量指标

我想知道是否有人有用于衡量软件质量的指标的经验.我知道有代码复杂度指标,但我想知道是否有一种特定的方法来衡量它在生命周期中的实际执行情况.我不是指运行时性能,而是质量的衡量标准.任何有助于收集这些工具的建议工具也是受欢迎的.

有没有测量来回答这些问题:

  • 改变/增强软件,稳健性是多么容易
  • 如果它是一个普通/一般足够的软件,它是如何重用的
  • 有多少缺陷与代码相关联
  • 是否需要重新设计/重新编码
  • 这段代码有多长时间了
  • 开发人员喜欢代码的设计和实现方式

似乎大多数情况需要与CM和错误报告工具密切相关.

metrics software-quality

7
推荐指数
1
解决办法
5951
查看次数

自上而下v.自下而上设计方法

重复:设计和编码 - 从上到下或从下到上?

我想我在最近的经历中发现,我设计软件的方式与大多数同行不同.在收集到足够的要求以获得软件中组件的高级概念之后,我倾向于采用增量自下而上的方法.

因此,在设计一个支持多个具体类的接口的情况下......我将看看每个具体候选人的共同点,询问我如何为每个具体的候选人完成工作(同时考虑强健为了未来的具体).然后我采用这组共性并建立一个界面,我认为这是一种"自下而上"的方法.

在自顶向下方法的情况下,我认为设计人员会查看接口的客户端以及客户端如何与接口交互,然后尝试实现具体类.

所以我可以看到自上而下/自下而上的优点和缺点.我只是想知道哪个更有效率,并根据您以前的经验提供更好的结果?

注意:我不是在谈论开发方法(敏捷,瀑布等),我在谈论设计方法.

architecture

6
推荐指数
1
解决办法
7734
查看次数

FlatBuffers 是否以某种方式避免了严格的别名?

我最近一直在研究 FlatBuffers 库。我正在评估它在我的项目中的使用情况。查看flatbuffers.h后,我想知道是否违反了严格别名规则,如果它确实考虑了严格别名,有人可以解释它是如何做到这一点的吗?

在之前的项目中,我通过艰难的方式了解到了这条规则,优化会带来难以发现的微妙错误。我一直在使用放置新运算符来避免使用编译器标志来解决这个问题。

链接:

c++ strict-aliasing flatbuffers

5
推荐指数
1
解决办法
584
查看次数

使用enum/int覆盖函数

如果有一个具有函数的基类DeriveMe virtual void DoSomething(int)和一个继承DeriveMe的类,它具有一个函数void DoSomething(SomeEnum)DerivedThat ...... DerivedThat是否会覆盖基类DoSomething,因为枚举在C++的编译期间计算为整数?

我可以尝试通过使DoSomething纯虚拟并编译/运行它来查看它是否有效但这是我的第一个stackoverflow问题所以我宁愿问它.

c++ compiler-construction inheritance enums

3
推荐指数
1
解决办法
1264
查看次数