小编Sve*_*end的帖子

编程中的非英语域命名问题

我想大多数编程代码都是用英文编写的.但我很好奇人们如何处理这里的命名问题.许多编程都是在一些商业领域内完成的,通常对某些程序,项目都有完善的术语.

例如,我来自丹麦,我经常使用的东西有一个名为"indblikskode"的术语,这种术语可以转化为"洞察力代码".那么,我在C#代码中使用"string indblikskode = ..."行来获取与此相关的某些Web服务吗?或者我是否尝试使用翻译,例如"insightcode"?我所处的业务在语言上甚至不一致,例如使用术语"organisatorisk enhed"(组织单位),但同样经常使用缩写"OU",这显然是英文缩写.

其他人如何处理这个命名问题,同时保持一致,理智(从代码中的简单变量名到数据库表到服务器名称)?

重复:

dns naming non-english

9
推荐指数
2
解决办法
382
查看次数

使用MSBuild/Web Deployment Project启动程序而不是等待它

在部署发生之后,我希望资源管理器在某个文件夹上打开,我正在使用以下内容来尝试它:

<Target Name="AfterBuild">
  <Exec Command="..."></Exec>
</Target>
Run Code Online (Sandbox Code Playgroud)

但是,一个简单的"资源管理器\某处"会导致构建过程在资源管理器上阻塞,直到您关闭资源管理器才会完成.对它进行前缀start explorer \\somewhere也不会改变它.

有一个简单的方法吗?事情是我们只部署到一个中间阶段,并希望手动完成最后一步,并在相关文件夹上打开一个资源管理器是一个很好的.Exec命令实际上调​​用BAT文件,如果这很重要,使用VS.NET 2008,在Server 2008 Standard上.

msbuild

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

当模板使用$ data绑定处理程序时,Knockout不会更新视图

我正在尝试以某种方式编写我的KO模板,这似乎导致了Knockout的问题,Knockout停止更新视图.我希望尽可能避免在我的视图中有太多显式依赖项,所以当我编写一个模板来添加到文件附件列表时,我想我可以使用$data变量:

<script id="attachments-template" type="text/html">
    <input type="button" data-bind="attachments: $data" value="add">
</script>
Run Code Online (Sandbox Code Playgroud)

和模板绑定:

<div data-bind="template: {name: 'button-add-data', data: attachments}"></div>
Run Code Online (Sandbox Code Playgroud)

这样可以将实际属性映射到使用位置,而不是在随机模板中关闭.attachments在我的实际案例中,绑定处理程序包装了jQuery fileupload插件,但只是调用push(i++)显示问题.

var i = 0;
ko.bindingHandlers.attachments = {
    init: function(element, valueAccessor) {
        var files = valueAccessor();
        $(element).click(function() {
            files.push(i++);
        });
    }
};

var list = ko.observableArray();
var model= {
    attachments: list
};
Run Code Online (Sandbox Code Playgroud)

这说明这一点,使用KO 2.2.0小提琴:http://jsfiddle.net/stofte/sWGkJ/小提琴也表明,对一个明确的属性绑定工作正常.

显然在KO和绑定上下文中有很多关于Google和SO的东西,但是我找不到关于绑定处理程序中$ data的使用的任何内容,我不确定我使用$ data打破了什么KO法则,但似乎能够做我想做的事情会很有意义吗?

knockout.js

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

关于比较器的C++模板问题

可能是一个非常新的C++问题.假设我有一个类,顶点,有几个属性和方法.我想把一堆顶点填充到一个队列中,并让它们按顶点类的特殊属性排序(为学校做一个基本的Dijkstra图算法).

但是,我遇到了一些渗透C++语法的问题.这是我的代码(顶点未显示,但它非常简单).

typedef std::priority_queue<benchmark::vertex*, 
                    std::vector<benchmark::vertex*>, 
                    std::less<benchmark::vertex*> > q_type;
q_type* q = new q_type();
benchmark::vertex* v1 = new benchmark::vertex(0.1,0.1);
v1->cost = 4;
benchmark::vertex* v2 = new benchmark::vertex(0.1,0.1);
v2->cost = 8;
benchmark::vertex* v3 = new benchmark::vertex(0.1,0.1);
v3->cost = 6;
benchmark::vertex* v4 = new benchmark::vertex(0.1,0.1);
v4->cost = 10;
benchmark::vertex* v5 = new benchmark::vertex(0.1,0.1);
v5->cost = 2;
q->push(v1);
q->push(v2);
q->push(v3);
q->push(v4);
q->push(v5);
while (!q->empty()) {
    std::cout << (*(q->top())).cost << std::endl;
    q->pop();
}
Run Code Online (Sandbox Code Playgroud)

这在我的本地机器上输出2,10,6,8,4.我正在使用GCC(gcc版本4.3.3(Ubuntu 4.3.3-5ubuntu4))的Linux机器上测试它.显然,我希望它按顺序吐出数字.

我如何制作比较器,以便在进行比较时查看并比较vertex.cost?

c++ templates graph

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

Haskell函数模式匹配问题

我正在做一些功课,虽然我有一些SML的经验,但Haskell有些奇怪之处.考虑这个简单的功能:

type Pos = (Int, Int)
data Move = North | South | East | West
move :: Move -> Pos -> Pos
move North (x,y) = (x, y+1)
move South (x,y) = (x, y-1)
move East  (x,y) = (x+1, y)
move West  (x,y) = (x-1, y)

moves :: [Move] -> Pos -> Pos
moves (m:ms) (x,y) = moves ms (move m (x,y))
moves [] p = p
Run Code Online (Sandbox Code Playgroud)

这段代码有效.但是,如果我交换(x,y)元组(我不使用p它),简单的调用失败(声明当然可以正常工作):

moves :: [Move] -> Pos -> Pos …
Run Code Online (Sandbox Code Playgroud)

haskell

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

C++类声明和命名空间

我正在尝试编写一个C++库的问题.这是通常的设置,一个cpp文件,一个头文件.我希望头文件只显示要使用的部分(例如,我有一个抽象基类,我不想在头文件中).到目前为止,我只是处理一个文件(我认为这应该没有区别,因为包含是由预处理器完成的,它不关心任何事情).

您会注意到"头文件"分布在头部实现文件之前和之后的两个位置.

#include <stdio.h>

// lib.h
namespace foo {
    template <class T> class A;
}

// lib.cpp
namespace foo {
    template <class T> class A {
        private:
        T i;
        public:
        A(T i) {
            this->i = i;
        }

        T returnT() {
            return i;
        }
    };
};

// lib.h
namespace foo {
    template <class T> T A<T>::returnT();
}

// foo.cpp
void main() {
    foo::A<int> a = foo::A<int>(42);
    printf("a = %d",a.returnT());
}
Run Code Online (Sandbox Code Playgroud)

所以,当然,我希望我的头文件只包含

namespace foo {
    template <class T> class A;
    template <class …
Run Code Online (Sandbox Code Playgroud)

c++ templates namespaces class header-files

0
推荐指数
1
解决办法
5899
查看次数