很抱歉,如果这看起来像是一个朦胧的问题,但这一直是困扰我一段时间。
在我的日常工作中,我编写的一些代码变得相当复杂。并不是说它通常非常技术性,但问题域本身是一个复杂的问题,处理空间数据和许多其他事情。我很确定我的NDA会禁止我提供我正在处理的任何细节,不幸的是,我必须保持这种非常一般。
现在,我只是为了降低复杂性,所以我尽量找到合适的抽象,但有没有办法通过明确地不处理实际问题来进一步减少它,但是相当一些可以操作的比喻,然后转化为我想要的实际结果?
当然,由于这个区域本身就很复杂,但我已经尝试但很多次失败(很多次!)找到正确的比喻: - (
所以我的问题是,是否有人已经完成了这项工作并发现(甚至一半找到)一种结构化的方法来推断一组给定编程问题的适当隐喻或启发式方法?
再次,如果这看起来像一个奇怪的问题,我道歉。我只是想找到成为更好的程序员的新方法。
提前致谢。
答案 0 :(得分:1)
所以我的问题是,有人已经完成了这项工作并找到了(或者 甚至一半发现)一种结构化的方式来推断一个合适的 一组给定编程问题的隐喻或启发式算法?
我可能会开始回答您的查询。这包括多个抽象层次;多个域的描述;以及"建模"的应用特定方式的技术 - 与通常在建模中所做的完全不同。我相信,整体方法是你所寻找的 - 它给出了操作的隐喻,然后转化为实际结果。它基于许多已发布的方法,并且在很大程度上依赖于其中一些方法和方法。
以下内容受以下警告影响:
这种方法所需的三个主要成分是:
多个域名
我对域名的定义比通常采用的更广泛:
域名是一个独立的真实,假设或抽象的世界 由一组独特的物体和现象表现出来的 域的规则和政策特征。在问题 在开发时,域是一个有用的考虑因素 复杂的系统。
根据此定义,系统中有多个域供考虑,通常当开发人员引用域时,它们表示问题(或应用程序)域(以下称为 P 强>)。然而,对于这种方法,系统的任何方面或系统开发都是建模的潜在主题。这包括系统架构( A );系统生产工件(代码,制作脚本,数据库模式等)( C ); DBA功能;通过隐喻来接近 P 需要开发几个这样的域 - 涉及隐喻和从隐喻到现实世界模型的转换,或者代码实现发达系统中的现实世界。当开发出多个这样的模型时,它们都被发展到相同的范围和精度。
多级抽象
为了描述问题和系统,一个模型不仅 P ,还模拟适当的更高抽象级别。因此,选择用于描述P的比喻被建模( M )。以类似的方式, A ( F )的形式主义被建模,如果认为有必要,转换过程 P 和 C 之间使用 A (<强> - [R 强>)。所以一个抽象问题领域;摘要抽象等等。
多个模型的应用类似于分色 - 它们位于彼此之上,系统必须满足所有层的所有描述(&#34;完整图片&#34;)。同样,这与通常的建模方法不同,后者倾向于通过详细说明原始模型来采用不同的约束来满足这样的多个要求。当所有体系结构域都有效地应用于所有问题域的所有元素时,这会产生特别的影响。
<强>建模强>
建模的意思与以下方面的建模方法不同:
以下示例源自我的概念证明项目,可能会给我上面的描述带来一些肉体。我列出了一些我的域名,以及域名模型的候选内容。
这种方法至少有一个主要的缺点 - 管理层认为开发模型所涉及的工作是非生产性的,没有真正的可交付成果。
这个答案的来源多种多样,但很大程度上依赖于以下作品: