在开发用户界面时,您对使用TDD有何看法和经验?
我一直在思考这个问题已有一段时间了,只是无法做出最终决定.我们即将启动一个Silverlight项目,我考虑了TDD 的Microsoft Silverlight单元测试框架,但我不确定如何将该方法应用于UI开发 - 特别是Silverlight.
编辑: 问题是关于使用TDD进行UI开发是否实际,而不是关于如何分离关注点.
我有一个包含另一个结构的数组的结构,它看起来像这样:
typedef struct bla Bla;
typedef struct point Point;
struct point
{
int x, y;
};
struct bla
{
int another_var;
Point *foo;
};
Run Code Online (Sandbox Code Playgroud)
我现在想在全球范围内初始化它们.它们旨在作为模块的描述.我尝试用c99复合文字做到这一点,但编译器(gcc)不喜欢它:
Bla test =
{
0, (Point[]) {(Point){1, 2}, (Point){3, 4}}
};
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
error: initializer element is not constant error: (near initialization for 'test')
由于我不需要修改它,我可以根据需要在其中加入尽可能多的"const".有没有办法编译它?
是否建议将基类的成员变量设置为protected,以便子类可以访问这些变量?或者是否更建议将成员变量设置为private并让子类通过getter和setter获取或设置变量?
如果建议使用getter和setter方法,何时使用受保护的变量?
您如何构建完整的键盘可访问Web应用程序?假设这是针对受限制的部署环境(在组织内使用),其中访问受到限制(不对公众开放).
更新:忘了提及这是为了提高数据录入效率,而不是与残疾有关.
更新2:在整个应用程序中使用Flash是否有意义?考虑到环境是基于浏览器而不是基于Web的?
沿着这条线的某个地方,我发现使用iframe是'糟糕的做法'.
这是真的?使用它们的优点/缺点是什么?
年复一年,我试图了解部分与内存模型和并发交易的Java规范.我不得不承认我惨遭失败.是的'我理解锁和"synchronized"以及wait()和notify().我可以使用它们,谢谢.我甚至对"易变"的含义有一个模糊的想法.但所有这些都不是来自语言规范 - 而是来自一般经验.
以下是我要问的两个示例问题.我对特定答案并不是那么感兴趣,因为我需要理解答案是如何从规范中得出的(或者可能是我如何得出规范没有答案).
我有两个问题.
不要realloc()和memcpy()阵列中的复制项目到另一个的方式更快的不仅仅是遍历每个元素O(N)?如果答案是肯定的,那么您认为它的复杂性是什么?
如果分配的大小小于原始大小,是否realloc()将条目复制到其他位置,或者只是将它们保留,因为它们会减小数组的大小?
我偶尔会在VS2008中遇到一个奇怪的错误.一位同事得到了类似的错误,我们在安装TFS PowerToys之后都注意到了它,所以我想知道它是否相关.
无论如何错误是:
Team Foundation错误由于以下错误,检索具有CLSID {GUIID ...}的组件的COM类工厂失败:80040154,
任何帮助将不胜感激
我的问题是,如果通过扩展已经实现它的类隐式实现的接口应该由类显式实现,如果类想要通告该事实,则它满足该接口的约定.
例如,如果要编写一个类,那就完成了接口的约定java.util.List.您实现了这个,扩展了java.util.AbstractList已经实现接口的类List.你明确声明,你实现了List吗?
public class MyList extends AbstractList implements List
Run Code Online (Sandbox Code Playgroud)
或者你是否通过隐式方式保存输入?
public class MyList extends AbstractList
Run Code Online (Sandbox Code Playgroud)
哪种方式被认为是更好的风格?你有什么理由喜欢这种或那种方式?在哪种情况下你更喜欢方式1或方式2?