小编Ale*_*lin的帖子

Maven:将自定义外部JAR链接到我的项目的最佳方式?

这是我学习Maven的前几天,我仍然在努力学习基础知识.我有一个外部.jar文件(在公共存储库中不可用),我需要在我的项目中引用它,我正在试图找出我最好的选择.

这是一个没有库的中央存储库的小型项目,所以它必须是一个本地存储库(以某种方式添加到源代码控制,不知道它是否应该以这种方式工作?)或者.jar需要存储在任何正式存储库之外的磁盘.

1)我最好的选择是将.jar文件添加到项目的maven引用中,因为我希望项目和库都在源代码控制中?

2)我似乎还无法让Eclipse看到依赖.我手动将它添加到pom的部分,它在m2eclipse的Dependencies列表中显示正常.mvn compile和mvn包都成功,但运行程序导致:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
        LibraryStuff cannot be resolved to a type
Run Code Online (Sandbox Code Playgroud)

这是在将POM编辑为:

<dependency>
  <groupId>stuff</groupId>
  <artifactId>library</artifactId>
  <version>1.0</version>
  <systemPath>${lib.location}/MyLibrary.jar</systemPath>
  <scope>system</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我是否应该执行mvn install:install-file,即使我已经编辑了如上所述的pom.xml?

谢谢!

java maven-2 m2eclipse maven

140
推荐指数
9
解决办法
24万
查看次数

ObjectiveC中变量位置的声明/定义?

自从开始研究iOS应用程序和目标C以来,我一直对可以声明和定义变量的不同位置感到困惑.一方面我们采用传统的C方法,另一方面我们有新的ObjectiveC指令,在其上添加OO.你能不能帮助我了解最佳实践和情况,我希望将这些位置用于我的变量,或者纠正我目前的理解?

这是一个示例类(.h和.m):

#import <Foundation/Foundation.h>

// 1) What do I declare here?

@interface SampleClass : NSObject
{
    // 2) ivar declarations
    // Pretty much never used?
}

// 3) class-specific method / property declarations

@end
Run Code Online (Sandbox Code Playgroud)

#import "SampleClass.h"

// 4) what goes here?

@interface SampleClass()

// 5) private interface, can define private methods and properties here

@end

@implementation SampleClass
{
    // 6) define ivars
}

// 7) define methods and synthesize properties from both public and private
//    interfaces

@end
Run Code Online (Sandbox Code Playgroud)
  • 我对1和4的理解是那些是基于C风格的基于文件的声明和定义,它们对类的概念一无所知,因此必须准确地使用它们在C中的使用方式.我见过它们用于实现之前基于静态变量的单例.我还缺少其他方便的用途吗? …

iphone objective-c ios ios5

111
推荐指数
4
解决办法
5万
查看次数

铸造和胁迫有什么区别?

我已经看到这两个术语在各种在线解释中几乎可以互换使用,我咨询过的大多数教科书也不完全清楚这种区别.

是否有一种清晰而简单的方式来解释你们所知道的差异?

类型转换(有时也被称为类型转换)

在期望另一个的上下文中使用一种类型的值.

非转换类型转换(有时称为类型双关语)

不会改变基础位的更改.

强迫

当周围上下文需要第二种类型时,编译器自动将一种类型的值转换为另一种类型的值的过程.

c# oop

78
推荐指数
3
解决办法
4万
查看次数

单例实例与类方法

虽然最近使用Objective-C和其中编写的各种库,但我注意到两个非常流行的单例模式.一个版本获取单例实例并调用其实例方法,而其他版本仅公开类方法,并且永远不会为您提供实例.所有这些都旨在抽象对单个资源(StoreKit,CoreData,Parse API等)的访问.例如,这是MKStoreKit中使用的前一种方法:

// initialize singleton during app boot
[MKStoreManager sharedManager]

// sometime later in the app
[[MKStoreManager sharedManager] buyFeature:kFeatureAId 
                                onComplete:^(NSString* purchasedFeature)
 {
     NSLog(@"Purchased: %@", purchasedFeature);
 }
                               onCancelled:^
 {
     NSLog(@"User Cancelled Transaction");
 }];
Run Code Online (Sandbox Code Playgroud)

或者NSUserDefaults,UIApplication等.另一种方法可以在MagicalRecord或Parse API中看到:

// configure API credentials sometime during app boot
[Parse setApplicationId:@"123456"
              clientKey:@"123456"];

// sometime later
PFObject *testObject = [PFObject objectWithClassName:@"TestObject"];
[testObject setObject:@"bar" forKey:@"foo"];
[testObject save];
Run Code Online (Sandbox Code Playgroud)

这两种方法的优点和缺点是什么,其中一种基本上比另一种更好?

不必检索共享实例可以节省一些屏幕空间(性能差异可能无关紧要),但我是否以其他方式搞砸自己,例如,可测试性?

谢谢!

oop design-patterns objective-c

39
推荐指数
2
解决办法
7315
查看次数

难以在Clojure中使用功能广度优先树遍历?

说我定义为每个在推荐树这个帖子,虽然它在我的情况下,一个载体,它希望不应该的问题(他们在编程Clojure的书向量):

(def tree [1 [[2 [4] [5]] [3 [6]]]])
Run Code Online (Sandbox Code Playgroud)

这应该是这样的:

      1
     / \
    2   3
   / \  |
  4   5 6
Run Code Online (Sandbox Code Playgroud)

现在,我想在没有任何传统方法(例如队列)的情况下对树进行广度优先遍历,而是专门使用堆栈来传递信息.我知道这不是最简单的路线,但我主要是做运动.此外,我不打算返回一个集合(我会在之后将其视为练习),而是在我浏览它们时打印出节点.

