小编D.C*_*.C.的帖子

模型/实体类是否有模式

从多个数据源中提取模型对象时,最好的方法是什么?

例如,我有一个应用程序已经使用hibernate将一些数据存储在mySQL数据库中.如果我想在EC2或Google App Engine中存储其他一些对象,该怎么办?我理解DAO的摘要是使用特定数据源的实现,但实体本身呢?

起初我认为用jpa注释注释我的实体是一个很好的解决方案,但现在看来我真的把我的实体绑定到一个特定的实现.例如,在App Engine的情况下,其中一些注释没有任何意义.

看起来我需要一个纯粹的POJO类来表示我的实体,完全没有持久性逻辑.如果我想模仿一只狗(是跛脚的选择,但无论如何).
拥有一个抽象的Dog类是否有意义,然后定义子类以使用特定的持久性解决方案:HibernateDog,GAEDog等.

谢谢.

java entity design-patterns model

8
推荐指数
1
解决办法
3859
查看次数

jQuery如何劫持"这个"?

我只是想知道jQuery如何能够在Javascript中劫持'this'关键字.从我正在阅读的书中读到:"Javascript the Definitive Guide"它指出"this"是一个关键字,你不能像标识符那样改变它.

现在,假设您在自己的对象构造函数中,并且调用了一些jQuery代码,它是如何从您那里劫持的?

function MyObject(){
    // At this point "this" is referring to this object
    $("div").each(function(){
        // Now this refers to the currently matched div
    });
}
Run Code Online (Sandbox Code Playgroud)

我唯一的猜测是,因为你提供了对jQuery each()函数的回调,你现在正在使用一个具有jQuery作用域链的闭包,而不是你自己的对象的作用域链.这是正确的轨道吗?

谢谢

javascript jquery this

8
推荐指数
1
解决办法
888
查看次数

显示远程服务器上提交范围的git日志?

我正在寻找一种方法来查询git服务器的日志,以获取给定的提交范围.作为一名SVN用户,我的思维方式错误,所以我希望GIT专家可以提供帮助.我正在寻找类似于:

svn log -r 5:20 --xml svn.myserver.com
Run Code Online (Sandbox Code Playgroud)

但对于一个git服务器.换句话说,显示第5次提交到第20次提交的日志.谢谢你的帮助.

git logging

8
推荐指数
2
解决办法
1万
查看次数

在printf参数中提升类型是危险的吗?

我的问题源于在尝试构建多个位深度平台(例如32/64)时尝试使用printf来记录事物.

一直在养成丑陋头脑的问题是试图在多种体系结构上打印.在32位上它会是这样的

printf(" my int: %d\n", myInt);
Run Code Online (Sandbox Code Playgroud)

但在64位上,它必须改为

print (" my int: %ld\n", (long)myInt);
Run Code Online (Sandbox Code Playgroud)

我有两个相关的问题:

  1. 我的第一个想法是,当你告诉printf打印一个变量,给它一个格式时,它会查看该变量的地址并获取该格式所需的字节数.这一开始似乎是个大问题.例如,如果你有一个变量myChar,它是一个char(1个字节),但使用了%d的格式说明符,那将告诉printf转到myChar的地址并获取接下来的4个字节,将其视为int.如果是这种情况,似乎printf会从相邻变量中获取垃圾日期(因为它抓取了4个字节,但实际值只有1个字节).然而,情况似乎并非如此.通过使用myChar并指定%d,printf抓取1个字节,然后用0表示填充高3个字节.我的理解在这里是否正确?

  2. 如果上述情况属实,那么始终将变量提升到最大值是否有任何真正的危害,以避免在32/64位情况下出现的问题类型.例如,如果你有一个短变量myShort和一个int变量myInt,那么打印它们总是有任何缺点:

    printf("myShort%ld",(long)myShort); printf("myInt%ld",(long)myInt);

谢谢你的任何澄清.

c logging printf

7
推荐指数
1
解决办法
1097
查看次数

了解swift泛型与将参数视为协议或基类型

有人可以帮我理解使用泛型而不仅仅使用基类或协议的好处吗?也许我只需要阅读Swift指南几次,但泛型的概念并没有下沉.考虑使用泛型的这个例子

func removeObject<T : Equatable>(object: T, inout fromArray array: [T]) 
{
    var index = find(array, object)
    array.removeAtIndex(index!)
}
Run Code Online (Sandbox Code Playgroud)

为什么不这样写呢?

