问题列表 - 第798页

std :: map insert或std :: map find?

假设您要保留现有条目的地图.20%的情况下,您插入的条目是新数据.使用返回的迭代器执行std :: map :: find然后std :: map :: insert是否有优势?或者是否更快尝试插入然后根据迭代器是否指示记录是否插入来执行操作?

c++ optimization stl stdmap

85
推荐指数
4
解决办法
7万
查看次数

"get()const"与"getAsConst()const"

有人告诉我他们团队中的C++风格差异.我有我自己关于这个问题的观点,但我会感兴趣的优点缺点,从大家的到来.

因此,如果您有一个类属性,您希望通过两个getter,一个读/写,另一个readonly(即没有set方法)公开.至少有两种方法:

class T ;

class MethodA
{
   public :
      const T & get() const ;
      T & get() ;

      // etc.
} ;

class MethodB
{
   public :
      const T & getAsConst() const ;
      T & get() ;

      // etc.
} ;
Run Code Online (Sandbox Code Playgroud)

每种方法的优点和缺点是什么?

我更感兴趣的是C++技术/语义原因,但也欢迎样式原因.

注意,MethodB有一个主要的技术缺点(提示:在通用代码中).

c++ coding-style const

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

144
推荐指数
6
解决办法
20万
查看次数

用于解析LDAP dn的正则表达式

我有以下字符串:

cn=abcd,cn=groups,dc=domain,dc=com
Run Code Online (Sandbox Code Playgroud)

这里可以使用正则表达式在第一个之后和第一个cn=之前提取字符串,吗?在上面的例子中,答案应该是abcd.

regex

4
推荐指数
2
解决办法
8296
查看次数

条件编译是单元测试的有效模拟/存根策略吗?

在最近关于存根的问题中,许多答案建议使用 C# 接口或委托来实现存根,但一个答案建议使用条件编译,在生产代码中保留静态绑定。这个答案在阅读时被修改为-2,所以至少有 2 人确实认为这是一个错误的答案。也许滥用 DEBUG 是原因,或者可能使用固定值而不是更广泛的验证。但我不禁想知道:

使用条件编译是否是实现单元测试存根的不适当技术?有时?总是?

谢谢。

编辑-添加: 我想添加一个示例作为实验:

class Foo {
    public Foo() { .. }
    private DateTime Now { 
      get {
#if UNITTEST_Foo
        return Stub_DateTime.Now;
#else
        return DateTime.Now;
#endif
      }
    }
    // .. rest of Foo members
}
Run Code Online (Sandbox Code Playgroud)

相比于

interface IDateTimeStrategy { 
    DateTime Now { get; }
}
class ProductionDateTimeStrategy : IDateTimeStrategy {
  public DateTime Now { get { return DateTime.Now; } }
}
class Foo {
    public Foo() : Foo(new ProductionDateTimeStrategy()) …
Run Code Online (Sandbox Code Playgroud)

unit-testing stub conditional-compilation

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

用于持续集成Java Web项目的软件

我们正处于一个新的网络项目的早期阶段.随着时间的推移,该项目将会发展壮大.从一开始我们将使用JUnit进行单元和集成测试,并使用HtmlUnit进行系统测试.如果证明对我们有价值,我们也可以在构建过程中添加一些静态代码分析工具.

如果您参与或使用过持续集成的项目.你使用了哪种软件,你认为它已经得到了回报吗?您建议使用哪种软件来持续集成Java Web项目?

java continuous-integration

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

如何在*nix中登录时运行脚本?

我知道我曾经知道如何做到这一点,但是...如何在unix上登录时运行脚本(bash可以)?

unix linux macos bash shell

68
推荐指数
4
解决办法
15万
查看次数

Ruby on Rails:没有这样的文件可以加载 - 在RedHat Linux Enterprise上打开openssl

我正在尝试'rake db:migrate'并收到错误消息'没有这样的文件加载 - openssl'.安装了'openssl'和'openssl-devel'软件包.Debian或Ubuntu上的其他人似乎可以通过安装"libopenssl-ruby"来解决这个问题,而这个问题并不适用于RedHat.有没有人遇到这个并有解决方案?

ruby rake openssl redhat ruby-on-rails

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

SMTP客户端必须在HELO中为MTA提供全局可解析的主机名吗?

简而言之:我正在试图弄清楚我是否应该告诉朋友的雇主的邮件管理员他们的邮件配置是否应该修复,或者我是否应该修改我自己的政策以使我接受的更自由,或者两者都不.

一位朋友抱怨无法在我的邮件服务器上找到任何东西.我挖了它,似乎他连接到我的邮件服务器提供的主机名在*.local空间的某个地方,这意味着它不是全局可解析的.

他们被拒绝,"Helo命令被拒绝:主机未被发现;" 通过我的postfix邮件服务器.我可能对后缀中的UCE检查严格,所以我将他们(在我看来,配置错误)服务器列入白名单,但现在我想弄清楚他们实际上在多大程度上错误配置,而不是我是否过于苛刻在我接受的.

然后我检查了RFC - RFC 821说"HELO接收器可以验证HELO参数确实对应于发送方的IP地址.但是,即使发送方的HELO命令验证失败,接收方也不能拒绝接受消息".这告诉我,我实际上是违反RFC的人.

RFC 821的这部分是否已被未来的RFC取代,我可以指出?或者邮件服务器必须接受伪造的HELO邮件吗?是否有任何受到尊重的权威机构我可以指出HELO主机名应该有效,作为联系其邮件管理员的参考?

postfix-mta smtp email-spam

3
推荐指数
1
解决办法
2546
查看次数

我可以通过反射/诊断从方法中获取调用实例吗?

有没有办法通过System.Reflection,System.Diagnostics或其他方法来获取对调用静态方法的实际实例的引用,而不将其传递给方法本身?

例如,沿着这些方向的东西

class A
{
    public void DoSomething()
    {
        StaticClass.ExecuteMethod();
    }
}

class B
{
    public void DoSomething()
    {
        SomeOtherClass.ExecuteMethod();
    }
}
public class SomeOtherClass
{
    public static void ExecuteMethod()
    {
        // Returns an instance of A if called from class A
        // or an instance of B if called from class B.
        object caller = getCallingInstance();
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以使用System.Diagnostics.StackTrace.GetFrames获取类型,但有没有办法获得对实际实例的引用?

我知道反射和性能的问题,以及静态到静态调用的问题,并且这通常,甚至可能几乎是不一致的,而不是正确的方法来解决这个问题.这个问题的部分原因是我很好奇它是否可行; 我们目前正在传递实例.

ExecuteMethod(instance)
Run Code Online (Sandbox Code Playgroud)

我只是想知道这是否可行并且仍然能够访问该实例.

ExecuteMethod()
Run Code Online (Sandbox Code Playgroud)

@Steve Cooper:我没有考虑扩展方法.一些变化可能会奏效.

.net c# reflection

12
推荐指数
2
解决办法
8257
查看次数