问题标签 [software-design]

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 投票
6 回答
44359 浏览

oop - 耦合和内聚

我试图将耦合和内聚的概念归结为一个简洁的定义。有人可以给我一个简短易懂的解释(比维基百科上的定义短这里这里)?他们如何互动?

谢谢。

有人有一个好的,简短的例子吗?

0 投票
3 回答
754 浏览

software-design - 软件设计描述实践

有多少人在编写一行代码之前实际编写了 SDD 文档?

您如何处理大型 CSCI?

您对 SDD 内容使用什么标准?

你做过什么剪裁?

0 投票
8 回答
1185 浏览

javascript - 是否值得将我的函数式 JavaScript 代码转换为面向对象的设计?

我目前正在构建一个包含大量 JavaScript 的小型 Web 应用程序。当我对最初的想法进行原型设计时,我只是将几个函数拼凑在一起,以展示应用程序最终将如何表现,并打算继续以面向对象的性质重新编写 JavaScript。

现在我进入了实现阶段,我发现为了面向对象而创建面向对象的 JavaScript 似乎有些矫枉过正——该项目未来不太可能需要进行任何重大修改,以保证和面向对象的设计。相反,我发现一组简洁、有凝聚力的函数运行良好。

那么,话虽如此,并试图坚持 KISS 原则,当一组函数为问题提供合适的解决方案时,是否还有其他理由值得考虑将我的代码转换为面向对象的设计?

0 投票
9 回答
214 浏览

process - 在决定一个功能时,你会做什么?

您主要考虑实施它的原因,还是不实施它的原因?各有什么优势?

0 投票
7 回答
2095 浏览

refactoring - 什么时候召集四人组?[什么时候使用设计模式?]

采访 Joel 的游击队指南中说,想要完成任务但不聪明的人会做一些愚蠢的事情,比如使用访问者设计模式,其中一个简单的数组就足够了。

如果应该应用四人组建议的设计模式,我发现很难检测到。

因此,我想从你的工作经历中举一些例子

  • 什么时候一个简单的方法(固定大小的数组)就足够了?
  • 证明使用 GoF 模式的软件的最小大小是多少?
  • 何时从头脑简单重构为 GoF?这可以以明智的方式完成吗?
0 投票
3 回答
255 浏览

user-interface - 什么时候应该更新 UI?

我正在为我的教职员工开发一个在线工具,以计算他们的学位最终成绩,有一段时间我遇到了一些小问题。学生们似乎喜欢使用新的 UI,而且我已经有一段时间没有受到批评了。现在,我需要为程序添加一些功能,这意味着 UI 将不得不稍微碰巧,但在一些非常引人注目的地方。

在观看了整个新 Facebook 的开始之后,以及SO 上UI 不好的应用程序和 MS Office 上的 Ribbon 收到了褒贬不一的评价后,我一直在想,如果用户似乎喜欢,是否真的应该改变 UI它。是否应该在多年后更新 UI 以保持用户的兴趣/提高效率?为了干净的 UI 是否应该保留功能?

0 投票
11 回答
3830 浏览

agile - 哪些情况下不适合敏捷?

多年来,我一直在听到和阅读有关敏捷的信息。我拥有一两本书,我喜欢这个主意。

我终于可以在我工作的地方推出这样的东西了,但我非常担心这是否适合我们:

  • 这没有最小尺寸吗?对于三到四个星期的项目来说,前期的大型设计必须更有效率......对吗?
  • 我们的客户通常要求固定价格。他们需要知道他们在处理什么,除非在特殊情况下,我们遇到了一个明显的黑洞,即使这样,人们也更愿意戴上帽子。那么,如果您要采用能够容忍持续需求变化的流程,您如何提供报价呢?
  • 我知道敏捷可以在更复杂的项目中提供更好的成功几率,但它不会增加客户的成本吗?当然,还有不考虑的代价——也许我们又回到了最小尺寸问题。
  • 您将如何向客户解释这种违反直觉的方法?非技术利益相关者可能没有经验来围绕瀑布之外的任何事情。
  • 即使是内部项目,也有预算。我错过了什么?
  • 最近似乎有人反对敏捷。其他东西会很快开始受到关注吗?

注意:我们是一个 5 开发商店,项目从一两天到几个月不等。我不相信有一种方法可以统治所有这些,但是找到足够灵活的方法来适应我们所有的项目会很棒。

非常感谢!

布赖恩·麦凯

0 投票
2 回答
275 浏览

software-design - 您在序列图中寻找什么来表明系统架构良好?

如序列图所示,您在方法调用序列中寻找哪些指示良好实践的习语?

0 投票
3 回答
3786 浏览

php - PHP 应用程序的主要组件/层是什么?

PHP 应用程序的主要组件是什么?我想出了这些:

  1. 数据库
  2. HTML 模板
  3. 会话/Cookies/身份验证
  4. 用户输入($_GET 或 $_POST 或 URL 段)

这些是主要成分还是有其他成分?

我问这个的原因是我可以将每个“对象”放在自己的类中,而不必担心它在技术上的可行性。例如,我可以有一个 Post 类,它允许您将帖子添加到博客,而不必担心它如何与系统/php 语言的其余部分相匹配等。

0 投票
9 回答
10074 浏览

php - 您使用什么 PHP 应用程序设计/设计模式?

请与我分享您最喜欢的用于 PHP 的应用程序设计/设计模式。我想知道的一些事情:

  • 您的文件夹是如何设计的
  • 如何在 PHP 应用程序中使用面向对象
  • 你有处理 CRUD、分页或任何其他常见任务的标准方法吗?
  • 如何避免使用重复代码?您对库/共享公共代码等的方法是什么?
  • 有哪些方法可以让你的代码更优雅?

您不必回答所有这些问题,回答其中的任何一个或几个都会有所帮助。

我问这个的原因是因为我非常厌倦用 PHP 编写重复的、丑陋的代码,我想为我的自由职业项目制作一个小框架,这将使编程更容易,让我专注于具有挑战性的/业务任务而不是表单验证、分页和其他构成 PHP 编程工作 80% 的日常活动

所有意见表示赞赏!