我正在阅读Steve Yegge关于单身人士的文章.在其中他提到他的老师告诉他AVL树是邪恶的.只是红色和黑色的树木是更好的解决方案吗?
我想知道是否有人有用于衡量软件质量的指标的经验.我知道有代码复杂度指标,但我想知道是否有一种特定的方法来衡量它在生命周期中的实际执行情况.我不是指运行时性能,而是质量的衡量标准.任何有助于收集这些工具的建议工具也是受欢迎的.
有没有测量来回答这些问题:
似乎大多数情况需要与CM和错误报告工具密切相关.
我想我在最近的经历中发现,我设计软件的方式与大多数同行不同.在收集到足够的要求以获得软件中组件的高级概念之后,我倾向于采用增量自下而上的方法.
因此,在设计一个支持多个具体类的接口的情况下......我将看看每个具体候选人的共同点,询问我如何为每个具体的候选人完成工作(同时考虑强健为了未来的具体).然后我采用这组共性并建立一个界面,我认为这是一种"自下而上"的方法.
在自顶向下方法的情况下,我认为设计人员会查看接口的客户端以及客户端如何与接口交互,然后尝试实现具体类.
所以我可以看到自上而下/自下而上的优点和缺点.我只是想知道哪个更有效率,并根据您以前的经验提供更好的结果?
注意:我不是在谈论开发方法(敏捷,瀑布等),我在谈论设计方法.
我最近一直在研究 FlatBuffers 库。我正在评估它在我的项目中的使用情况。查看flatbuffers.h后,我想知道是否违反了严格别名规则,如果它确实考虑了严格别名,有人可以解释它是如何做到这一点的吗?
在之前的项目中,我通过艰难的方式了解到了这条规则,优化会带来难以发现的微妙错误。我一直在使用放置新运算符来避免使用编译器标志来解决这个问题。
链接:
如果有一个具有函数的基类DeriveMe virtual void DoSomething(int)
和一个继承DeriveMe的类,它具有一个函数void DoSomething(SomeEnum)
DerivedThat ...... DerivedThat是否会覆盖基类DoSomething,因为枚举在C++的编译期间计算为整数?
我可以尝试通过使DoSomething纯虚拟并编译/运行它来查看它是否有效但这是我的第一个stackoverflow问题所以我宁愿问它.
c++ ×2
algorithm ×1
architecture ×1
avl-tree ×1
binary-tree ×1
enums ×1
flatbuffers ×1
inheritance ×1
metrics ×1