作为一名非C#精明的程序员,我很好奇LINQ查询的评估语义,如下所示:
var people = from p in Person
where p.age < 18
select p
var otherPeople = from p in people
where p.firstName equals "Daniel"
select p
Run Code Online (Sandbox Code Playgroud)
假设这Person是一个定义age和firstName字段的ADO实体,从数据库的角度来看,它会做什么?具体来说,是否people运行查询以生成内存结构,然后查询将otherPeople查询该结构?或者构建otherPeople只是从中提取有关查询的数据people,然后生成一个新的数据库对等查询?那么,如果我遍历这两个查询,那么将执行多少个SQL语句?
C#Convert.ToDecimal(string)和Decimal.Parse(string)?之间有什么区别?
在什么情况下你会使用一个而不是另一个?
它对性能有何影响?
在两者之间进行选择时,我应该考虑哪些其他因素?
我熟悉面向对象的体系结构,包括使用设计模式和类图进行可视化,我知道面向服务的体系结构及其契约和协议绑定,但是有一个关于系统的软件体系结构的特性.函数式编程语言?
我知道FP已被用于中型到大型项目.保罗格雷厄姆写了雅虎的第一个化身!存储在Common Lisp中.一些lisp开发系统很复杂.用函数式语言编写的人工智能和金融系统可以变得非常大.他们都至少拥有某种固有的架构,但我想知道他们是否有任何共同之处?
基于表达式评估的架构是什么样的?FP架构是否更具可组合性?
更新:凯尔提醒我,SICP是这个主题的一个很好的资源.
更新2:我发现了一个关于这个主题的好文章: 函数式编程如何影响代码的结构?
如何在Python脚本中调用外部命令(就像我在Unix shell或Windows命令提示符下键入它一样)?
假设一个大型复合应用程序构建在自己的程序集中打包的几个基础组件上:(数据库读取,协议处理程序等).对于某些部署,这可以包括20多个程序集.每个程序集都有设置或配置信息.我们的团队倾向于喜欢VS设置编辑器(以及它生成的易用代码!),应用程序与用户的区别满足了我们的大多数需求.
但....
将许多配置部分复制并粘贴到我们的应用程序的.xml中非常繁琐.此外,对于跨应用程序往往具有类似配置的共享组件,这意味着我们需要在多个.config文件中维护重复设置.
微软的EntLib使用外部工具解决了这个问题,以生成怪物.config文件,但这也感觉很笨拙.
您使用什么技术来管理包含来自多个共享程序集的大型.NET .config文件?某种包含机制?自定义配置读者?
跟进:
Will的回答正是我所得到的,并且对于平键/值对部分看起来很优雅.有没有办法将此方法与自定义配置部分相结合?
还要感谢有关为不同构建目标管理不同.configs的建议.这也很有用.
戴夫
我正在设计一种语言.首先,我想决定要生成什么代码.该语言将具有类似于javascript的词法闭包和基于原型的继承.但我不是gc的粉丝,尽量避免.所以问题是:有没有一种优雅的方法来实现闭包而不需要在堆上分配堆栈帧并将其留给垃圾收集器?
我的第一个想法:
我不会使用高级语言或遵循任何调用约定,所以我可以尽可能多地粉碎堆栈.
(编辑:我知道引用计数是垃圾收集的一种形式,但我使用gc的更常见的含义)
在Windows上使用的最佳C++ IDE或编辑器是什么?我使用Notepad ++,但缺少Visual Studio的IntelliSense.
情景是这样的
我们有两个应用程序A和B,它们都在单独的数据库(Oracle 9i)事务中运行
应用程序A - 将一些数据插入数据库,然后调用应用程序B应用程序B - 将一些数据插入数据库,与A的数据相关(通过外键).返回应用程序A的"ID"应用程序A - 使用ID插入更多数据,包括来自B的ID
现在,因为这些是单独的事务,但都依赖于来自彼此的事务数据,我们需要在每个应用程序的调用之间进行提交.这当然使得如果出现任何问题就很难回滚.
如何通过最少的代码重构来解决这个问题.当然这种情况在SOA世界中是一个常见问题吗?
------更新--------
我无法在Oracle 9i中找到任何东西,但是Oracle 11g提供了DBMS_XA,它完全符合我的要求.
我经常使用git stash并git stash pop保存和恢复工作树中的更改.昨天我的工作树上有一些变化,我已经藏起来了,然后我对工作树做了更多改动.我想回去查看昨天发生的变化,但git stash pop似乎删除了对相关提交的所有引用.
我知道如果我使用git stash那么.git/refs/stash包含用于创建存储的提交的引用.而.git/logs/refs/stash包含整个存储.但那些参考文献已经消失了git stash pop.我知道提交仍然在我的存储库中,但我不知道它是什么.
有没有一种简单的方法来恢复昨天的隐藏提交引用?
请注意,这对我来说并不重要,因为我有每日备份,可以回到昨天的工作树来获取我的更改.我问,因为必须有一个更简单的方法!