小编Vik*_*ahl的帖子

我应该制作一个DateRange对象吗?

我的一些域对象包含日期范围作为一对开始和结束日期属性:

public class Period {
  public DateTime EffectiveDate { get; set; }
  public DateTime ThroughDate { get; set; }
}

public class Timeline {
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我发现自己有很多这样的事情:

abstract public int Foo(DateTime startDate, DateTime endDate);
abstract public decimal Bar(DateTime startDate, DateTime endDate);
abstract public ICollection<C5.Rec<DateTime, DateTime>> FooBar(DateTime startDate, DateTime endDate);
Run Code Online (Sandbox Code Playgroud)

最后一个让我想知道......我应该实现一个DateRange类吗?我不知道BCL中有一个.

根据我的经验,使对象层次结构更深入往往使事情复杂化.这些对象确实被发送到ReportViewer控件显示的RDLC报告,但这是次要的.我会将视图弯曲到模型而不是相反.但是,我们并不依赖于属性名称,并愿意与以下内容妥协:

public class DateRange {
  public DateTime StartDate { get; set; }
  public DateTime EndDate { get; …
Run Code Online (Sandbox Code Playgroud)

.net tuples model date-range

61
推荐指数
3
解决办法
2万
查看次数

为什么不能从c ++ std字符串类派生?

我想询问有效C++中的具体要点.

它说:

如果一个类需要像多态类一样运行,那么析构函数应该是虚拟的.它进一步补充说,由于std::string没有虚拟析构函数,因此永远不应该从中派生出来.还std::string甚至没有设计成一个基类,忘记多态基类.

我不明白一个类中具体要求什么才有资格成为基类(不是多态的)?

我不应该从std::string类派生的唯一原因是它没有虚拟析构函数吗?为了可重用性,可以定义基类,并且多个派生类可以从中继承.那么什么使得std::string甚至没有资格成为基类?

此外,如果存在纯粹为可重用性目的而定义的基类,并且有许多派生类型,是否有任何方法可以阻止客户端执行,Base* p = new Derived()因为这些类并不是要多态地使用?

c++ string inheritance stl

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

域驱动设计中的验证

您如何处理域驱动设计中复杂聚合的验证?您是否整合了业务规则/验证逻辑?

我理解参数验证.我理解可以附加到模型本身的属性验证,并执行检查电子邮件地址或邮政编码是否有效或者名字具有最小和最大长度等操作.

但是涉及多个模型的复杂验证呢?您通常将这些规则和方法放在您的架构中?你用什么模式来实现它们?

validation domain-driven-design

60
推荐指数
3
解决办法
2万
查看次数

Hibernate:创建Mysql InnoDB表而不是MyISAM

如何让Hibernate(使用JPA)创建MySQL InnoDB表(而不是MyISAM)?我发现使用Hibernate生成一个SQL文件来创建表时可以使用的解决方案,但没有任何"动态"工作.

java mysql innodb hibernate jpa

47
推荐指数
6
解决办法
4万
查看次数

Leveldb与Redis或Riak或Tokyo Tyrant相比如何?

Leveldb似乎是Google新推出的一款有趣的持久关键价值商店.Leveldb与Redis,Riak或Tokyo Tyrant有何不同?在哪些具体用例中哪一个比另一个好?

nosql tokyo-tyrant redis riak leveldb

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

LevelDB是否支持java?

我想知道LevelDB是否支持java?我在哪里可以获得LevelDB.http://code.google.com/p/leveldb/下没有文件

java database leveldb

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

使用cabal和ghc构建运行时标志

我有一个用Haskell编写的程序,打算用GHC编译.该程序在多个内核上可以很好地扩展,因此启用多线程非常重要.在我的.cabal文件中,我添加ghc-options: -O3 -threaded了与线程运行时的链接.问题是,使用这种方法,用户需要运行程序foo +RTS -N,这似乎有点神秘,不是非常用户友好.

如何告诉cabal/ghc为用户隐藏这些运行时标志?我已经读过了--with-rtsopts,但GHC(7.0.3)只是unrecognized flag在我尝试使用时吐出来.

haskell build ghc cabal

29
推荐指数
1
解决办法
8510
查看次数

编写代码以使CPU使用率显示正弦波

用您喜欢的语言编写代码,让Windows任务管理器代表CPU使用历史中的正弦波.

这是来自微软中国的技术访谈测验.我认为这是一个很好的问题.特别值得了解候选人如何理解并找出解决方案.

编辑:如果可能涉及多核(cpu)案例,这是一个好点.

windows trigonometry cpu-usage

25
推荐指数
3
解决办法
3369
查看次数

iPhone + UITableView +行高

我正在UITableView使用以下代码设置我的行高

[tableView setRowHeight: 100.00];
Run Code Online (Sandbox Code Playgroud)

我使用单行作为分隔符UITableView.

尽管设置上面的高度,行的高度不会改变.

iphone height row uitableview

22
推荐指数
3
解决办法
5万
查看次数

libc随机数生成器有缺陷?

考虑一种算法来测试在特定次数的尝试之后从一组N个唯一数字中挑选某个数字的概率(例如,N = 2,轮盘中的概率是什么(没有0),它需要X尝试黑赢?)

对此的正确分布是pow(1-1/N,X-1)*(1/N).

但是,当我使用以下代码对其进行测试时,在X = 31处始终存在深沟,独立于N,并且独立于种子.

这是一个内在的缺陷,由于PRNG的实施细节在使用中无法防止,这是一个真正的错误,还是我忽略了一些明显的东西?

// C

#include <sys/times.h>
#include <math.h>
#include <stdio.h>

int array[101];
void main(){

    int nsamples=10000000;
    double breakVal,diffVal;
    int i,cnt;

    // seed, but doesn't change anything
    struct tms time;
    srandom(times(&time));

    // sample
    for(i=0;i<nsamples;i++){
        cnt=1;
        do{
            if((random()%36)==0) // break if 0 is chosen
                break;
            cnt++;
        }while(cnt<100);
        array[cnt]++;
    }

    // show distribution
    for(i=1;i<100;i++){
        breakVal=array[i]/(double)nsamples; // normalize
        diffVal=breakVal-pow(1-1/36.,i-1)*1/36.; // difference to expected value
        printf("%d %.12g %.12g\n",i,breakVal,diffVal);
    }
}
Run Code Online (Sandbox Code Playgroud)

使用libc6软件包2.15-0ubuntu20和Intel Core i5-2500 SandyBridge测试了最新的Xubuntu 12.10,但几年前我在一台较旧的Ubuntu机器上发现了这一点.

我也在Windows 7上使用Unity3D/Mono进行了测试(虽然不确定哪个Mono版本),这里使用System.Random时,X = 55时沟渠发生,而Unity内置的Unity.Random没有可见的沟渠(至少没有)对于X …

c random algorithm math glibc

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