Tag: devise原则

什么是最好的方式来存储更改数据库logging需要批准才可见?

我需要将用户input的更改存储到特定的表中,但在pipe理用户查看和批准之前不会显示这些更改。 虽然这些更改仍处于未决状态,但我仍然会显示旧版本的数据。 存储这些等待批准的更改的最佳方式是什么? 我想到了几种方法,但是不知道什么是最好的方法。 这是一个非常小的networking应用程序。 一种方法是有一个PendingChanges表模仿其他表的模式,然后一旦更改被批准,我可以用这些信息更新真正的表。 另一种方法是做某种forms的logging版本,在表格中存储多个版本的数据,然后总是将logging标记为已批准的最高版本号。 这将限制额外表的数量(我需要为多个表执行此操作),但是每次我拔出一组logging以确保获得正确的logging时,将需要我执行额外的处理。 任何与这些方法或其他可能是好的个人经验? 更新:只是为了澄清,在这种特殊情况下,我对历史数据并不感兴趣。 我只需要一些方法来批准用户在网站上线之前所做的任何更改。 因此,用户将编辑他们的“个人资料”,然后pipe理员将查看该修改并批准。 一旦批准,这将成为显示值,旧版本不需要保存。 有人试过下面的解决scheme,在那里存储任何需要在一个特殊的PendingChanges表格中作为XML跟踪它们的表的挂起更改? 每条logging都有一个表示更改内容的列,可能存储更改logging的id列(如果是新logging则为null),更改时存储的date时间列以及一列存储更改后的logging的XML(可能可能序列化我的数据对象)。 由于我不需要历史logging,在批准更改后,真实表格将被更新,并且可以删除PendingChangelogging。 有关这种方法的任何想法?

构build器模式和大量的强制性参数

迄今为止,我使用了以下构build器模式的实现(与此处描述的实现相反): public class Widget { public static class Builder { public Builder(String name, double price) { … } public Widget build() { … } public Builder manufacturer(String value) { … } public Builder serialNumber(String value) { … } public Builder model(String value) { … } } private Widget(Builder builder) { … } } 这适用于我遇到的大多数情况,我需要build立一个复杂的对象与各种必需/强制性和可选参数。 然而,最近我一直在努力去理解,当所有的参数都是强制性的(或者至less绝大多数参数是强制性的)时,这种模式是有什么好处的。 […]

你有没有从大自然衍生出一个编程解决scheme?

当你退后一步看… 动物的性质,昆虫,植物及其有机解决的问题 甚至可能是宇宙的本质和平衡 你有没有能够通过从自然中获得一种方法来解决问题? 我听说过蚁群algorithm能够优化供应链等等。 分形的“自然几何”也被应用于广泛的问题。 现在spring又到了,世界又回来了,我想知道有没有人可以分享一些经验。 谢谢 PS我会build议观看“ 狩猎隐藏的维度 ”新星情节分形。

C#有太多的语言function吗?

这是一个在我们的团队中不时出现的讨论。 虽然有几个很快就学会了C#3.0的function,但是其他的经典技巧还是坚持的 有些人从来不使用Linq,认为lambdaexpression式是混淆的,yield是“可怕的”。 有时他们很难理解使用所有新function的人编写的代码。 我们可以说,他们不掌握语言,应该学习。 但是学习现代编程语言有多难? 每个人都可以解决问题,每个人每天都有很多其他问题需要解决,而不是关心更好的方法来实施。 培训人员不是免费的。 另一方面,语言function可以使人们更有效率,代码更易于维护。 可能不完整的C#function列表 类,结构体,原始types,数组,装箱,接口,inheritance(抽象,虚拟,新,密封),属性,可空 例外 仿制药 multithreading,锁 reflection 代表,活动,匿名代表 迭代器 lambdaexpression式 扩展方法 LINQ 第4版即将推出,包括许多附加function。 就我个人而言,我喜欢C#的几乎所有function,就像我可以用这种语言编写的简短而漂亮的代码一样。 但是我不必从头开始学习。 我感兴趣的是您的意见和您的学习或教学C#的经验。 有没有太多的function? 仍然缺less重要的function? 语言function是使语言更容易使用还是更难以学习? 请:没有答案像“语言A比语言B好,因为…”。

磁盘扇区写入primefaces?

澄清的问题: 当操作系统发送命令写扇区到磁盘是primefaces? 即写入新的数据完全成功或旧的数据保持不变,如果电源在写入命令之后立即失败。 我不关心在多个部门写入会发生什么 – 撕裂的页面是可以接受的。 老问题: 假设你在磁盘上有旧的数据X,你在它上面写入新的数据Y,并且在写入过程中树在电源线上。 如果没有花哨的UPS或电池供电的磁盘控制器,那么最终会出现一个破损的页面,其中磁盘上的数据是X部分和Y部分。最后是磁盘上的数据是X部分,Y部分,部分垃圾? 我一直在努力理解像数据库这样的ACID系统的devise,而且对于我的幼稚想法,似乎firebird,它不使用预写日志,依靠给定的写入不会破坏旧数据(X) – 只是不能完全写入新的数据(Y)。 这意味着如果X的一部分被覆盖,只有被覆盖的X的部分可以改变,而不是我们想要保留的X的部分。 为了澄清,这意味着如果你有一个页面大小的缓冲区,比如4096字节,填充了一半Y,我们想要保留的一半X,并且告诉操作系统把这个缓冲区写在X上,没有严重的磁盘在写入期间,我们想要保留的一半X被破坏。

REST API – 在单个请求中批量创build或更新

假设有两个资源“ Binder和Doc关联关系”,这意味着“ Doc和“ Binder独立的。 Doc可能或可能不属于Binder而Binder可能是空的。 如果我想devise一个REST API,允许用户发送一个Doc集合, 在一个单一的请求 ,如下所示: { "docs": [ {"doc_number": 1, "binder": 1}, {"doc_number": 5, "binder": 8}, {"doc_number": 6, "binder": 3} ] } 对于文档中的每个docs , 如果doc存在,则将其分配给Binder 如果doc不存在,请创build它,然后分配它 我真的很困惑这应该如何实施。 使用什么HTTP方法? 必须返回哪些响应代码? 这甚至是合格的REST? URI将如何? /binders/docs ? 处理批量请求,如果有几个项目出现错误,但另一个项目则通过。 必须返回哪些响应代码? 批量操作应该是primefaces的吗?

如何计算一个string列表的好散列码?

背景: 我有一个简短的string列表。 string的数量并不总是相同的,但几乎总是“less数”的顺序, 在我们的数据库中将这些string存储在第二个规范化的表中 这些string写入数据库后永远不会更改。 我们希望能够在查询中快速匹配这些string,而无需进行大量的连接。 所以我正在考虑将所有这些string的哈希码存储在主表中,并将其包含在我们的索引中,因此只有在哈希码匹配时才能通过数据库处理联接。 那么如何获得一个好的散列码呢? 我可以: 将所有string的哈希码加在一起 XOR与每个string后面的结果相乘(用31表示) 把所有的string集合在一起,然后得到哈希码 其他方式 那么人们会怎么想呢? 最后,我只是连接string并计算连接的哈希码,因为它很简单,而且工作得很好。 (如果你在意我们正在使用.NET和SqlServer) Bug!,Bug! Eric Lippert 引用GetHashCode的指导原则和规则 System.String.GetHashCode的文档特别指出,两个相同的string可以在CLR的不同版本中具有不同的哈希代码,实际上它们的确可以。 不要在数据库中存储string散列,并期望它们永远是一样的,因为它们不会。 所以String.GetHashcode()不应该用于这个。

发票,发票行和修订版的数据库devise

我正在devise一个关于特许经营CRM的关系数据库的第二个主要迭代(有许多重构),我需要帮助最好的数据库devise实践来存储作业发票和发票行 ,并对每一个更改进行强大的审计logging发票。 当前模式 Invoices表 InvoiceId (int) // Primary key JobId (int) StatusId (tinyint) // Pending, Paid or Deleted UserId (int) // auditing user Reference (nvarchar(256)) // unique natural string key with invoice number Date (datetime) Comments (nvarchar(MAX)) InvoiceLines表 LineId (int) // Primary key InvoiceId (int) // related to Invoices above Quantity (decimal(9,4)) Title (nvarchar(512)) Comment […]

Python的 – 我应该把我的帮助函数内部或外部的类?

在Python中,如果一个类的某些方法需要一个辅助函数,但是辅助函数本身没有在类中使用任何东西,我应该把辅助函数放在类内还是外? 我试图把它放在里面,但PyLint抱怨说这个函数可能已经放在了外面。 @Karl: 这个类是一个软件升级器,如果该文件夹还不存在,辅助函数会创build一个新的文件夹。 这个类在一个模块中,几乎只有这个类的代码。 其他课程可能会在稍后添加。

封装与数据隐藏 – Java

采访者:什么是封装,以及如何在Java中实现它? Me:封装是一种隐藏客户端信息的机制。 这些信息可能是数据或实现或algorithm。 我们使用访问修饰符来实现这一点。 采访者:这是数据隐藏。 我们如何在Java中实现封装? 我 :ummmmm 具体问题:除了“访问修饰符”,在Java中实现封装的方式是什么?