我们为一个相当大的项目做了很多大而简单的形式(大约有600个用户全天使用它 - 这对我来说至少很重要;-)).
这些表格有很多问题/答案类型的部分,因此某些人输入句子很自然,而其他人则输入一本小说. 真正对某些字段设置字符限制有多大益处?
(如有必要/可能,请包括参考或引用 - 谢谢!)
Ripper是Ruby 1.9附带的解析库.它将Ruby代码转换为AST,如下所示:
pp Ripper.sexp("def foo; yield :a; return 1 end")
#=>
[:program,
[[:def,
[:@ident, "foo", [1, 4]],
[:params, nil, nil, nil, nil, nil],
[:bodystmt,
[[:yield,
[:args_add_block,
[[:symbol_literal, [:symbol, [:@ident, "a", [1, 16]]]]],
false]],
[:return, [:args_add_block, [[:@int, "1", [1, 26]]], false]]],
nil,
nil,
nil]]]]
Run Code Online (Sandbox Code Playgroud)
是否有一个库可以使用这个AST并将其转换回Ruby代码?
ruby_parser和ruby2ruby曾经这样做,但我想使用Ripper作为我的解析器.(Ruby 1.9甚至可能附带这样的库,但是我甚至在Ripper本身也很难找到文档)
主要问题:为什么一般甚至专业的整体计划优化者都不是我们日常生活的一部分?
我开始思考这个阅读SuperCompilers后,LLC的白皮书,其中讨论了他们的"supercompiling"或方法metacompiling程序的源(通常情况下)实现了更快的版本,做相同的功能原来的程序.基本上,他们逐步执行程序并重新编译为相同的目标语言.通过这样做,自然优化发生; 例如,如果输入程序经常使用100个项目的数组,则通用二进制搜索功能可能专门用于二进制搜索100个项目的数组.
部分求值是一个或许更窄的类型整个程序优化,其中该程序的源减少/同时留下未知的输入开在运行时评估基于一些组固定输入的评估的.例如,如果给定y = 5,则一般函数x ^ y可以减少到x ^ 5或者可能是(x*x)*(x*x)*x.
(我为这两种技术的粗略描述道歉)
从历史上看整个程序的优化,如上述两个就太内存密集型执行,而是用我们的机器已经的内存(或者使用类似云)演出,为什么没有我们看到许多开源部分评估和如春吗?我见过一些,但我认为这将成为我们工具链的常规部分.
基本上,我试图做这个,但我不知道T将是什么,所以我使用的反思和表达式树构建东西.
// Input (I don't know about "Book")
Type itemType = typeof(Book);
// Actual Code
// Build up func p => p.AuthorName == "Jon Skeet"
ParameterExpression predParam = Expression.Parameter(itemType, "p");
Expression left = Expression.Field(predParam, itemType.GetField("AuthorName"));
Expression right = Expression.Constant("Jon Skeet", typeof(string));
Expression equality = Expression.Equal(left, right);
Delegate myDelegate = Expression.Lambda(equality, new ParameterExpression[] { predParam }).Compile(); // Not sure if I need this
// Build up predicate type (Predicate<Book>)
Type genericPredicateType = typeof(Predicate<>);
Type constructedPredicateType = genericPredicateType.MakeGenericType(new Type[] { …Run Code Online (Sandbox Code Playgroud) 如果我创建一个列表的递归列表:
class myList
{
List<myList> childLists;
List<string> things;
//...
}
List<myList> tempList = new List<myList>();
Run Code Online (Sandbox Code Playgroud)
然后调用tempList.Clear(),它会破坏内存中的所有childLists,还是应该创建一个递归方法来清除所有的childLists呢?
假设:实时/生产网络应用程序可以抑制向最终用户显示的错误.
假设你的技术支持团队希望看到实时数据,而是通过应用程序的开发方的眼睛(也许你想看看有什么错误发生,或者想看看,当你有使用固定一个问题的最终用户的数据).
现在我们有一个数据库服务于dev和live box(不是我的想法 - 我知道它很糟糕).
想法?
编辑:实施建议的最佳/便捷工具?
我的代码隐藏中有一个btnSave_Click()函数.如果用户单击我创建的保存按钮(图像),则会调用此函数:
protected void btnSave_Click(object sender, EventArgs e)
{
this.saveForm();
txtMessages.Text = "Save Complete";
}
Run Code Online (Sandbox Code Playgroud)
saveForm()函数显然保存了表单(通过存储过程).在显示"保存完成"消息之前,.NET是否会等到该保存完成,或者我还应该做些什么来让用户知道保存何时完成.
什么是这类事物的最佳教程(即微调器和保存完成时的通知)?
你试图保持简单,并有一个根文件夹,然后1个文件夹的图像,JavaScript,闪存等?你通常把你的文件夹称为什么?你给你的文件命名约定?
我遇到了一个有趣的障碍(至少对我有趣).下面是我的查询的一般概念.假设@AuthorType是存储过程的输入,并且每个地方都有各种专门条件我已经发表评论.
SELECT *
FROM TBooks
WHERE
(--...SOME CONDITIONS)
OR
(@AuthorType = 1 AND --...DIFFERENT CONDITIONS)
OR
(@AuthorType = 2 AND --...STILL MORE CONDITIONS)
Run Code Online (Sandbox Code Playgroud)
对我来说有趣的是,如果我使用@AuthorType = 0执行此SP,它的运行速度比删除最后两组条件(为@AuthorType的特殊值添加条件的条件)要慢.
SQL Server不应该在运行时意识到永远不会满足这些条件并完全忽略它们吗?我所经历的差异并不小; 它大约是查询长度的两倍(1-2秒到3-5秒).
我希望SQL Server能够为我做太多优化吗?我是否真的需要为特殊条件设置3个独立的SP?
.net ×2
c# ×2
sql ×2
database ×1
optimization ×1
predicate ×1
production ×1
recursion ×1
reflection ×1
ruby ×1
ruby-ripper ×1
save ×1
sql-server ×1
text ×1
varchar ×1
where-clause ×1