Tag: 编码风格

JSON规范 – 密钥必须用引号括起来吗?

示例:以下代码是否针对JSON规范有效? { precision: "zip" } 或者我应该总是使用下面的语法? (如果是这样,为什么?) { "precision": "zip" } 在JSON规范中,我还没有真正find这方面的东西。 虽然他们在他们的例子中使用引号。 (所以我现在也要这样做)

#pragma曾经vs包括卫兵?

我正在研究一个只能在Windows上运行的代码库,并在Visual Studio下编译(它与Excel紧密集成,因此不会在任何地方)。 我想知道是否应该使用传统的包含守卫或使用#pragma once为我们的代码。 我认为让编译器处理#pragma once会产生更快的编译,并且在应对和粘贴时不易出错。 它也稍微不那么丑陋;) 注意:为了获得更快的编译时间,我们可以使用Redundant Include Guards,但是增加了包含文件和包含文件之间的紧密耦合。 通常这是可以的,因为守卫应该基于文件名,并且只有在你需要改变包含名时才会改变。

在Objective C中用下划线前缀属性名称

我以前避免在我的variables名称下划线,也许是从我的大学Java日子的搁置。 所以当我在Objective C中定义一个属性时,这是我自然而然做到的。 // In the header @interface Whatever { NSString *myStringProperty } @property (nonatomic, copy) NSString *myStringProperty; // In the implementation @synthesize myStringProperty; 但几乎在每个例子中,它都是这样做的 // In the header @interface Whatever { NSString *_myStringProperty } @property (nonatomic, copy) NSString *myStringProperty; // In the implementation @synthesize myStringProperty = _myStringProperty; 我是否应该避免对下划线的厌恶,因为这是它应该完成的一个方法,是否有这样的风格是首选的一个很好的理由? 更新:如今,有了自动属性综合,你可以省去@synthesize,结果和你用过的一样 @synthesize myStringProperty = _myStringProperty; 这清楚地显示了你的苹果的偏好。 […]

为什么省略大括号被认为是不好的做法?

为什么每个人都告诉我写这样的代码是不好的做法? if (foo) Bar(); //or for(int i = 0 i < count; i++) Bar(i); 我忽略大括号的最大理由是它有时可能是它们的两倍。 例如,下面是一些在C#中为标签绘制发光效果的代码。 using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor))) { for (int x = 0; x <= GlowAmount; x++) { for (int y = 0; y <= GlowAmount; y++) { g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y)); } } } […]

您是否使用TR 24731的“安全”function?

ISO C委员会( ISO / IEC JTC1 / SC21 / WG14 )已经出版TR 24731-1 ,并正在研究TR 24731-2 : TR 24731-1:C库的扩展第一部分:边界检查接口 WG14正在研究更安全的C库函数。 这个TR的目的是修改现有的程序,通常是通过添加一个额外的缓冲区长度的参数。 最新的草案在N1225号文件中。 理由是在N1173号文件中。 这将成为技术报告types2。 TR 24731-2:C库的扩展 – 第二部分:dynamic分配函数 WG14正在研究更安全的C库函数。 这个TR面向使用dynamic分配的新程序,而不是缓冲区长度的额外参数。 最新的草案在N1337号文件中。 这将成为技术报告types2。 问题 您是否使用支持TR24731-1function的库或编译器? 如果是这样,哪个编译器或库在哪个平台上? 您是否修复了使用这些函数的代码,从而发现了任何错误? 哪些function提供最大的价值? 有没有提供任何价值或负面价值? 你打算将来使用图书馆吗? 你跟踪TR24731-2的工作吗?

你什么时候使用“this”关键字?

我很好奇其他人如何使用这个关键字。 我倾向于在构造函数中使用它,但是我也可以在其他方法中在整个类中使用它。 一些例子: 在构造函数中: public Light(Vector v) { this.dir = new Vector(v); } 别处 public void SomeMethod() { Vector vec = new Vector(); double d = (vec * vec) – (this.radius * this.radius); }

一个函数是否只有一个return语句?

有一个很好的理由,为什么在函数中只有一个return语句是一个更好的做法? 或者,只要从逻辑上正确地返回函数就可以了,这意味着函数中可能有很多返回语句?

什么时候JavaScript的eval()不是邪恶的?

我正在编写一些JavaScript代码来parsing用户input的函数(对于类似电子表格的function)。 parsing了公式之后,我可以将它转换成JavaScript并在其上运行eval()以产生结果。 但是,如果我可以避免使用eval() ,因为它是邪恶的(而且,无论正确还是错误,我一直认为它在JavaScript中更加邪恶,因为要评估的代码可能会改变由用户)。 那么,什么时候可以使用它?

为什么在C#中经常看到“null!= variable”而不是“variable!= null”呢?

在c#中,你声明条件的顺序在执行速度上有什么不同? if (null != variable) … if (variable != null) … 自从最近,我经常看到第一个,因为我习惯了第二个,所以引起了我的注意。 如果没有区别,第一个的优点是什么?

Python导入语句应该总是在模块的顶部?

PEP 08指出: 导入总是放在文件的顶部,在任何模块注释和文档字符串之后,在模块全局变量和常量之前。 但是,如果我导入的类/方法/函数仅用于极少数情况下,当需要导入时确实更有效率? 不是这样的: class SomeClass(object): def not_often_called(self) from datetime import datetime self.datetime = datetime.now() 比这更有效率? from datetime import datetime class SomeClass(object): def not_often_called(self) self.datetime = datetime.now()