我和我的同事在就这段代码进行辩论:var y = null; if (x.parent != null) y = x.parent.somefield; 我认为,在代码所在的地方,x.parent 不应该可能为 null。当它为 null 时,我们就会遇到严重的问题,我想知道发生了什么...
我想问你的问题相当广泛,但同时也非常具体。首先,我必须说,我最感兴趣的是适用于 .net 环境的答案。 好吧,我想提高我所编写代码的水平。现在我主要使用 TDD 和静态代码分析来确保我的代码是正确的。最近我听了 Dino Esposito 的关于代码协定的演讲,现在我想将其与其他技术结合使用...
观察 Stack Overflow 上线对我来说是一次很有教育意义的经历。我想列出一个清单,包括针对网站使用的各种漏洞和攻击方式,以及可以用来防御它们的编程技巧。 哪些类型的漏洞? 使网站崩溃 入侵服务器 入侵其他人的登录信息 垃圾邮件 假冒他人身份,利用现实中关系进行欺诈 等等......
我通常使用以下代码循环遍历文件中的行: {{我通常使用以下代码循环遍历文件中的行:}} open my $fh, '<', $file or die "Could not open file $file for reading: $!\n"; while ( my $line = &l...
我和我的同事讨论过关于代码应该有多少防御性的问题。我非常支持防御式编程,但你必须知道什么时候停止。我们正在开发一个由他人维护的项目,但这并不意味着我们必须检查开发者可能做的所有疯狂的事情。当然,你可以这样做,但这将给你的代码增加非常大的开销。 如何确定限度?
什么是从std :: fstreams中以可移植的方式获取有意义的文件访问错误消息的最佳方法? badbits和failbits的原始程度有点令人烦恼。我之前针对win32和POSIX编写过自己的异常层次结构,那比STL的方式要灵活得多。 我从启用了异常的fstream的downcasted...
阅读这个问题的代码让我思考。assert(value>0); //Precondition if (value>0) { //Doit } 我从不写if语句。断言足以/你唯一可以做的就是断言。“早崩溃,经常崩溃”CodeComplete指出:Assert语句使应用程序保持正确性...
Zoran Horvat 提出使用Either类型来避免空指针检查并且在操作执行时不要忘记处理问题。 Either在函数式编程中很常见。 为了阐述其用法,Zoran展示了一个类似于这样的例子:void Main() { var result = Operation(); ...
我有两种不同的字符串在我的代码中被传递和使用,它们紧密相关但不应该混淆。我认为通过定义两个类来分别表示这两种字符串,虽然它们都是字符串类型,但是它们有不同的名称,这样方法签名和类型不兼容就会强制执行这两种不同字符串的语义意义,以避免错误。同时,我又不想在成百上千的地方对代码进行重构,例如将so...