【发布时间】:2010-09-08 05:50:59
【问题描述】:
我真的很喜欢Jeff's post 上的Spartan Programming。我同意这样的代码阅读起来很有趣。不幸的是,我不太确定与它一起工作是否一定会很愉快。
多年来,我一直阅读并坚持“每行一个表达式”的做法。当许多编程书籍用示例代码反驳这个建议时,我已经打了一场好仗并坚持了自己的立场:
while (bytes = read(...))
{
...
}
while (GetMessage(...))
{
...
}
最近,出于更实际的原因,我提倡每行一个表达式 - 调试和生产支持。从生产中获取一个在“第 65 行”声明 NullPointer 异常的日志文件,内容如下:
ObjectA a = getTheUser(session.getState().getAccount().getAccountNumber());
令人沮丧,完全可以避免。如果没有专家可以选择“最有可能”为空的对象的代码......这是一个真正的实际痛苦。
在单步执行代码时,每行一个表达式也有很大帮助。我假设大多数现代编译器可以优化掉我刚刚创建的所有多余的临时对象...
我尽量保持整洁 - 但是用显式对象弄乱我的代码有时确实感觉很费力。它通常不会使代码更易于浏览 - 但在跟踪生产中的内容或单步执行我或其他人的代码时,它确实派上了用场。
你提倡什么风格,你能在实际意义上合理化它吗?
【问题讨论】:
标签: language-agnostic styles spartan