我们使用Hudson与Violations插件持续集成,后者从pylint解析我们的输出.但是,pylint有点过于严格,而且很难配置.我们宁愿使用的是pyflakes,它会给我们正确的"你做错了".
这是我的代码:
select yr,count(*) from movie
join casting on casting.movieid=movie.id
join actor on casting.actorid = actor.id
where actor.name = 'John Travolta'
group by yr
Run Code Online (Sandbox Code Playgroud)
这是问题所在
这是"约翰特拉沃尔塔"最繁忙的几年.显示他每年制作的电影数量.
这是表结构:
movie(id, title, yr, score, votes, director)
actor(id, name)
casting(movieid, actorid, ord)
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
yr count(*)
1976 1
1977 1
1978 1
1981 1
1994 1
etcetc
Run Code Online (Sandbox Code Playgroud)
我需要得到count(*)最大的行.
我该怎么做呢?
有了StackOverflow的一些帮助,我有Unity Framework来创建我的链接依赖项,包括一个Entity Framework datacontext对象:
using (IUnityContainer container = new UnityContainer())
{
container.RegisterType<IMeterView, Meter>();
container.RegisterType<IUnitOfWork, CommunergySQLiteEntities>(new ContainerControlledLifetimeManager());
container.RegisterType<IRepositoryFactory, SQLiteRepositoryFactory>();
container.RegisterType<IRepositoryFactory, WCFRepositoryFactory>("Uploader");
container.Configure<InjectedMembers>()
.ConfigureInjectionFor<CommunergySQLiteEntities>(
new InjectionConstructor(connectionString));
MeterPresenter meterPresenter = container.Resolve<MeterPresenter>();
Run Code Online (Sandbox Code Playgroud)
这非常适合创建我的Presenter对象并显示相关视图,我真的很高兴.
但是,我现在遇到的问题是创建和处理Entity Framework对象的时间(我怀疑这将适用于任何IDisposable对象).像这样使用Unity,SQL EF对象"CommunergySQLiteEntities"是立即创建的,因为我已将其接口IUnitOfWork添加到MeterPresenter的构造函数中
public MeterPresenter(IMeterView view, IUnitOfWork unitOfWork, IRepositoryFactory cacheRepository)
{
this.mView = view;
this.unitOfWork = unitOfWork;
this.cacheRepository = cacheRepository;
this.Initialize();
}
Run Code Online (Sandbox Code Playgroud)
我当时对此感到有点不安,因为我不想保持打开数据库连接,但我看不到使用Unity依赖注入的任何其他方式.果然,当我实际尝试使用datacontext时,我收到此错误:
((System.Data.Objects.ObjectContext)(unitOfWork)).Connection
'((System.Data.Objects.ObjectContext)(unitOfWork)).Connection'
threw an exception of type 'System.ObjectDisposedException'
System.Data.Common.DbConnection {System.ObjectDisposedException}
Run Code Online (Sandbox Code Playgroud)
我对IoC原理的理解是,您将所有依赖项设置在顶部,解决您的对象并远离您.但是,在这种情况下,某些子对象(例如datacontext)不需要在创建父Presenter对象时初始化(就像在构造函数中传递它们一样),但是Presenter确实需要了解IUnitOfWork在与数据库通信时使用的类型.
理想情况下,我想在我解决的Presenter中找到这样的东西:
using(IUnitOfWork unitOfWork = new NewInstanceInjectedUnitOfWorkType())
{
//do unitOfWork stuff
}
Run Code Online (Sandbox Code Playgroud)
因此,Presenter知道IUnitOfWork实现用于直接创建和处理的内容,最好是从原始的RegisterType调用.我是否必须在我的Presenter中放置另一个Unity容器,否则可能会产生新的依赖关系?
对于IoC大师来说,这可能是非常明显的,但我真的很欣赏指向正确方向的指针.
在Haskell中使用派生实例时,是否可以派生任意类型的函数,还是仅限于特定函数?
用C#编写的游戏在长时间游戏后会有任何速度问题,例如一次24小时吗?我特别谈论类似于旧的最终幻想或勇者斗恶龙游戏的2D RPG.我知道像Python这样的语言会减慢太多,好奇C#会如何.
编辑:我写的程序很像白蚁出没的树:)
@jimmy - 这就是整个问题.我正在研究一个小型的FF克隆来改进我的编码
假设我们有一个8位无符号整数n(UINT8_MAX=255); 编译器的行为是n=256什么?当数据类型的值超出不同数据类型的范围时,我在哪里可以找到默认行为表?超出范围时,它们的行为方式是否存在?
#include <stdio.h>
#include <inttypes.h>
uint8_t n = UINT8_MAX;
int main() {
printf("%hhu ",n++);
printf("%hhu",n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译gcc -std=c99 -Wall *.c,打印:255 0
另外,使用C99的PRI*宏是否可以接受?他们是如何命名的?
我有一个中央git存储库,每个人都推动进行测试和集成,但只有当功能"准备好"时才会推送它.在执行大任务的过程中,开发人员经常会有许多提交保留在硬盘上.
有时在这些项目的中间,我想要看到另一个开发人员正在做什么,或者告诉他我是如何做的.我希望能够告诉另一位开发人员"拉我的工作副本".
我能想到的唯一方法是让每个人在他们的开发机器上运行SSH并为每个人添加帐户或SSH密钥,但这是一个巨大的隐私和权限噩梦,并且似乎需要维护很多工作.
在这些情况下,我们应该只是推动那个中央存储库吗?每次本地提交后我们都应该推动吗?
(我意识到我的头衔很差.如果在阅读完问题之后你会有所改进,请编辑或告诉我,我会改变它.)
我有一个相对常见的工作表场景,其中有一行需要完成.例如,它可以是要发送的电子邮件列表.该表看起来像这样:
ID Completed TimeCompleted anything else...
---- --------- ------------- ----------------
1 No blabla
2 No blabla
3 Yes 01:04:22
...
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个标准的练习/模式(或代码 - C#/ SQL Server首选)定期"扫描"(我非常松散地使用术语"扫描")这个表,找到未完成的项目,执行操作一旦成功完成标记就完成了.
除了完成上述步骤的基本过程外,我还在考虑以下要求:
其他一些想法:
SVector.H:
void pop_back() throw (underflow_error);
Run Code Online (Sandbox Code Playgroud)
在我的SVector.cpp文件中,我是否还应该包含throw(underflow_error)部分?
void pop_back() throw (underflow_error)
{
// implementation
}
Run Code Online (Sandbox Code Playgroud)
要么
void pop_back()
{
// implementation
}
Run Code Online (Sandbox Code Playgroud)
谢谢.