我想大多数编程代码都是用英文编写的.但我很好奇人们如何处理这里的命名问题.许多编程都是在一些商业领域内完成的,通常对某些程序,项目都有完善的术语.
例如,我来自丹麦,我经常使用的东西有一个名为"indblikskode"的术语,这种术语可以转化为"洞察力代码".那么,我在C#代码中使用"string indblikskode = ..."行来获取与此相关的某些Web服务吗?或者我是否尝试使用翻译,例如"insightcode"?我所处的业务在语言上甚至不一致,例如使用术语"organisatorisk enhed"(组织单位),但同样经常使用缩写"OU",这显然是英文缩写.
其他人如何处理这个命名问题,同时保持一致,理智(从代码中的简单变量名到数据库表到服务器名称)?
重复:
在部署发生之后,我希望资源管理器在某个文件夹上打开,我正在使用以下内容来尝试它:
<Target Name="AfterBuild">
<Exec Command="..."></Exec>
</Target>
Run Code Online (Sandbox Code Playgroud)
但是,一个简单的"资源管理器\某处"会导致构建过程在资源管理器上阻塞,直到您关闭资源管理器才会完成.对它进行前缀start explorer \\somewhere也不会改变它.
有一个简单的方法吗?事情是我们只部署到一个中间阶段,并希望手动完成最后一步,并在相关文件夹上打开一个资源管理器是一个很好的.Exec命令实际上调用BAT文件,如果这很重要,使用VS.NET 2008,在Server 2008 Standard上.
我正在尝试以某种方式编写我的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法则,但似乎能够做我想做的事情会很有意义吗?
可能是一个非常新的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?
我正在做一些功课,虽然我有一些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) 我正在尝试编写一个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++ ×2
templates ×2
class ×1
dns ×1
graph ×1
haskell ×1
header-files ×1
knockout.js ×1
msbuild ×1
namespaces ×1
naming ×1
non-english ×1