问题标签 [application-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.
wpf - ViewModel 将自己注入其子 ViewModel 是否正确?
我创建了一个MVVM 测试应用程序,它在运行时读取 XML 文件以动态创建菜单,并根据用户选择的内容动态加载到该页面的 UserControl 中。结果是一个很好的 MVVM 模式,它允许您在每个页面中拥有一个 View/ViewModel 对,所有这些都在 XML 文件中定义。非常好。
所以现在我只是为开发人员添加了在一个页面上创建一个按钮的功能,该按钮可以转到另一个页面。我这样做的方法是在 MainViewModel 我在 ObservableCollection 中构建 ViewModel 的集合,当我构建每个时,我将 MainViewModel 本身(this)注入每个 UserControl-ViewModel 的构造函数中。这样,每个 UserControl 内部都有 MainViewModel,以便开发人员可以通过 MainViewModel 操作应用程序(例如调用 SwitchPage(idCode))。
此外,我需要保存的任何全局状态都可以保存在每个 UserControl 可以访问的 MainViewModel 中。
此外,每个 UserControl (PageItem) 都可以完全访问其他每个 UserControl,这使我基本上可以从任何 UserControl 控制应用程序中的任何内容,这是我长期以来一直试图在 MVVM 应用程序中实现的。
所以我的问题是:这种 ViewModel 注入是有用/已知的模式,还是将 ViewModel 注入其子 ViewModel 是否存在问题?它对我来说似乎是递归的,但似乎工作正常,并为我提供了迄今为止我想要的功能。从我从复合应用程序库架构中学到的知识来看,这似乎与那里正在发生的事情相似,例如,在下面的代码中,我可以根据需要将其他应用程序对象注入到我的 ViewModel 中。
php - 有没有更好的方法来获取旧数据?
假设你有一个这样的数据库:
你想获得数据库中的书籍总数,最简单的可能是 sql:
但是现在你想得到上个月的书籍总数......
编辑:但自上个月以来,有些书已从表中删除
很明显,你不能总计过去一个月 - “书籍”表始终是最新的,并且一些记录已经被删除
我的方法是在月底运行一个 cron 作业(或计划任务)并将总数存储在另一个名为 report_data 的表中,但这似乎很笨重。有更好的想法吗?
user-experience - 对于非程序员用户来说,最好的 UX 是什么?逗号分隔的标签还是空格分隔的标签?
我正在为教师(非程序员)创建一个社交网站,教师可以在该网站上添加事件、链接、练习、提示、课程计划、书籍等。
我希望这些项目中的每一个都能够像在 StackOverflow 上那样添加标签。
但是,由于他们是非编程用户,我认为空格分隔的非空格标签和驼峰式标签会导致太多混乱,例如:
事实上,在这个类似的 stackoverflow 问题上,大多数答案都建议使用这样的逗号:
但后来我刚刚注册了一个delicious.com帐户(我不认为它有一个非常以程序员为中心的受众)并且看到他们也使用空格:
就当前标签的 UX 趋势而言,您在这一点上有什么经验?现在普通互联网用户是否习惯于使用空格分隔的标签?我必须承认,我从未在我使用过的任何主要网站上看到逗号分隔的标签。您是否找到了一种将它们结合起来的好方法,所以它甚至无关紧要,例如:
并且例如有一个快速算法来检查当前标签的数量:
php - 更好的日志记录设计还是一些 SQL 魔法?
我正在深入修改一些我没有编写的旧日志记录代码,并想知道您对此有何看法。这是一个用 PHP 和 MySQL 编写的事件记录器,它记录如下消息:
分解成这样:
变成这样的表:
请注意,上述示例消息中的“Bob”和“Payment”是其他表的 ID,而不是实际名称。需要连接才能获取名称。
看起来“reference_table_name”是为了在正确的表中找到正确的名称,因为只存储了reference_id。如果我能以某种方式加入存储在 reference_table_name 中的表名,这可能会很好,如下所示:
我想我明白了他在这个表格布局中的用途——拥有用于统计的 id 而不是将整个消息存储在单个列中(这将需要文本解析)要好得多。现在我想知道..
有没有更好的方法或者是否有可能以某种方式进行虚构加入?
干杯
php - 使用 PHP/MySQL 简化数据库/登录过程
我目前正在开发一个我工作的小型网络应用程序。我已经为不同的部门创建了这个。因此,例如,假设:营销、人力资源和销售部门使用它。
现在,就目前而言,每个部门都有 3 个完全不同的目录:
每个目录(部门)都有自己的 MySQL 数据库和表格。
我有几个问题希望可以更有效地创建它:
1) 有时,我会有一个可以访问两个或多个部门的用户。例如,用户可能有权访问 HR 和 Marketing。我不想让这个用户创建 2 个不同的帐户。我怎样才能将它“绑定”到一个数据库中?
2)另外,如果我有一个可以访问两个“区域”的用户,那么“指导”该用户在两个部门之间进行更改的好方法是什么?
3)最后,关于不同的目录,有没有更有效的方法来做到这一点?每个目录本质上都是完全相同的代码,只是稍作改动。
这是我从未做过的事情,因此以“正确”方式创建此内容的帮助会很棒。特别是虽然它很小,但如果我最终将其扩展到其他部门。
谢谢!
model-view-controller - 分离的控制器应该如何访问模型?
鉴于我有任意数量的控制器,他们应该如何访问保存在模型中的数据?
在数据库驱动的应用程序中,这很容易,因为所有数据都可以从一个对象中获取。
是否应该有一个允许访问数据的命名空间/单例/全局对象?
- 创建模型时是否应该将模型传递给所有控制器?
iphone - iphone数据迁移和应用程序设计
我正在开发一个附带只读数据库的应用程序。
用户将运行应用程序并能够从数据库中选择一系列“收藏夹”,这些“收藏夹”将出现在“收藏夹”选项卡栏部分。即存储主键。
随着应用程序的每次更新,只读数据可能包含更多条目或修复拼写错误等内容。
我正在使用 Core Data,但我不确定是否也使用它来存储用户的“收藏夹”。至于 - 以我的思维方式 - 这可能会给迁移带来麻烦。是这样吗?
我是否应该考虑将“收藏夹”存储在 plist 中并执行某种查询来检索记录?有什么建议吗?
另外,在更新期间保留(或可以保留)iphone 应用程序的哪些内部部分?
呸,我想就是这样。
感谢您提供的任何答案。
干杯,马特
application-design - 构建具有参与者匿名性或似是而非的可否认性的黑网(点对点网络)
您将如何以编程方式设计一个“黑网”,其中可以进行点对点数据交换(文件传输、聊天等),但播种者/发送者的匿名性要么完全隐藏,要么至少所有参与者都有“合理性”可否认性”,这意味着他们对系统交易或活动的确切参与和/或知识无法在任何合理怀疑之外得到证明?
application-design - 就地编辑与编辑页面
当您开发 Web 应用程序时,尤其是那些处理大量数据管理(例如联系人、地址、订单等)的应用程序时,您通常是创建界面作为就地编辑还是制作单独的“编辑”页面(以及仅查看页面)?
为什么/一个比另一个有什么优势?我正在尝试对我自己的具有此类数据管理的项目做出决定,但我不确定该走哪条路。
projects-and-solutions - C# 我最好的选择是什么?服务/应用程序/多个应用程序
我正在开发一个需要在不同时间完成多项任务的解决方案。例子:
- 任务 1 - 监控邮箱,处理邮件项目
- 任务 2 - 监控邮箱(不同文件夹),处理邮件项目
- 任务 3 - 生成 PDF 报告
- 任务 4 - 监控文件夹,在新文件到达时通过电子邮件将文件作为附件分发。
我已经实现了这个解决方案,但是,它基本上只是一个快速修复,让事情运行起来。现在它已经启动了,我想重新审视当前的设置并改进它,使其尽可能高效。
对于当前的解决方案,我为每个不同的任务创建了一个单独的应用程序,并使用任务计划程序在特定时间执行它们。
- 任务 1 是一个控制台应用程序,每 5 分钟在计划任务上运行一次
- 任务 2 是一个控制台应用程序,每 5 分钟在计划任务上运行一次(在第一个应用程序之后 2 分钟,这是因为任务 1 会将电子邮件移动到任务 2 正在监视的文件夹中)
- 任务 3 每天早上 5 点运行,作为计划任务上的 runonce 应用程序
- 任务 4 正在不确定地运行。
我的问题是,这似乎是解决此类应用程序的合理方法吗?有些任务作为服务而不是应用程序看起来更好吗?