// As pointed out, this does not compile. I was more-so curious as to why
func removeObject(object: Equatable, inout fromArray array: [Equatable]) 
{
    var index = find(array, object)
    array.removeAtIndex(index!)
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的解释.


更新.是的,澄清我的例子完全是假设的.我正在考虑如何在Objective-C中实现这个问题.在那,我只是传递类型id的参数,这将做到这一点.

我的问题是为了深入了解为什么在Swift中不允许使用类似的模式,而是使用泛型来代替.

generics swift

7
推荐指数
2
解决办法
856
查看次数

确认UIWebView中的Javascript行为

我试图在UIWebView中的内容上执行一些Javascript.也许我对Javascript运行时的知识缺乏,但我对以下示例感到困惑.有关详细信息,请参阅源代码和注释:

NSString *html = [NSString stringWithFormat:@"<html><head><script type='text/javascript'>var content='the initial content';function myFunc(){return 'value of content: ' + content;}myFunc();</script></head><body>Hello blank</body></html>"];
// I would expect after this call that the variable content exists, as well as the function myFunc()
[self.webView loadHTMLString:html baseURL:nil];
// However, it appears not to.  The following call returns nothing
NSString *result = [self.webView stringByEvaluatingJavaScriptFromString:@"myFunc();"];
NSLog(@"result: %@", result);

// Inserting the Javascript at this point seems to work as expected
result = [self.webView stringByEvaluatingJavaScriptFromString:@"var content='the new content';function myFunc(){return 'value of …
Run Code Online (Sandbox Code Playgroud)

javascript iphone cocoa-touch uiwebview uikit

6
推荐指数
1
解决办法
2427
查看次数

Python中用于实现惰性getter的正确模式是什么?

有时我喜欢为一个对象编写getter属性,这样第一次调用它们时,繁重的工作就会完成一次,并且该值会被保存并在将来的调用中返回.在objective-c中,我将使用ivar或静态变量来保存此值.就像是:

- (id)foo
{
    if ( _foo == nil )
    {
        _foo = // hard work to figure out foo
    }
    return _foo
}
Run Code Online (Sandbox Code Playgroud)

这种相同的模式在Python中是否能够很好地运行,或者有更多可接受的方式吗?到目前为止我基本上都是一样的.我不喜欢我的解决方案是我的对象混淆了值和这些值的getter:

def foo(self):
    if not hasattr(self, "mFoo":
        self.mFoo = # heavy lifting to compute foo
    return self.mFoo
Run Code Online (Sandbox Code Playgroud)

python getter design-patterns

6
推荐指数
1
解决办法
1412
查看次数

为什么不保留__block变量(在非ARC环境中)?

我正在阅读有关__block变量的文档,并考虑我使用__block的情况.对我来说,似乎我需要两种情况:

  • 在块中使用时将变量标记为读写
  • 在块内引用self时避免保留周期

从表面上看,这两件事似乎并不相关.我认为__block变量没有被保留为更多的技巧我需要记住避免保留周期的特定用例.

我想知道,为什么不能保留它们是否有更重要的建筑理由?我会想一些其他关键字来表明这可能更清楚,以免混淆上面列出的两个功能.

更新 -

我应该提到这是不使用ARC的代码.我现在看到__block变量实际上保留在ARC中.

macos objective-c ios objective-c-blocks

6
推荐指数
1
解决办法
3308
查看次数

用于在一段时间内找到最大项目的算法建议

我有一个类似于以下的数据库模式:

| User   | Event         | Date
|--------|---------------|------
| 111    | Walked dog    | 2009-10-1
| 222    | Walked dog    | 2009-10-2
| 333    | Fed Fish      | 2009-10-5
| 222    | Did Laundry   | 2009-10-6
| 111    | Fed Fish      | 2009-10-7
| 111    | Walked dog    | 2009-10-18
| 222    | Walked dog    | 2009-10-19
| 111    | Fed Fish      | 2009-10-21
Run Code Online (Sandbox Code Playgroud)

我想生成一个查询,返回用户在一段时间内执行某些操作的最大次数.例如,给定5天的时间段,用户111遛狗的最大次数是多少?

最明显的解决方案是从某个零点开始并每天前进,总计5天的时间段,然后从所有5天的窗口中取出最大总数.然而,这种方法似乎非常昂贵.

我很感激您的任何建议.

编辑1:

感谢您的评论/答案.回应: - 我正在使用mySQL v5.0 - 每天可能有任意数量的事件(真的是每个时间段) - @Paulo Santos:谢谢,但是就像评论指出的那样,我需要找到一个窗口产生最多的结果,窗口本身可以滑动. - @Mark:这看起来像一个有趣的解决方案,虽然我记得读到mySQL不支持备份或跳过游标.
- …

mysql sql

5
推荐指数
1
解决办法
343
查看次数

使用Python从代码库中挑选符号

给定代码库(比如说大型C或Objective-C项目)我想分析源代码文件并挑选出感兴趣的符号.它们可能是类声明,变量名称或类型或方法名称.是否有一个Python模块可以帮助我这个?

我可以看到的唯一方法是使用正则表达式来收集这些符号,但我认为这可能会很快变得非常丑陋.我也不是编译器或解析器方面的专家,因此可以优先考虑更轻量级的东西.

谢谢你的任何建议.

------更新-----

感谢到目前为止的所有建议,肯定是一些有希望的线索.另一种可能的途径:如果我能够编译我试图分析的项目该怎么办?调试符号(dsym)会使这个过程更容易吗?我不是在寻找任何先进的东西,只是一个类的列表,以及它们的ivar和方法名称.在这一点上,查看建议的解析工具似乎比我现在可以投资这个项目更多的工作

python parsing

5
推荐指数
1
解决办法
117
查看次数