有很多地方可以找到设计异常类的指南.几乎在我看的每个地方,都有异常对象永远不应该做的事情列表,这会影响这些类的设计.
例如,Boost人员建议该类不包含任何std::string成员,因为它们的构造函数可能会抛出,这会导致运行时立即终止程序.
现在,在我看来,这是相当理论化的.如果std::string构造函数抛出,那么它是一个bug(我传入了一个空指针)或一个内存不足的情况(如果我错了,请纠正我).由于我在桌面上,我只是假装我有无限的内存,无论如何,内存耗尽对我的应用程序来说是致命的.
考虑到这一点,为什么我不应该std::string在我的异常类中嵌入对象?事实上,为什么我的异常类不能全功能,并且还要处理日志记录,堆栈跟踪等.我知道一个责任原则,在我看来,这是一个公平的权衡让异常类完成所有这些.当然,如果我的解析器需要报告语法错误,那么功能齐全的异常将比围绕静态分配的字符数组构建的异常更有帮助.
那么:精益C++异常类 - 它在现实世界中有多大的优势?有什么权衡取舍?是否有关于该主题的良好讨论?
我最近开始使用它.然而,在针对我公司最大的一个项目运行之后.它引发了大量的问题.
问题列表如此庞大,如果不是所有的东西,需要花费数天的时间来找到并修复一些问题.
现在,我知道解决FxCop告诉你解决的所有问题并不是很实际.但由于我是这个小工具的新手...
有效使用FxCop有哪些好的提示和技巧?
在新项目和现有项目上?
如果还提供我公司的程序员一般写好代码?
经典的O(1)随机访问数据结构是数组.但是数组依赖于所使用的编程语言来支持有保证的连续内存分配(因为数组依赖于能够采用基类的简单偏移来找到任何元素).
这意味着语言必须具有关于内存是否连续的语义,而不是将其作为实现细节.因此,可能需要具有O(1)随机访问但不依赖于连续存储的数据结构.
有这样的事吗?
我最近更新到Xcode 4.3.2并发现我现在可以在@implementation块中声明私有实例变量,如下所示:
@interface TestClass : NSObject
@property (nonatomic, copy) NSString *testProp;
@end
@implementation TestClass {
NSString *_testPropStore;
}
- (NSString *)testProp { return _testPropStore; }
- (void)setTestProp:(NSString *)testProp { _testPropStore = [testProp copy]; }
- (id)init {
if (self = [super init]) {
_testPropStore = nil;
}
return self;
}
@end
Run Code Online (Sandbox Code Playgroud)
注意括号NSString *_testPropStore内的线@implementation.
我还测试了以下代码:
TestClass *c1 = [[TestClass alloc] init];
TestClass *c2 = [[TestClass alloc] init];
c1.testProp = @"Hello";
c2.testProp = @"World";
NSAssert(c1.testProp == …Run Code Online (Sandbox Code Playgroud) 我在ASP.NET MVC应用程序中使用了一些(2或3)母版页,它们每个都必须显示数据库中的一些信息.如赞助商名单,目前的资金状况等.
所以我的问题是,我应该把这些主页数据库调用代码放在哪里?
通常,这些应该进入自己的控制器类吗?但那意味着我必须手动连接它们(例如传递ViewDatas),因为它超出了MVC框架提供的正常路由框架.
有没有办法干净地没有连接ViewData传递/动作调用手动母版页或子类框架'?
文档量非常低......我对这一切都很陌生,包括MVC本身的概念所以请分享你的提示/技巧.
我有一个循环运行,将处理1000的记录,目前一旦循环运行它无法停止,用户必须等到它完成.当有人点击"取消"按钮时,如何停止循环?我如何打破其他常规?
谢谢
是否有人提供早期发布/经常发布商业软件的经验/示例?它有用吗?
我在想VMware,他们在每个主要版本之间都有很多版本.安装体验非常糟糕,有时它们会破坏现有虚拟机,有时客户操作系统中的VMware Tools会出现故障/无法安装.这太可怕了.
我也在考虑ClickOnce部署,因为在更新软件时使用ClickOnce,所有客户端都会自动获得发布的通知,只需单击一下,它们就会更新到新版本.如果您的软件有错误,那么他们将自动"升级"以获取这些错误.
您是否有经验\示例\建议将早期发布/经常发布原则应用于商业软件?
我想把它应用到一个.
假设我在磁盘上有一点大(即不适合大多数手机的内存)位图.我想以一种不缩放的方式在屏幕上绘制部分内容(即inSampleSize == 1)
有没有办法加载/绘制我想要的部分给定一个Rect指定区域而不加载整个位图内容?
不得不将代码(整个项目历史)转移到今天的另一个开发商店,并想知道拉链我们团队用于协作的裸git存储库是一个好主意,并且只是逐字发送它?
这样做是否安全?
是否有任何敏感数据存储在.git文件夹中?
我正在尝试构建一个Trie但是在具有非常有限的内存容量的移动电话上.
我认为最好将整个结构存储在磁盘上,并且只在必要时才加载,因为我可以容忍一些磁盘读取.但是,经过几次尝试后,这似乎是一件非常复杂的事情.
有什么方法可以将Trie存储在磁盘上(即仅部分加载)并保持快速查找属性?
这开始是一个好主意吗?
.net ×1
algorithm ×1
android ×1
arrays ×1
asp.net-mvc ×1
bitmap ×1
c# ×1
c++ ×1
coding-style ×1
exception ×1
fxcop ×1
git ×1
master-pages ×1
memory ×1
objective-c ×1
release ×1
trie ×1