小编jba*_*all的帖子

有关"保护声明"与"单一功能退出点"范例的可维护性的研究是否可用?

我想知道是否有任何关于使用"守卫声明"范式与"单一功能退出点"范例的项目的可维护性的研究(包括随意和强大)?

Guard语句示例(在C#中):

string GetSomeString()
{
    if(necessaryConditionFails) { return null; }
    if(!FunctionWithBoolReturn(someAttribute)) { return null; }
    //all necessary conditions have been met
    //do regular processing...
    return finalStringValue;
}
Run Code Online (Sandbox Code Playgroud)

单个函数退出点示例(在C#中):

string GetSomeString()
{
    string valueToReturn = null;
    if(necessaryConditionPasses && FunctionWithBoolReturn(someAttribute)) 
    { 
        //all necessary conditions have been met
        //do regular processing...
        valueToReturn = finalStringValue;
    }
    return valueToReturn;
}
Run Code Online (Sandbox Code Playgroud)

我知道两者的优点和缺点都在SO上无休止地争论,但我正在寻找对每种范例的可维护性的实际研究*.这可能是未知的,但我想如果信息在那里,SO上的某个人就会知道它在哪里.到目前为止,我的网络搜索还没有成功.

**我也知道许多程序员(包括我)在整个代码中使用这两个原则,具体取决于具体情况.我只是希望发现哪一个具有更高可维护性的可靠记录,可以作为首选范例使用.*

language-agnostic paradigms

10
推荐指数
1
解决办法
3500
查看次数

正确的Dominion AI播放器的OOP结构

我一直在努力为流行的纸牌游戏Dominion(http://www.boardgamegeek.com/boardgame/36218/dominion)制作AI播放器.

如果你不熟悉这个游戏,它基本上是一个非常简化的魔术表演:The Gathering,那里有一个大型卡片库,里面有不同的规则.在游戏过程中,玩家购买这些卡片并将它们整合到他们的套牌中.

从机器学习的角度来看,我对这款游戏感兴趣 - 我想让机器人互相攻击,让他们玩数百万游戏,并尝试数据分析,让他们玩得更好.

我不确定如何将游戏规则(每张卡上印刷的逐字指令)与核心AI决策逻辑分开.

我开始的明显路径是为每张卡创建一个类,并将规则和AI内容放在同一个地方.这有点粗糙 - 但它似乎是阻力最小的道路.但也许每张卡最好支持某种接口,然后让AI组件对这些接口进行编码?

是否有"正确"的OOP设计?或几个合理的可能性?

c# oop artificial-intelligence

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

我可以使用testacular来测试本地主机上不存在的网页吗?

我可以使用testacular来测试本地主机上不存在的网页吗?外部应用程序是使用angularJs开发的

在我的测试中,我尝试过

browser().navigateTo('<test app which is not on localhost>');
Run Code Online (Sandbox Code Playgroud)

我无法在测试中验证网址.我收到此错误:

$location.url()

TypeError: Object [object Object] has no method 'injector'
    at Object.<anonymous> (<localhost path>/angular-scenario.js:25407:30)
Run Code Online (Sandbox Code Playgroud)

javascript karma-runner

10
推荐指数
1
解决办法
991
查看次数

计算并在标签中显示MD5 Hash文件

如何计算文件的MD5哈希并在标签中显示?

c# md5

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

jquery json解析

我如何用jQuery解析这个json?

DayEvents : [{"0":"886","event_id":"886","1":"5029","user_id":"5029","2":"Professional","user_type":"Professional", ...
Run Code Online (Sandbox Code Playgroud)

jquery json

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

为响应式UI细分长时间运行功能需要多少钱?

我有一个相当长的运行(3到10秒)函数,它在后台加载数据,用于页面中相当不常用的部分.我的问题是每次执行的最佳运行时间和确保页面其余部分保持相当交互的延迟时间是多少,但是通过分解数据加载不会过度延迟?

例如:

var i = 0;
var chunkSize = 10;
var timeout = 1;
var data; //some array

var bigFunction = function() {
    var nextStop = chunkSize + i; //find next stop
    if (nextStop > data.length) { nextStop = data.length }

    for (; i < nextStop; i++) {
       doSomethingWithData(data[i]);
    }
    if (i == data.length) { setTimeout(finalizingFunction, timeout); }
    else { setTimeout(bigFunction , timeoutLengthInMs); }     
};

bigFunction(); //start it all off
Run Code Online (Sandbox Code Playgroud)

现在,我已经完成了一些测试,并且chunkSize产生大约100毫秒的执行时间和1毫秒timeout似乎产生了非常灵敏的UI,但是我见过的一些例子推荐更大的块(~300毫秒)和更长的超时(20到100毫秒).我是否错过了将我的功能削减到太多小块的危险,或者试错是一种确定这些数字的安全方法?

javascript settimeout

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

CSS Rounded Corner Divs

如何只制作div轮中的一个两个三个角?

css rounded-corners css3

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

为什么'HASH JOIN'或'LOOP JOIN'改进了这个存储过程?

我有一个基本的查询,从6秒到1秒只需将一个连接更改LEFT JOINLEFT HASH JOIN"LEFT LOOP JOIN".任何人都可以解释为什么这会导致性能如此大幅度增加以及为什么SQL的优化器不能自己解决它?

这大致是SQL的样子:

SELECT
   a.[ID]
FROM
   [TableA] a
LEFT HASH JOIN
   [TableB] b
   ON b.[ID] = a.[TableB_ID]
JOIN
   [TableC] c
   ON c.[ID] = a.[TableC_ID]
WHERE
   a.[SomeDate] IS NULL AND
   a.[SomeStatus] IN ('X', 'Y', 'Z') AND
   c.[SomethingElse] = 'ABC'
Run Code Online (Sandbox Code Playgroud)

表A和B在所有ID字段上都有数百万条记录和索引.使用SQL Server 2005.

编辑:一位同事提出了LEFT LOOP JOIN,它似乎让它更快...... SQL不是我的优势之一,所以我试图理解这些"暗示"是如何帮助的.

sql sql-server optimization join sql-server-2005

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

这个陈述中的问题是什么?

我正在编写一个示例应用程序来将DOC文件转换为PDF.在这样做时,我遇到了错误.

// Creating the instance of WordApplication
MSDOC = new Microsoft.Office.Interop.Word.ApplicationClass();
try
{
    MSDOC.Visible = false;
    MSDOC.Documents.Open(ref Source, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown,
     ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
    MSDOC.Application.Visible = false;
    MSDOC.WindowState = Microsoft.Office.Interop.Word
                                 .WdWindowState.wdWindowStateMaximize;
    object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Message from Sample");
}
Run Code Online (Sandbox Code Playgroud)

这是我收到错误的声明:

object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
Run Code Online (Sandbox Code Playgroud)

错误互操作类型'Microsoft.Office.Interop.Word.ApplicationClass'无法嵌入.请改用适用的界面.

.net c# ms-word c#-4.0

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

Jquery data()存储

任何人都可以告诉我jquery data()存储数据的位置以及何时删除数据以及如何删除数据?

如果我用它来存储ajax调用结果会有任何性能问题吗?

例如:

$("body").data("test", { myData: 'abcd'});
Run Code Online (Sandbox Code Playgroud)

jquery data-storage

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