在实现任何代码之前评估设计的任何好方法?

5 architecture

是否有任何启发式方法用于确定设计中是否存在缺陷?或者它是否具有经验带来的主观技能?我经常看到工程师选择第一个设计,然后根据结果进行调整,这可以完成工作,但这很费时间.我想知道SO的想法是什么.

Rüd*_*nke 2

就我个人而言,我经常使用Alloy来获得对我的设计更有信心 - 这是一篇关于它(以及其他同类工具)的文章,很好地描述了它。并不是所有人都相信这些东西,它当然也不适合所有人,但每次我接触它时它都会对我有所帮助,即使我不使用它,知道它会如何分析我的东西也会有所帮助。

我认为设计的一部分确实是一些主观技能。我总是尝试将设计中的概念减少到最少。我更喜欢编写一个简单、最小的核心,并在顶部放置一个(或两个)层,将概念映射到底层。有时有多个最小集。是否做出了正确的选择通常是不清楚的,直到人们提出您在原始设计中没有想到的新要求为止。然后我想回想一下,如果我选择了另一个最小集,添加会更容易还是更困难。最近的项目表明我慢慢对此有了好感:)。

所以是的,我想经验很重要。我认为除非你犯了很多错误,否则你不可能真正擅长设计。

我真的很喜欢这个设计展示的建议。过去我也经常思考这个问题。我认为如果您想将设计展示给其他人(至少以某种方式让每个人都了解您将要做什么),您确实需要对设计有很好的理解。