小编Phi*_*l H的帖子

设计现在是重构的一个子集吗?

看看软件开发的酷新原则:

新方法似乎是潜入并编写实现范围目标的第一次迭代所需的内容,并根据需要进行重构以获得优雅的解决方案.您的代码库逐渐增长,并且从未有过大规划/分层设计阶段.对我来说,这表明软件设计(虽然它是值得的)已被归入重构,因为这是优雅代码的来源,而不是功能的增量添加.

我错了吗?

language-agnostic refactoring

6
推荐指数
3
解决办法
489
查看次数

一年中最大工作日数是多少?你会怎么编码?

为了在一年中的每个工作日为数组元素分配足够的空间,我正在尝试计算出我需要的最大行数.这让我想到了如何解决这个问题.

您是否需要计算未来n年每年的天数并继续这样做?或者(我怀疑)有一个更优雅的解决方案涉及数字365,366,2和7?

哪些图书馆会有帮助?

language-agnostic calendar

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

如何让外部代码"安全"运行?只是禁止eval()?

我希望能够允许社区成员提供他们自己的javascript代码供其他人使用,因为用户的想象力远远超过我能想到的任何东西.

但这提出了安全性的固有问题,特别是当目的是允许外部代码运行时.

那么,我可以禁止eval()提交并完成它吗?或者还有其他方法来评估代码或导致javascript中的大规模恐慌?

还有其他事情要禁止,但我主要担心的是,除非我能阻止执行字符串,否则我可以规避任何其他过滤器以用于特定方法.可行,或者我是否必须诉诸要求作者提供Web服务界面?

javascript security xss

6
推荐指数
3
解决办法
2322
查看次数

如何比较两个复杂的数据结构?

我有一些嵌套的数据结构,每个都是这样的:

[ ('foo', [ {'a':1, 'b':2},
                 {'a':3.3, 'b':7} ]),
  ('bar', [ {'a':4, 'd':'efg', 'e':False} ])   ]
Run Code Online (Sandbox Code Playgroud)

我需要比较这些结构,看看是否有任何差异.如果没有编写显式遍历结构的函数,是否存在执行此类递归比较的现有库或方法?

python comparison data-structures

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

有没有更有效的方法来对两个数字进行排序?

我想要dLowerdHigher分别拥有两个双精度值中的较低和较高的值 - 即,如果它们是错误的,则对它们进行排序。最直接的答案似乎是:

void ascending(double& dFirst, double& dSecond)
{
    if(dFirst > dSecond)
        swap(dFirst,dSecond);
}

ascending(dFoo, dBar);
Run Code Online (Sandbox Code Playgroud)

但是这似乎是一件很明显的事情,我想知道我是否只是没有使用正确的术语来找到标准例程。

另外,您将如何使其通用?

c++

6
推荐指数
2
解决办法
2242
查看次数

fsi.exe程序集:任何人都知道如何嵌入它?

很长一段时间的读者,第一个问题.fsi.exe是一个.NET可执行文件,因此包含自己的程序集,其中包含所有美妙的方法以及fsi用于执行F#脚本的内容.

查看.NET Reflector中的程序集(选择你的类,但Shell是最好的例子)显示了一堆看起来像装饰C++函数的垃圾*名称(例如,来自Dependency Walker).顺便提一下,F#程序集的编译方式大致相同,有很多垃圾*名称,这让我觉得fsi.exe是用F#编写的,也许是作为可用性证明?

无论如何,这是我的问题:有没有人深入研究fsi.exe并想出如何将其嵌入到.NET应用程序中?因为我想使用F#作为脚本语言,但程序编译为(惊喜)程序,脚本必须由fsi.exe执行,这在我的域中是不可接受的(我需要一个持久的VM).我不希望有关使用fsi.exe的操作指南,但我很想知道是否有人玩过它,如果有的话,你发现了它是如何工作的?

谢谢你的时间.

*随便看一眼垃圾.显然,他们的格式是这种特殊的方式,因为特殊原因是在幕后.

.net embed f# assemblies scripting-language

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

我什么时候可以使用Whatever明星?

下面这个职位上perlgeek,它给钻营的例子:

my &add_two := * + 2;
say add_two(5); # 7
Run Code Online (Sandbox Code Playgroud)

说得通.但是,如果我将中+缀运算符替换为中min缀运算符:

my &min_two := * min 2;
say min_two(5); # Type check failed in binding; expected 'Callable' but got 'Int'
Run Code Online (Sandbox Code Playgroud)

即使尝试+通过infix语法调用也会失败:

>> my &curry := &infix:<+>(2, *);
Method 'Int' not found for invocant of class 'Whatever'
Run Code Online (Sandbox Code Playgroud)

我是否需要将Whatever限定为数值,如果是,如何?还是我完全忽略了这一点?

[编辑新rakudo的回应; 以上版本字符串:perl6 version 2014.08 built on MoarVM version 2014.08]

currying perl6 raku

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

Pagerank vs SVD

Pagerank在一系列页面的节点图上工作,并且由它们各自的向内和向外链接形成有向边.因此,特定页面的等级在节点图中广泛地是局部诱导的效果.

另一方面,SVD在整个值矩阵上工作,并且没有方向性 - 站点A和站点B之间的链接仅在正确的矩阵元素上注册为1.它是一个全球系统,因此排名是一种全球性的影响.

鉴于Web派生矩阵的极度稀疏性,我认为SVD在这里表现不佳,因为它需要完整的数据集,并且具有显着的内存要求.

真的吗?Pagerank是否超越SVD主要是因为它是基于节点图的算法?Pagerank如何推断出一个页面超出提及单词次数的语义相关性?或者这是第二步,是在Pagerank对页面进行排名后执行的吗?

algorithm math pagerank graph svd

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

Perl映射块本地变量用法

此代码通过一组路径中唯一的基本名称存根的哈希键来编译集合.

%stubs = map { $f=basename $_; $f =~ /^([A-Za-z]+[0-9]+)\./ ; $1=>() } @pathlist;
Run Code Online (Sandbox Code Playgroud)

为什么我需要$f这里的参考?我以为我会好的:

%stubs = map { basename; /^([A-Za-z]+[0-9]+)\./; $1=>() } @pathlist;
Run Code Online (Sandbox Code Playgroud)

但我得不到匹配.我不允许在地图块中修改$ _吗?



对于那些想知道代码在做什么的人:

对于每个$ path(@pathlist),它获取基本名称,匹配第一个字母数字序列,然后返回第一个括号匹配作为空列表值的键.例:

/some/dir/foo123.adfjijoijb
/some/dir/foo123.oibhobihe
/some/dir/bar789.popjpoj
Run Code Online (Sandbox Code Playgroud)

回报

foo123 => ()
bar789 => ()
Run Code Online (Sandbox Code Playgroud)

之后我使用地图的键作为一组值进行处理.

perl map implicit local-variables

5
推荐指数
2
解决办法
855
查看次数

Trait::&lt;T&gt; 和 &lt;Trait&lt;T&gt;&gt; 有什么区别?

我有一个类型,我可以通过它的方法访问

SomeTrait::<T>::method()
Run Code Online (Sandbox Code Playgroud)

但我不明白这和

<SomeTrait<T>>::method()
Run Code Online (Sandbox Code Playgroud)

在 C++ 中,我希望这样:

SomeTrait<T>::method()
Run Code Online (Sandbox Code Playgroud)

这两个有区别吗?他们似乎都在调用on的<T>专业化。methodSomeTrait

generics rust

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