是否有参考设计和实施框架? 框架的特征是什么?应该是什么功能?必须涵盖哪些必要条件? ORM是否与框架相关联?
感谢
答案 0 :(得分:1)
你的问题确实有点模糊,但在编码哲学方面它有点有趣#34;我不会声称我的答案是做这些事情的唯一方法,特别是没有任何关于你的问题的具体细节。它只是我个人使用的一套指导方针,希望它们对您有所帮助。
因此,首先,您必须真正了解您要解决的问题。我不会考虑"我是出于教育目的而做的#34;作为一个选项在这里。试着问自己这样的问题:
你需要解决一个单一的问题吗?
一个简单的例子:如果您的应用程序需要对数组进行排序,或者更接近您的字段,则计算均值或偏差 - 所有这些都是奇异的问题。你真的不应该在你的应用程序中包含一套完整的已知排序算法,只是为了对数组进行排序,就像你不需要一个深度统计分析系统来计算平均值一样。我考虑开发特定于您问题的库。
目前的解决方案有什么问题?
这种通用概念作为框架通常在当前解决方案存在时诞生,但有一种方法可以更有效地与其进行交互。在某种抽象的掩盖下隐藏糟糕的代码或设计是一个非常糟糕的主意。如果当前的解决方案运行良好,但其实现似乎是一个问题,我开始重构现有代码,而不是从头开始重写或隐藏它。
这是一个反复出现的问题吗?
通用部件最有价值的特性之一是可重用性。构建通用但有用的东西总是要困难得多。更难意味着昂贵,所以你必须证明浪费时间来构建通用块。如果您没有或者不能在一个地方使用昂贵的街区,那么您可能不需要它们,而是更好地开发混凝土解决方案。
我标出这些问题的原因是我经常看到其开发人员称之为框架的代码,并且花费了大量的时间和精力,但他最终做了一些不是框架的事情,最重要的是,它应该& #39;首先是一个。
所以,我们得到了你问题的第一部分:
是否有参考设计和实施框架?框架的特征是什么?应该有什么功能?
这里适合给你一个框架专用的设计指南和功能列表,但我不认为这是一个好主意。原因如下:没有ISO或任何其他官方或广泛使用的软件框架开发标准。这是因为框架没有解决特定问题,它提供了这样做的方法 - 这是它最重要的功能。
关于框架的一个非常普遍的误解是它们必须绝对透明,并且应该能够满足任何需求。框架开发人员和用户必须明白框架是硬连线的。而这并不是因为你不能这样做。你可以,它被称为元编程。原因是框架意味着一种不变的内部行为,通常称为框架的核心"。它可能对客户端有用,可以扩展此行为,但不能修改它。
重点是,框架必须决定客户端如何与环境交互。在更严格的条款中,当客户端在框架内运行时,控制流是一种逆转:框架评估客户端的代码并进行适当的调用,现在它是调用客户端的框架,而不是反过来,就像它一样是普通的图书馆。当然,可能会有一些例外,但我在这里谈的是一般性的想法。
然后你问:
必须涵盖哪些必要条件?
正如您可能已经想到的那样,没有严格的要求。但是我想提出的建议很少:
问题的最后一部分是:
ORM是否与框架相关联?
嗯,是的,不是。如果您的框架依赖于并非特定于每个实例的数据存储,那么您应该对此进行某种抽象。在这种情况下,ORM可能是最好的方法,但我想指出的内容很少:
好的,那是你的问题,但是如果你决定开发一个合适的框架,我想补充一些提示: