有哪些可能的设计可以处理频繁变化的数据表单?
我有一个基本的CRUD Web应用程序,主要数据输入表单每年都会更改.因此,每条记录都应该与表单的特定版本绑定.这个要求是新的,所以现有的应用程序并没有考虑到这一点.
我正在寻找不同的处理方式,希望避免未来的技术债务.以下是我提出的一些选项:
还有哪些其他可能性?有没有人有这方面的经验?我正在寻找一些设计模式来帮助处理复杂性.
我正在使用Linux和C++.我有一个大小为210732字节的二进制文件,但使用seekg/tellg报告的大小为210728.
我从ls-la获得以下信息,即210732字节:
-rw-rw-r-- 1 pjs pjs 210732 Feb 17 10:25 output.osr
并使用以下代码片段,我得到210728:
std::ifstream handle;
handle.open("output.osr", std::ios::binary | std::ios::in);
handle.seekg(0, std::ios::end);
std::cout << "file size:" << static_cast<unsigned int>(handle.tellg()) << std::endl;
Run Code Online (Sandbox Code Playgroud)
所以我的代码关闭了4个字节.我已使用十六进制编辑器确认文件的大小是正确的.那么为什么我没有得到正确的尺寸?
我的回答:我认为这个问题是由于文件中有多个开放的fstream引起的.至少那似乎已经为我解决了.感谢所有帮助过的人.
当我扩展MapActivity类时,它显示错误.
错误是:无法解析数据类型.为什么?
如何在我的项目中添加maps.jar?
谢谢.
我正在开发一些所有需要初始化相同对象的自定义ant任务.我想在init()方法中从Task扩展的公共超类中初始化这些对象.但是我从ant任务的生命周期中看到,在设置任务子元素和属性之前调用init().因此,如果我正确读取,初始化这些对象所需的所有数据在init()期间都不可用.
那么,为什么在这一点调用init()?你甚至知道你可以在init()中使用什么?它可以用于什么?
(还有一些其他方法可以依赖于在execute()之前调用,但在我的数据可用之后?)
我在ASP.NET Datagrid中使用DataBinder.Eval表达式,但我认为这个问题一般适用于.NET中的String格式.客户已请求如果字符串的值为0,则不应显示该字符串.我有以下黑客来完成这个:
<%# IIf(DataBinder.Eval(Container.DataItem, "MSDWhole").Trim = "0", "",
DataBinder.Eval(Container.DataItem, "MSDWhole", "{0:N0}")) %>
Run Code Online (Sandbox Code Playgroud)
我想更改{0:N0}格式表达式,以便我可以消除IIf语句,但找不到任何有效的.
这是从python中的字符串构建后缀数组的一种非常简单的方法:
def sort_offsets(a, b):
return cmp(content[a:], content[b:])
content = "foobar baz foo"
suffix_array.sort(cmp=sort_offsets)
print suffix_array
[6, 10, 4, 8, 3, 7, 11, 0, 13, 2, 12, 1, 5, 9]
Run Code Online (Sandbox Code Playgroud)
但是,"content [a:]"会制作内容的副本,当内容变大时,内容会变得非常低效.所以我想知道是否有办法比较两个子串而不必复制它们.我试过使用buffer-builtin,但它没有用.
在影响性能之前,一个HTML文档中需要多少个div标签?在这种情况下,标签不是嵌套的,并且每个标签内的内容都是最小的(背景颜色/图像).
这个问题是对前一个问题的后续跟进; 使用JavaScript绘制带有可点击点的线条
在这里,我决定使用HTML和CSS来做这件事.
该<div>标签将具有至少4个像素的宽度,和400-800个像素,从而100-200 div标签的总宽度.
最重要的是,这些图表/时间线中将有五个或六个堆叠在一起.然后div标签的数量在500-1200之间.
再说一次,承认每个内容很少,这对性能有何影响?
_L
我想JPanel在运行时添加垂直堆叠的不同按钮,并使用一个JScrollPane按钮以便所有按钮都可见(通过一些滚动).
为了做到这一点,我已将我添加JPanel到a JScrollPane,然后我将按钮添加到我的JPanel.
但是,当我这样做时,垂直滚动条不允许我看到所有图像.例如,当我添加7个按钮时,我只能滚动查看5个完整图像和6个图像中的一半.
为什么我的滚动条不允许我显示所有7个按钮?
我正在尝试使用PHP中的PCRE库编写正则表达式.
我需要一个正则表达式匹配&,>以及<任何XML节点的字符串部分中存在的字符,而不是标签声明本身.
输入XML:
<pnode>
<cnode>This string contains > and < and & chars.</cnode>
</pnode>
Run Code Online (Sandbox Code Playgroud)
我们的想法是搜索并替换这些字符并将它们转换为XML实体等价物.
如果我要将整个XML转换为实体,那么XML将如下所示:
整个XML转换为实体
<pnode>
<cnode>This string contains > and < and & chars.</cnode>
</pnode>
Run Code Online (Sandbox Code Playgroud)
我需要它看起来像这样:
正确的XML
<pnode>
<cnode>This string contains > and < and & chars.</cnode>
</pnode>
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用look-ahaead编写一个正则表达式来匹配这些字符,但我不知道如何使它工作.我的尝试(目前只尝试匹配>符号):
/>(?=[^<]*<)/g
Run Code Online (Sandbox Code Playgroud)
只是为了说清楚我试图解决的XML来自第三方,他们似乎无法修复它的结束,因此我尝试修复它.
在C#中,你可以这样做:
public IEnumerable<T> GetItems<T>()
{
for (int i=0; i<10000000; i++) {
yield return i;
}
}
Run Code Online (Sandbox Code Playgroud)
这将返回一个包含1000万个整数的可枚举序列,而无需在该长度的内存中分配集合.
有没有办法在Ruby中做同等的事情?我试图处理的具体例子是将矩形数组展平为要枚举的值序列.返回值不必是Array或者Set,而是某种只能按顺序迭代/枚举的序列,而不是索引.因此,不需要在存储器中同时分配整个序列.在.NET中,这是IEnumerable和IEnumerable<T>.
关于Ruby世界中使用的术语的任何澄清都会有所帮助,因为我对.NET术语更熟悉.
编辑
也许我原来的问题还不够清楚 - 我认为yield在C#和Ruby 中具有非常不同含义的事实是造成混淆的原因.
我不想要一个需要我的方法来使用块的解决方案.我想要一个具有实际返回值的解决方案.返回值允许方便地处理序列(过滤,投影,连接,压缩等).
这是一个我可能会如何使用的简单示例get_items:
things = obj.get_items.select { |i| !i.thing.nil? }.map { |i| i.thing }
Run Code Online (Sandbox Code Playgroud)
在C#中,任何返回IEnumerable使用a的方法yield return都会导致编译器在幕后生成满足此行为的有限状态机.我怀疑使用Ruby的延续可以实现类似的东西,但我还没有看到一个例子,我自己也不清楚如何做到这一点.
我确实有可能用它Enumerable来实现这一目标.一个简单的解决方案是我们Array(包括模块Enumerable),但我不想在内存中创建一个包含N个项目的中间集合,只要它们可以懒得提供它们并且完全避免任何内存峰值.
如果这仍然没有意义,那么请考虑上面的代码示例. get_items返回一个枚举,在其select上调用.传递给的select是一个知道如何在需要时提供序列中的下一个项目的实例.重要的是,尚未计算整个项目集.只有当select需要一个项目时它才会要求它,并且潜在的代码get_items将开始行动并提供它.这种懒惰带有链条,这样select只有在map询问它时才从序列中抽取下一个项目.这样,可以一次对一个数据项执行长链操作.实际上,以这种方式构造的代码甚至可以处理无限 …