我目前的解决方案(刚开始使用Clojure,很好):

(defn breadth-recur
  [queue]
  (if (empty? queue)
    (println "Done!")
    (let [collections (first (filter coll? queue))]
      (do
        ; print out nodes on the current level, they will not be wrapped'
        ; in a [] vector and thus coll? will return false
        (doseq [node queue] (if (not (coll? node)) (println node)))
        (recur (reduce conj (first collections) (rest collections))))))) …
Run Code Online (Sandbox Code Playgroud)

algorithm functional-programming clojure

20
推荐指数
2
解决办法
4852
查看次数

在同一iOS设备上安装开发应用程序版本和生产?

我有一个应用程序,目前在AppStore中,我一直在手机上显示用户和其他可能感兴趣的人.与此同时,我正在同一部手机上开发下一版本的应用程序.我希望能够将这两个应用程序并排安装在同一设备上.

实现这一目标的规定/最少hacky方式是什么?这有可能吗?理想情况下,这将尽可能自动化,每次部署前无需手动重命名.

谢谢你!

iphone xcode ios ios5 ios6

14
推荐指数
1
解决办法
3273
查看次数

Chrome + CORS +缓存 - 从两个不同的来源请求相同的文件

我遇到了Chrome的一个问题,我似乎无法完全理解,我很好奇,如果这里的人们已经处理过它.这不会在Firefox中重现.步骤如下:

  1. 开启无痕浏览器,浏览到https://foo.mysite.com并有JS在页面上做一个GET Ajax请求S3的https://s3.amazonaws.com/mystuff/file.json.您回复200响应:

    HTTP/1.1 200 OK
    x-amz-id-2: somestuffhere
    x-amz-request-id: somestuffhere
    Date: Tue, 14 Oct 2014 03:06:41 GMT
    Access-Control-Allow-Origin: https://foo.mysite.com
    Access-Control-Allow-Methods: GET
    Access-Control-Max-Age: 3000
    Access-Control-Allow-Credentials: true
    Vary: Origin, Access-Control-Request-Headers, Access-Control-Request-Method
    Cache-Control: max-age=86400
    Content-Encoding: gzip
    Last-Modified: Sun, 05 Oct 2014 00:29:53 GMT
    ETag: "fe76607baa40a793eb3b3cbd373a3fb8"
    Accept-Ranges: bytes
    Content-Type: application/json
    Content-Length: 5609
    Server: AmazonS3
    
    Run Code Online (Sandbox Code Playgroud)
  2. 打开第二个选项卡,导航到https://bar.mysite.com并让其JS向同一个文件https://s3.amazonaws.com/mystuff/file.json向S3发出GET ajax请求.取回以下304响应:

    HTTP/1.1 304 Not Modified
    x-amz-id-2: somestuffhere
    x-amz-request-id: somestuffhere
    Date: Tue, 14 Oct 2014 03:06:58 GMT
    Access-Control-Allow-Origin: https://bar.mysite.com
    Access-Control-Allow-Methods: GET
    Access-Control-Max-Age: …
    Run Code Online (Sandbox Code Playgroud)

google-chrome amazon-s3 cross-domain chromium cors

12
推荐指数
1
解决办法
6339
查看次数

小型开发团队需要多少个github ssh密钥?

在使用GitHub托管的远程存储库时,我对SSH密钥的概念感到困惑.我按照http://help.github.com/win-set-up-git/中的说明生成了密钥,但是现在我有多个开发人员推进了回购,我不清楚我们是否都要分享一个SSH密钥,或者如果我们都需要为每台机器生成一个单独的密钥并使用它?

有人可以帮我澄清一下吗?

git ssh github

10
推荐指数
2
解决办法
4790
查看次数

在Rails完成加载后运行代码?

我有一个需要每分钟执行一次的周期性任务(使用delayed_job).我希望Rails在加载完成后立即自动排队,如果系统中还没有这样的任务.

在整个Rails启动流程结束时运行一些代码的好地方是什么?有人建议使用config/environments/development.rb(或其他环境),但是当我从那里排队作业时,delayed_job会给我ActiveRecord问题.

我咨询了http://guides.rubyonrails.org/initialization.html,似乎也没有明确的位置.

是否可以通过rake或其他方式在我的应用程序代码外部完成这种部署后设置?有什么建议?

谢谢!

ruby-on-rails delayed-job ruby-on-rails-3

9
推荐指数
1
解决办法
4251
查看次数

ActiveRecord查询比直接SQL慢得多?

我一直在努力优化我的项目的数据库调用,我注意到下面两个相同调用之间的性能"显着"差异:

connection = ActiveRecord::Base.connection()
pgresult = connection.execute(
  "SELECT SUM(my_column)
   FROM table
   WHERE id = #{id} 
   AND created_at BETWEEN '#{lower}' and '#{upper}'")
Run Code Online (Sandbox Code Playgroud)

和第二个版本:

sum = Table.
      where(:id => id, :created_at => lower..upper).
      sum(:my_column)
Run Code Online (Sandbox Code Playgroud)

使用第一个版本的方法平均需要300毫秒才能执行(该操作在其中总共被称为几千次),而使用第二个版本的方法需要大约550毫秒.这几乎是速度下降100%.

我仔细检查了第二个版本生成的SQL,它与第一个版本的第一个相同,但是它使用表名添加表列.

  • 为什么减速?ActiveRecord和SQL之间的转换是否真的使得操作几乎耗费了2倍?
  • 如果我需要执行相同的操作很多次并且我不想达到开销,我是否需要坚持直接编写SQL(甚至可能是sproc)?

谢谢!

postgresql ruby-on-rails database-performance ruby-on-rails-3

9
推荐指数
1
解决办法
4521
查看次数