这个问题一直困扰着我.
让我们设想一个代表资源的类,为了能够使用这个资源,首先需要在其上调用'Open'方法,否则将抛出InvalidOperationException.
我的代码是否还要检查是否有人试图打开已经打开的资源,或者关闭已经关闭的资源?
代码是否应该防止逻辑上无效的调用,即使不会造成任何伤害?
我认为以这种方式编程有助于在另一方编写更好的代码,但我觉得我可能会承担太多责任并影响可重用性.
你们有什么感想?
编辑:
我不认为这可以被称为防御性编程,因为它不会让任何可能的错误使用滑动,并且将抛出另一个InvalidOperationException.
我有一个具有纯静态方法和属性的类.我在类"Load"上调用异步方法,该方法向Web服务请求一大块数据,然后触发执行返回方法"LoadCompleted"的事件.我不知道调用要花多长时间(调用"Load"方法,然后调用"LoadCompleted")之间的区别.
我想阻止应用程序继续进行,直到引发回调方法(因为应用程序将尝试从此类中获取内容,在"LoadComplete"方法设置数据之前不会填充该内容).我该怎么做呢?
关于单元测试的两个问题.
我已经写了一段时间的单元测试,但是他们通常会测试我已编写的类.最近我读了一篇文章 (请注意一篇旧文章),说你应该在开始编写代码之前编写单元测试.
有人真的遵循这种方法吗?这在纸面上似乎是一个好主意,但在实践中呢?
我使用Eclipse Maven插件从SourceForge的SVN源代码控件中检出了一个开源项目.签出后,我在pom.xml文件中收到此错误:
从存储库[local(C:\ Documents and Settings\thomas.owens\.m2\repository),central(http:// repo1)解析插件'org.apache.maven.plugins:maven-source-plugin'的版本时出错.maven.org/maven2)]:在任何插件存储库中找不到插件
我对Maven很新,但是我遵循了Apache Maven和Eclipse插件的安装说明.在我可以清楚地看到位于C:\Documents and Settings\thomas.owens\.m2\repository\org\apache\maven\plugins\maven-source-plugin包含单个resolver-status.properties文件的目录时,在Maven或我的本地存储库的中央插件库中找不到此插件似乎很奇怪.
有关为什么可能找不到此插件以及我可以在哪里找到它的任何想法?
我想了解下面的程序.如果我调用new ReaderThread().start()它工作正常,但如果我调用new ReaderThread().run(),应用程序进入无限循环.有什么不同?
public class Contention {
private static boolean ready;
private static int number;
private static class ReaderThread extends Thread {
public void run() {
while (!ready){
System.out.println("ready ..."+ready);
Thread.yield();}
System.out.println(number);
// }
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new ReaderThread().run();
number = 42;
ready = true;
}
}
Run Code Online (Sandbox Code Playgroud) 喜欢的东西$log$和$version$它签入到文件时添加数据.我很想看到其他的以及他们可以提供什么信息,但除非我知道他们叫什么,否则我无法获得太多信息.
虽然有点与这个问题有关,但我认为我对此有不同看法.
桌面应用是否与"云"无关?我相信有些事情会继续出现在机器上(显然是操作系统,浏览器,一些轻量级的应用程序),但越来越多的东西转向基于网络的应用程序(请参阅Google Docs for office suite,GMail and其他用于电子邮件的网络电子邮件客户端,用于照片管理的flickr等等).
除了轻量级应用程序之外,还有什么东西可以在5到10年内继续存在(无论是出于必要还是仅仅是需求)仍然存在于桌面和云端?
$output = preg_replace("|(/D)(/s+)(/d+)(;)|", "//1,//3;", $output);
Run Code Online (Sandbox Code Playgroud)
我试图替换所有字母字符后跟一个或多个空格字符(制表符和/或空格),后跟一个或多个数字字符,后跟分号,后跟逗号后跟数字,然后是分号.
我举一个例子:
开始:
hello world 1007;
Run Code Online (Sandbox Code Playgroud)
结束:
hello world,1007;
Run Code Online (Sandbox Code Playgroud) 这就是我想知道的原因.我最近为我的笔记本电脑购买了一台外置电视调谐器,其特点是当它被推挤时,硬盘停止旋转.然而,即使我移动我的笔记本电脑,来自电视调谐器的视频(根据上面的书处理所有视频处理)也不会断断续续.我想知道这个电视调谐器是否正在直接访问视频卡和显示系统而不是写入硬盘然后显示它.
这让我想到了我的问题.外部设备可以/不可以做什么?
提示说如果我将软件安装到带有空格的目录中:
D共享源系统使用的重建构建工具将无法构建
而且我会
被迫在不同的位置重新安装
但是,我不喜欢C:\驱动器中的随机内容.D,IMO,属于使用PHP和MinGW的程序文件,依此类推.我怎么能在这里得到它?
如果重要,我正在使用Easy D安装程序包.
asynchronous ×1
c# ×1
cloud ×1
concurrency ×1
cvs ×1
d ×1
eclipse ×1
exception ×1
hardware ×1
installation ×1
java ×1
m2eclipse ×1
maven ×1
php ×1
regex ×1
silverlight ×1
svn ×1
tags ×1
testing ×1
unit-testing ×1
usb ×1
vb.net ×1
windows ×1