Tag: 编码风格的

是否有一个很好的理由使用大写的SQL关键字?

默认情况下似乎是大写,但真的有任何理由使用大写的关键字? 我开始使用大写,因为我只是试图匹配什么SQL Server给我什么时候我试图创build一些东西,如新的存储过程。 但是,我觉得我的宝宝(第五)手指总是需要按住Shift键,所以我停止使用大写字母。 任何我应该回到大写的原因? 编辑:谢谢你的答案。 在COBOL国王的时代,我还没有编程,所以我不知道这一点。 从现在开始,我会坚持小写。

对于布尔型字段,getter / setter的命名约定是什么?

例如。 boolean isCurrent = false; 你怎么称呼它的吸气和二传手?

将方法声明为静态的好处是什么?

我最近一直在浏览Eclipse中的警告,并碰到这个: 如果该方法可以被声明为静态,它将给出编译器警告。 在Eclipse帮助中的精确引用,强调私有和最终: 启用后,编译器将针对私有或最终方法以及仅引用静态成员的方法发出错误或警告。 是的,我知道我可以closures它,但我想知道打开它的原因? 为什么将每种可能的方法都声明为静态是一件好事? 这会给予任何性能好处吗? (在移动领域) 指出一个方法是静态的,我想表明你不使用任何实例variables,因此可以移动到一个实用程序样式类? 在一天结束的时候,我应该closures“忽略”还是应该修复它给我的100多个警告? 你认为这只是额外的关键字, 肮脏的代码,因为编译器将只是内联这些方法吗? (有点像你不声明每个variables,你可以最后, 但你可以 )。

我应该使用`import os.path`还是`import os`?

根据官方文档 , os.path是一个模块。 那么,导入它的首选方式是什么? # Should I always import it explicitly? import os.path 要么… # Is importing os enough? import os 请不要回答“为我导入os作品”。 我知道,它现在也适用于我(Python 2.6)。 我想知道的是关于这个问题的任何官方build议。 所以,如果你回答这个问题,请张贴你的参考 。

#ifdef和#if – 这是更好/更安全的方法来启用/禁用编译特定部分的代码?

这可能是一个风格问题,但我们的开发团队有一点分歧,我想知道是否有人对此有任何想法… 基本上,我们有一些debugging打印语句,我们在正常的开发过程中closures。 我个人更喜欢做以下事情: //—- SomeSourceFile.cpp —- #define DEBUG_ENABLED (0) … SomeFunction() { int someVariable = 5; #if(DEBUG_ENABLED) printf("Debugging: someVariable == %d", someVariable); #endif } 虽然有些团队喜欢以下内容: // #define DEBUG_ENABLED … SomeFunction() { int someVariable = 5; #ifdef DEBUG_ENABLED printf("Debugging: someVariable == %d", someVariable); #endif } …这些方法哪个更适合你,为什么? 我的感觉是,第一个是更安全的,因为总是有一些定义,没有任何危险可以破坏其他定义。

在C / C ++中检查NULL指针

在最近的代码审查中,贡献者试图强制指针上的所有NULL检查按照以下方式执行: int * some_ptr; // … if (some_ptr == NULL) { // Handle null-pointer error } else { // Proceed } 代替 int * some_ptr; // … if (some_ptr) { // Proceed } else { // Handle null-pointer error } 我同意他的方式更清楚些,因为它明确地说“确保这个指针不是NULL”,但我会反驳说,任何在这个代码上工作的人都会明白,在if语句隐式检查NULL 。 另外我觉得第二种方法有更小的机会引入此类错误: if (some_ptr = NULL) 这只是一个绝对的痛苦find和debugging。 你喜欢哪种方式,为什么?

std :: for_each over for循环的优点

std::for_each for循环有什么优点吗? 对我来说, std::for_each似乎只是阻碍了代码的可读性。 为什么一些编码标准推荐使用?

作为方法论点的布尔人是不可接受的吗?

我的一位同事说布尔人作为方法论点是不可接受的 。 它们应由枚举取代。 起初我没有看到任何好处,但他给了我一个例子。 什么更容易理解? file.writeData( data, true ); 要么 enum WriteMode { Append, Overwrite }; file.writeData( data, Append ); 现在我懂了! 😉 这绝对是一个枚举作为第二个参数使得代码更具可读性的例子。 那么,你对这个话题有什么看法呢?

为什么在C ++类中使用成员variables的前缀

许多C ++代码使用语法约定来标记成员variables。 常见的例子包括 公共成员的m_ memberName (根本用于公共成员) 私人成员或所有成员的_ memberName 其他人试图在使用成员variables时强制使用this-> member 。 根据我的经验,大多数较大的代码库不能一致地应用这些规则。 在其他语言中,这些约定远没有那么普遍。 我偶尔会在Java或C#代码中看到它。 我想我从来没有见过Ruby或Python代码。 因此,现代语言似乎有一种趋势,不使用特殊的标记来表示成员variables。 这个惯例今天在C ++仍然是有用的,或者它只是一个时代错误。 特别是因为它在图书馆中的使用如此不一致。 没有其他语言显示,没有成员前缀可以做?

在C ++ 11中传递值是合理的默认值?

在传统的C ++中,将值传递给函数和方法对于大对象来说是缓慢的,并且通常是不被接受的。 相反,C ++程序员倾向于传递引用,这是更快的,但是引入围绕所有权的各种复杂的问题,尤其是围绕内存pipe理(如果对象是堆分配的话) 现在,在C ++ 11中,我们有Rvalue引用和移动构造函数,这意味着可以实现一个很大的对象(比如std::vector ),这个对象可以很便宜地传入和传出函数。 那么,这是否意味着默认值应该是为types的实例传递值,比如std::vector和std::string ? 那么自定义对象呢? 什么是新的最佳做法?