我的构建过程包括Qt的qmake Makefile生成器和与linux捆绑在一起的典型make实用程序.
我的应用程序由几个共享库组成,主应用程序与它们相关联.
如何在我的库上应用典型的linux版本控制方案?(使用版本2 - >指向foo.so.2的链接,指向带有ldconfig生成链接的foo.so.2.yz).
答案不一定要特定于我的构建过程.
很多时候,我会在wxPython应用程序中对静态文本使用相同的字体方案.目前我正在SetFont()
调用每个静态文本对象,但这似乎是很多不必要的工作.但是,wxPython演示和wxPython In Action书中没有讨论这个问题.
有没有办法轻松地将相同的SetFont()
方法应用于所有这些文本对象,而不是每次都进行单独的调用?
我正在开发和作为Windows服务运行的应用程序.还有其他组件包括一些WCF服务,客户端GUI等 - 但它是访问数据库的Windows服务.
因此,该应用程序是一个长期运行的服务器,我想提高其性能和可伸缩性,我希望改善数据访问等.我发布了另一个关于二级缓存的帖子.
这篇文章是关于访问数据库的长期运行线程的会话管理.我应该使用线程静态上下文吗?如果是这样,是否有任何关于如何实施的例子.
网络上每个使用NHibernate的人似乎都非常关注Web应用程序风格的体系结构.对于非Web应用程序设计,似乎缺乏文档/讨论.
目前,我的长期运行线程执行此操作:
因此,以下是我们为每个DAO方法使用的常见模式:
对于DAO类的每个方法调用都会发生这种情况.我怀疑这是我们这样做的某种反模式.
但是,我无法在任何地方找到足够的方向来改进它.
请注意,虽然这个线程在后台运行,做其中的东西,有来自WCF客户端的请求,每个客户端可以自己进行2-3个DAO调用 - 有时查询/更新长时间运行的线程处理的相同对象.
任何有关改进我们设计的想法/建议/指示将不胜感激.如果我们能够进行一些很好的讨论,我们可以将它作为一个社区维基,并可能从http://nhibernate.info链接到这里
克里希纳
在LaTeX中使用Beamer包中的\ againframe时是否可以更改帧标题?我希望在框架内的特定幻灯片上显示前一帧,但这次使用不同的标题.
谢谢.
我有一个用Java编写的项目(> 1.5).
是否可以用C#编写项目的一部分?
例如GUI和调用方法并实例化用java编写的类?
如果有,怎么样?
我的接口有一个小问题.这是伪代码:
type
Interface1 = interface
end;
Interface2 = interface
end;
TParentClass = class(TInterfacedObject, Interface1)
private
fChild : Interface2;
public
procedure AddChild(aChild : Interface2);
end;
TChildClass = class(TInterfacedObject, Interface2)
private
fParent : Interface2;
public
constructor Create(aPArent : Interface1);
end;
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到这个缺陷吗?我需要孩子引用它的父级,但引用计数在这种情况下不起作用.如果我创建一个ParentClass实例,并添加一个子类,那么父类永远不会被释放.我明白为什么.我怎么绕圈呢?
是否可以实现尊重开放/封闭原则的访客模式,但仍然能够添加新的可访问类?
开放/封闭原则规定"软件实体(类,模块,功能等)应该开放以进行扩展,但是关闭以进行修改".
struct ConcreteVisitable1;
struct ConcreteVisitable2;
struct AbstractVisitor
{
virtual void visit(ConcreteVisitable1& concrete1) = 0;
virtual void visit(ConcreteVisitable2& concrete2) = 0;
};
struct AbstractVisitable
{
virtual void accept(AbstractVisitor& visitor) = 0;
};
struct ConcreteVisitable1 : AbstractVisitable
{
virtual void accept(AbstractVisitor& visitor)
{
visitor.visit(*this);
}
};
struct ConcreteVisitable2 : AbstractVisitable
{
virtual void accept(AbstractVisitor& visitor)
{
visitor.visit(*this);
}
};
Run Code Online (Sandbox Code Playgroud)
您可以实现任意数量的派生自AbstractVisitor的类:它是可以扩展的.您无法添加新的可访问类,因为从AbstractVisitor派生的类将无法编译:它已关闭以进行修改.
AbstractVisitor类树遵循开放/封闭原则.AbstractVisitable类树不遵循开放/封闭原则,因为它无法扩展.
除了扩展AbstractVisitor和AbstractVisitable之外还有其他解决方案吗?
struct ConcreteVisitable3;
struct AbstractVisitor2 : AbstractVisitor
{
virtual void visit(ConcreteVisitable3& concrete3) = 0;
};
struct …
Run Code Online (Sandbox Code Playgroud) c++ oop design-patterns visitor-pattern open-closed-principle
这是非常愚蠢的方式:
def divisorGenerator(n):
for i in xrange(1,n/2+1):
if n%i == 0: yield i
yield n
Run Code Online (Sandbox Code Playgroud)
我想得到的结果类似于这个,但我想要一个更聪明的算法(这个太慢和愚蠢了:-)
我可以足够快地找到素数因子及其多样性.我有一个以这种方式生成因子的生成器:
(factor1,multiplicity1)(factor2,multiplicity2)
(
factor3,multiplicity3)
等......
即输出
for i in factorGenerator(100):
print i
Run Code Online (Sandbox Code Playgroud)
是:
(2, 2)
(5, 2)
Run Code Online (Sandbox Code Playgroud)
我不知道这对我想做什么有用多少(我将其编码用于其他问题),无论如何我想要一个更聪明的方法来制作
for i in divisorGen(100):
print i
Run Code Online (Sandbox Code Playgroud)
输出这个:
1
2
4
5
10
20
25
50
100
Run Code Online (Sandbox Code Playgroud)
更新:非常感谢Greg Hewgill和他的"智能方式":)计算所有100,00000的除数用他的方式对着我的机器上的愚蠢方式的39s,非常酷:D
更新2:停止说这是这篇文章的副本.计算给定数的除数数不需要计算所有除数.这是一个不同的问题,如果你认为它不是在维基百科上寻找"除数函数".在发布之前阅读问题和答案,如果你不明白什么是主题,只是不添加没有用的已经给出的答案.
好的,所以我第一次尝试使用ADO.NET实体框架.
我的测试用例现在包括一个SQL Server 2008数据库,其中包含2个表,Member和Profile,关系为1:1.
然后,我使用Entity Data Model向导从数据库中自动生成EDM.它生成了一个具有正确关联的模型.现在我想这样做:
ObjectQuery<Member> members = entities.Member;
IQueryable<Member> membersQuery = from m in members select m;
foreach (Member m in membersQuery)
{
Profile p = m.Profile;
...
}
Run Code Online (Sandbox Code Playgroud)
中途工作.我可以遍历所有成员.但我遇到的问题是m.Profile始终为null.MSDN库上LINQ to Entities的示例似乎表明我将能够无缝地遵循这样的导航关系,但它似乎不会那样工作.我发现如果我首先在某个单独的调用中加载配置文件,例如使用entities.Profile.ToList,那么m.Profile将指向一个有效的配置文件.
所以我的问题是,是否有一种优雅的方式来强制框架自动加载导航关系中的数据,或者我是否需要通过连接或其他方式明确地执行此操作?
谢谢