在大多数情况下,您只需将Visual Studio为其设置的任何内容作为默认设置...我指的是在解决方案资源管理器中选择的每个文件的BuildAction属性.有很多选择,很难知道他们每个人会做什么.
刚刚开始关注Ruby元编程.mixin/modules总是让我困惑.
那么主要区别在于这还是潜伏着更大的龙? 例如
module ReusableModule
def module_method
puts "Module Method: Hi there!"
end
end
class ClassThatIncludes
include ReusableModule
end
class ClassThatExtends
extend ReusableModule
end
puts "Include"
ClassThatIncludes.new.module_method # "Module Method: Hi there!"
puts "Extend"
ClassThatExtends.module_method # "Module Method: Hi there!"
Run Code Online (Sandbox Code Playgroud) 反模式:必须至少有两个关键元素来正式区分实际的反模式与简单的坏习惯,不良做法或坏主意:
投票给你在"野外"看过一次太多的TDD反模式.
詹姆斯卡尔的博客文章和 关于testdrivendevelopment yahoogroup的相关讨论
如果你发现了一个'未命名的',那么也可以发布它们.每个反模式一个帖子请投票计算一些东西.
我的既得利益是找到前n个子集,以便我可以在不久的将来在午餐盒中讨论他们.
这就是我现在所拥有的 - 它对于它所做的工作看起来过于冗长.
@title = tokens[Title].strip! || tokens[Title] if !tokens[Title].nil?
Run Code Online (Sandbox Code Playgroud)
假设标记是通过分割CSV线获得的数组.现在像条带的功能!的Chomp!等.如果字符串未被修改,则返回nil
"abc".strip! # => nil
" abc ".strip! # => "abc"
Run Code Online (Sandbox Code Playgroud)
如果Ruby包含额外的前导或尾随空格而不创建副本,那么Ruby的方法是什么?
如果我想做的话会变得更加丑陋 tokens[Title].chomp!.strip!
视觉上,以下两个片段都生成相同的UI.那么为什么有2个控件..
Snippet1
<TextBlock>Name:</TextBlock>
<TextBox Name="nameTextBox" />
Run Code Online (Sandbox Code Playgroud)
Snippet2
<Label>Name:</Label>
<TextBox Name="nameTextBox" />
Run Code Online (Sandbox Code Playgroud)
(好吧,我自己会回答这个问题......认为这是我今天从编程WPF学到的一个有用的小问题)
在尝试回答" 单元测试WPF绑定 " 附近的问题时,我遇到了以下琐碎的问题.
如果您的WPF数据绑定布线设置不正确(或者您刚刚破坏了正确接线的东西),最好的方法是什么? ?
虽然单元测试方法似乎就像Joel的"扯掉你的手臂去除碎片"......我正在四处寻找更容易,更少的开销方式来检测这一点.
每个人似乎都已经在WPF中大力宣传数据绑定......它确实有其优点.
我遇到过多个使用许可方案的第三方.Net组件供应商.在评估副本上,组件显示为具有唠叨屏幕或水印或某些此类指示符.在许可的计算机上,创建了Licenses.licx - 看起来只是程序集的全名/标识符.构建客户端程序集时必须包含此文件.
我试图让Matz和Flanagan的"Ruby Programming Language"元编程章节进入我的脑海,但是我无法理解我梦想的以下代码片段的输出:
p Module.constants.length # => 88
$snapshot1 = Module.constants
class A
NAME=:abc
$snapshot2 = Module.constants
p $snapshot2.length # => 90
p $snapshot2 - $snapshot1 # => ["A", "NAME"]
end
p Module.constants.length # => 89
p Module.constants - $snapshot1 # => ["A"]
p A.constants # => ["NAME"]
Run Code Online (Sandbox Code Playgroud)
本书指出class方法constants返回类的常量列表(正如您在输出中看到的那样A.constants).当我遇到上述奇怪的行为时,我试图获取为Module类定义的常量列表.
A的常量出现在Module.constants中.如何获取Module类定义的常量列表?
该文档的状态
Module.constants返回系统中定义的所有常量.包括所有类和方法的名称
由于A继承了它的实现Module.constants,它在基类和派生类型中的表现如何?
p A.class # => Class
p A.class.ancestors # => [Class, Module, Object, Kernel]
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用的是Ruby 1.9, …
我启动了我的应用程序,它生成了许多Threads,每个Threads创建一个NamedPipeServer(.net 3.5为Named Pipe IPC添加了托管类型)并等待客户端连接(Blocks).代码按预期运行.
private void StartNamedPipeServer()
{
using (NamedPipeServerStream pipeStream =
new NamedPipeServerStream(m_sPipeName, PipeDirection.InOut, m_iMaxInstancesToCreate, PipeTransmissionMode.Message, PipeOptions.None))
{
m_pipeServers.Add(pipeStream);
while (!m_bShutdownRequested)
{
pipeStream.WaitForConnection();
Console.WriteLine("Client connection received by {0}", Thread.CurrentThread.Name);
....
Run Code Online (Sandbox Code Playgroud)
现在我还需要一种Shutdown方法来干净地完成这个过程.我尝试了通常的bool标志isShutdownRequested技巧.但是管道流在WaitForConnection()调用中保持阻塞,并且线程不会死亡.
public void Stop()
{
m_bShutdownRequested = true;
for (int i = 0; i < m_iMaxInstancesToCreate; i++)
{
Thread t = m_serverThreads[i];
NamedPipeServerStream pipeStream = m_pipeServers[i];
if (pipeStream != null)
{
if (pipeStream.IsConnected)
pipeStream.Disconnect();
pipeStream.Close();
pipeStream.Dispose();
}
Console.Write("Shutting down {0} ...", t.Name);
t.Join();
Console.WriteLine(" done!");
}
}
Run Code Online (Sandbox Code Playgroud)
加入永不回归.
我没有尝试但可能会工作的选项是调用Thread.Abort并吃掉异常.但它感觉不对..任何建议 …
建议的做法是什么?我应该将fitnesse文件夹下的my子文件夹添加到版本控制中吗?
上下文:在单个开发人员rails pet项目上工作.我的版本控制(Subversion)下我的rails项目,但我的fitnesse维基页面位于fitnesse程序文件夹下.
Fitnesse似乎有自己的版本控制...(我看到编号的拉链以及我的每个维基页面)它可靠吗?它在哪里存储修订版?
ruby ×3
wpf ×2
.net ×1
.net-3.5 ×1
c# ×1
data-binding ×1
extend ×1
fitnesse ×1
include ×1
module ×1
named-pipes ×1
reflection ×1
string ×1
tdd ×1
unit-testing ×1