我正处于一份新的合同中,他们似乎已经过度使用敏捷,包括聘请顾问只是为了促进敏捷流程.他所创立的东西是"核心时间"的概念,我们所有人实际上都会在同一个房间里.这真的是"核心时间"构成的吗?我问,因为拿起笔记本电脑并在半天前往这个共享位置非常不方便; 我一直认为"核心时间"意味着你可以在9:30到4之间使用,不一定在同一个房间里.
我有一个我需要引用的错误代码列表,有点像这样:
Code / Error Message
A01 = whatever error
U01 = another error
U02 = yet another error type
Run Code Online (Sandbox Code Playgroud)
我通过Web服务调用将代码返回给我,我需要显示或获取可读错误.所以我在传递一个返回可读描述的代码时需要一个函数.我只是想做一个选择案例,但认为他们可能是一个更好的方法.这样做的最好的方法/最有效的方法是什么?
好的,所以我正在寻找一些看起来大致如下的代码:
void DoSomething(object o)
{
if (o is Sometype1) {
//cast o to Sometype and do something to it
}
else if (o is Sometype2) {
//cast o to Sometype2 and do something to it
}
...
else if (o is SometypeN) {
//cast o to SometypeN and do something to it
}
}
Run Code Online (Sandbox Code Playgroud)
现在一种方法是使所有o
用作参数的对象实现类似的接口
interface ICanHaveSomethingDoneToMe
{
//expose various properties that the DoSomething method wants to access
}
Run Code Online (Sandbox Code Playgroud)
但问题是我不希望我的所有对象都实现这个接口 - 做某事的逻辑并不真正属于他们.我应该使用什么模式来处理这个问题?
我怀疑像是一系列的实现
interface IPropertiesForDoingSomethingTo<T>
{
//expose various …
Run Code Online (Sandbox Code Playgroud) 早在2000年(当我们在IIRC上发布.NET时)它就是一种创新的尖端语言(上次我用它是2003年).
从我读到的内容来看,Sun只是将语言进化得非常缓慢.我甚至已经读过语言发展的地方,比如增加了泛型,开发人员抱怨实施不好.
这些准确的看法,如果有的话,是否有任何想法,特别是与C#看似明显的竞争?
请告诉我是否可以执行以下操作:
你能提供一个小例子吗?
编辑:事实证明,嵌入是实现这一目标的最简单方法.有关嵌入JRuby的更多信息.
这是我的问题:
我有几个部署项目.为了部署应用程序,我需要完成几项任务,其中之一就是更改每个部署项目的产品版本和产品代码.
我找不到以编程方式改变它们的方法.
谁能帮我 ?
提前致谢.
更新:由于它是一个部署项目(最终生成可执行安装程序),我无法使用MSBuild,而是从命令提示符处使用Devenv.(布鲁诺,谢谢你的快速回复).
来自NP-Complete的维基百科条目:
"证明一些新问题是NP完全的最简单的方法是首先证明它是在NP中,然后减少一些已知的NP完全问题"
我很确定我理解这一点:如果我有问题,我可以证明它是NP-Complete如果我:
表明它在NP中(可以在非确定性图灵机上的多项式时间内验证问题的解决方案)
表明已知为NP-Complete的问题可以"减少"到新问题
所以,我的问题是,第一个NP完全问题"被证明"是NP完全的吗?同时,已知NP完全问题的集合必须为零,这将使得在上述过程中不可能采用步骤2.
这让我觉得有一种不同的证明方法,我不知道.由于缺少已知的多项式时间解决方案,或者可能由于缺少已知的多项式时间解而对某些问题"假设"整个NP完全属性.(实际上,写完这篇文章后,如果是这样的话,我不会感到惊讶,但无论如何我都喜欢一些古茹反馈).
这是困扰我的一些小CSS问题.Stack Overflow周围的人们如何垂直对齐checkboxes
以及他们labels
一致的跨浏览器?每当我在Safari中正确对齐它们(通常使用vertical-align: baseline
的input
),他们完全关闭在Firefox和IE.修复它在Firefox中,Safari和IE不可避免地搞砸了.每次编写表单时,我都会浪费时间.
这是我使用的标准代码:
<form>
<div>
<label><input type="checkbox" /> Label text</label>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我通常使用Eric Meyer的重置,因此表单元素相对干净的覆盖.期待您提供的任何提示或技巧!
我想要一些关于设计REST API的建议,它允许客户有效地向集合中添加/删除大量对象.
通过API,客户端需要能够向集合中添加项目并从中删除项目,以及操作现有项目.在许多情况下,客户端将希望对集合进行批量更新,例如添加1000个项目并删除500个不同的项目.感觉客户端应该能够在与服务器的单个事务中执行此操作,而不是需要1000个单独的POST请求和500个DELETE.
有没有人有关于实现这一目标的最佳做法或惯例的任何信息?
我当前的想法是,应该能够将表示对集合URI的更改的对象PUT,但这似乎与HTTP 1.1 RFC不一致,这似乎表明在PUT请求中发送的数据应该独立于数据已经存在于URI中.这意味着客户端必须一次性发送集合的新状态的完整描述,这可能远远大于更改,或者甚至超过客户端在发出请求时所知道的.
显然,如果有必要,我很乐意偏离RFC,但如果存在这样的约定,我宁愿以传统方式这样做.
假设我有一个带私人调度表的类.
$this->dispatch = array(
1 => $this->someFunction,
2 => $this->anotherFunction
);
Run Code Online (Sandbox Code Playgroud)
如果我再打电话
$this->dispatch[1]();
Run Code Online (Sandbox Code Playgroud)
我得到一个错误,该方法不是一个字符串.当我把它变成这样的字符串时:
$this->dispatch = array(
1 => '$this->someFunction'
);
Run Code Online (Sandbox Code Playgroud)
这会产生 致命错误:调用未定义的函数$ this-> someFunction()
我也试过用:
call_user_func(array(SomeClass,$this->dispatch[1]));
Run Code Online (Sandbox Code Playgroud)
导致消息:call_user_func(SomeClass :: $ this-> someFunction)[function.call-user-func]:第一个参数应该是一个有效的回调.
编辑:我意识到这并没有真正意义,因为当这是SomeClass时它调用SomeClass :: $ this.我已经尝试了几种方法,包含数组
array($this, $disptach[1])
Run Code Online (Sandbox Code Playgroud)
这仍然没有达到我的需要.
结束编辑
如果我没有类并且只有一个包含某些函数的调度文件,则此方法有效.例如,这有效:
$dispatch = array(
1 => someFunction,
2 => anotherFunction
);
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以将这些作为私有方法保留在类中,但仍然将它们与调度表一起使用.