问题标签 [principles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
9318 浏览

design-patterns - 函数式编程的原则、最佳实践和设计模式

在用函数式编程语言编写代码时,是否有任何已知的原则、最佳实践和设计模式可以遵循?

0 投票
2 回答
544 浏览

c# - 如何组织我的课程?

我正在 ASP.NET MVC 中开发一个小项目来管理照片,但我不知道如何在命名空间中组织我的类。

我有 2 个基类(照片和类别)。我应该把这些类放到哪个命名空间中?领域?POCO/POJO?

对于数据访问,我在 DAO 命名空间中有更多的 2 个类,PhotoDAO 和 CategoryDAO。(这样对吗?)

我应该把我的业务逻辑类放在哪个命名空间以及如何命名它们?

有人对我必须使用/学习哪些设计模式有任何建议吗?

我很抱歉问了这么基本的问题。谢谢你。

0 投票
5 回答
777 浏览

html - 用 HTML doctype 在 XHTML 中编写网页的一部分有什么问题吗?

我最近才开始学习 HTML/CSS,并且一直在尝试自学可靠的 Web 编程实践。我对 XML 很熟悉,所以用 XHTML 编写网页非常直观,而且看起来还不错。但是,我一直在阅读这样的文章 现在我很矛盾。

我对 HTML 和 XHTML 编码的担忧源于以下几点:

  1. img 标签不需要在 HTML 中关闭,这对我来说很有意义。但是在 XHTML 中,img 标签需要一个看起来有点时髦的关闭标签。我只是觉得有一对打开和关闭标签之间没有任何东西是很奇怪的。
  2. p 标签(如段落中)不需要在 HTML 中关闭,这对我来说很时髦。像在 XHTML 中那样在打开和关闭标签之间划分段落是有意义的。

这些是我目前能想到的唯一基本示例,但我希望它们至少能说明我在 HTML 和 XHTML 之间的分歧。所以这是我的实际问题:当我编写一个应该是 HTML(带有 HTML DTD)的网页时,是否可以输入 XHTML 代码(当我觉得它适当地澄清了某些事情时)?我确信网站看起来会一样,但如果人们查看我的来源,他们会认为我是一个非常不专业的编码器吗?

此外,我一直在盲目地通过谷歌浏览关于健全网络编程实践的教程和指南,我想知道你们是否有任何建议/资源与我分享。我真的很想确保我正在学习如何以正确的方式做到这一点。我真的很感激。

谢谢阅读!

编辑:哇,这么快的反应;你们太棒了!所以我知道网络浏览器在处理这类事情时会非常宽容。然后我的问题是虚荣心的问题,以及其他专业人士对编写一种 XHTML 和 HTML 的混合体的感受。严格合规的代码是要走的路吗?老实说,我只是不想看起来像个白痴,哈哈。

0 投票
8 回答
3238 浏览

oop - OO软件设计原则

我是SOLIDDRY等软件设计原则的忠实粉丝。面向对象软件设计还有哪些其他原则?

笔记。我不是在寻找诸如“评论你的代码”之类的答案,而是寻找像鲍勃叔叔所讨论的那样的面向对象设计原则。

0 投票
2 回答
302 浏览

oop - 数据访问:“告诉,不要问”的例外?

数据访问对象是“告诉,不要问”规则的例外吗?例如,从表数据网关获取最后 10 个帖子?

0 投票
4 回答
525 浏览

javabeans - JavaBeans 的设计如何与信息隐藏相匹配?

两个学期前,我有一位教授说:

你们中的一些人被告知总是为所有私有实例变量包含 setter 和 getter 方法。我说这打破了信息隐藏,并经常导致无法强制执行不变量的系统。

现在,这听起来对我来说是正确的。但是,包括这些类型的 setter/getter 不是创建 JavaBeans 的核心部分吗?如果是这样,为什么?如果不是,我对 JavaBeans 有什么误解?

0 投票
9 回答
923 浏览

c++ - 标题背后的理由是什么?

我不太明白有标题的意义。这似乎违反了 DRY 原则!标头中的所有信息都(可以)包含在实现中。

0 投票
4 回答
14208 浏览

couchdb - CouchDB 文档建模原则

我有一个问题,我一直试图回答一段时间,但无法弄清楚:

您如何设计或分割 CouchDB 文档?

以博客文章为例。

半“关系”的方法是创建一些对象:

  • 邮政
  • 用户
  • 评论
  • 标签
  • 片段

这很有意义。但是我正在尝试使用 couchdb(出于所有原因,它很棒)来模拟相同的东西,而且这非常困难。

那里的大多数博客文章都为您提供了如何执行此操作的简单示例。他们基本上以相同的方式划分它,但是说您可以为每个文档添加“任意”属性,这绝对是不错的。所以你会在 CouchDB 中有这样的东西:

  • 发布(在文档中带有标签和片段“伪”模型)
  • 评论
  • 用户

有些人甚至会说你可以把评论和用户扔在那里,所以你会有这个:

p>

这看起来非常好,很容易理解。我也了解您如何编写仅从所有 Post 文档中提取评论的视图,以将它们放入评论模型中,与用户和标签相同。

但后来我想,“为什么不把我的整个网站放在一个文档中呢?”:

p>

您可以轻松地制作视图以找到您想要的内容。

那么我的问题是,您如何确定何时将文档划分为较小的文档,或者何时在文档之间建立“关系”?

我认为它会更加“面向对象”,并且更容易映射到值对象,如果它像这样划分:

p>

...但随后它开始看起来更像是一个关系数据库。很多时候我继承了一些看起来像“整个站点在一个文档中”的东西,所以用关系来建模它更加困难。

我已经阅读了很多关于如何/何时使用关系数据库与文档数据库的内容,所以这不是这里的主要问题。我只是想知道,在 CouchDB 中建模数据时应用什么好的规则/原则。

另一个例子是 XML 文件/数据。一些 XML 数据的嵌套深度超过 10 层,我想使用相同的客户端(例如 Ajax on Rails 或 Flex)来可视化它,我将从 ActiveRecord、CouchRest 或任何其他对象关系映射器呈现 JSON。有时我会得到整个站点结构的巨大 XML 文件,如下所示,我需要将其映射到值对象以在我的 Rails 应用程序中使用,这样我就不必编写另一种序列化/反序列化数据的方式:

p>

所以一般的 CouchDB 问题是:

  1. 您使用什么规则/原则来划分文件(关系等)?
  2. 可以将整个网站放在一个文档中吗?
  3. 如果是这样,您如何处理具有任意深度级别的序列化/反序列化文档(如上面的大型 json 示例或 xml 示例)?
  4. 或者你不把它们变成 VO,你只是决定“这些太嵌套到对象关系映射,所以我将使用原始 XML/JSON 方法访问它们”?

非常感谢您的帮助,如何用 CouchDB 划分数据的问题让我很难说“从现在开始我应该这样做”。我希望能尽快到达那里。

我研究了以下站点/项目。

  1. CouchDB 中的分层数据
  2. CouchDB 维基
  3. 沙发 - CouchDB 应用程序
  4. CouchDB 权威指南
  5. PeepCode CouchDB 截屏视频
  6. 沙发休息
  7. CouchDB 自述文件

...但他们仍然没有回答这个问题。

0 投票
1 回答
180 浏览

security - 强链接 - 软件安全中的弱链接

给我一个例子,说明如何在为软件设计安全组件时应用强链接 - 弱链接原则。软件安全中是否存在这样的“弱”模块概念,如果发生攻击,这些模块将首先故意失败,并确定攻击者无法访问和破坏任何其他更敏感的数据?

0 投票
1 回答
164 浏览

package - 封装和组件设计的指南/原则

好的,我们的 Visual Studio 解决方案在其中的项目数量方面增长很大。除了显而易见的事情外,我想检查它现在的方式是否是它必须的,或者我们可以更好地重新组织/打包它。

你知道我可以参考的关于指南、封装和组件设计原则的任何好的文本吗?深入的东西,具有良好的分析,而不仅仅是 a、b、c 层或第 1、2、3 层等。

谢谢。