鉴于这两个例子是等价的,您认为哪些是可取的?
没有显式修饰符
public class MyClass
{
string name = "james";
public string Name {
get { return name; }
set { name = value; }
}
void SomeMethod() { ... }
}
Run Code Online (Sandbox Code Playgroud)
使用显式修饰符
public class MyClass
{
private string name = "james";
public string Name {
get { return name; }
set { name = value; }
}
private void SomeMethod() { ... }
}
Run Code Online (Sandbox Code Playgroud)
我一直使用后者,但最近我开始采用前一种风格.私有是多余的,因为它是默认的访问者修饰符,所以排除它是否有意义?
这是一个关于雨燕的编程风格的问题,特别是IntVS UInt.
Swift编程语言指南建议程序员使用通用的有符号整数类型,Int即使已知变量是非负的.从指南:
仅当您特别需要与平台的本机字大小相同的无符号整数类型时才使用UInt.如果不是这种情况,则优选Int,即使已知要存储的值是非负的.Int对整数值的一致使用有助于代码互操作性,避免在不同数字类型之间进行转换,并匹配整数类型推断,如类型安全和类型推断中所述.
但是,UInt在32位体系结构上将是32位无符号,在64位体系结构上将是64位无符号,因此使用Intover 没有性能优势UInt.
相比之下,Swift指南给出了一个后面的例子:
让age = -3
断言(年龄> = 0,"一个人的年龄不能小于零")
//这会导致断言触发,因为年龄不是> = 0
这里,如果代码编写为:编译时,可以在编译时捕获运行时问题:
let age:UInt = -3
// this causes a compiler error because -3 is negative
Run Code Online (Sandbox Code Playgroud)
还有许多其他情况(例如,将索引集合的任何东西)使用a UInt会在编译时而不是运行时捕获问题.
所以问题:是雨燕编程语言引导声音的意见,并就使用的好处Int"即使要存储的已知非负的值"大于使用的安全优势UInt?
附加说明:使用Swift几周之后,现在很清楚,需要与Cocoa 进行互操作UInt.例如,AVFoundation框架在需要"计数"的任何地方使用无符号整数(样本数/样本数/通道数等).将这些值转换为Int可能会导致严重错误,其中值大于Int.max
我是否应该密封我知道的所有课程,即使没有明显的性能或安全问题,也不应该将其作为基类,或者这只是增加了什么?
在最近的一次代码审查中,我在一个类中发现了几行重复逻辑(少于15行).当我建议作者重构代码时,他认为代码更容易理解.在再次阅读代码后,我不得不同意提取重复的逻辑会稍微损害可读性.
我知道DRY是指南,而不是绝对的规则.但总的来说,你是否愿意以DRY的名义伤害可读性?
我注意到很多项目都有以下结构:
我目前使用以下约定(因为我的项目是100%java):
我目前没有使用Maven,但我想知道这是否是Maven约定或者是否还有其他原因.有人可以解释为什么第一个版本如此受欢迎,如果我应该采用这个新的约定?
克里斯
我一直在阅读战略模式,并有一个问题.我在下面实现了一个非常基本的控制台应用程序来解释我在问什么.
I have read that having 'switch' statements is a red flag when implementing the strategy pattern. However, I can't seem to get away from having a switch statement in this example. Am I missing something? I was able to remove the logic from the Pencil, but my Main has a switch statement in it now. I understand that I could easily create a new TriangleDrawer class, and wouldn't have to open the Pencil class, which is good. However, …
c# design-patterns dependency-injection coding-style strategy-pattern
我正在做一些C编码,在阅读了一些C代码后,我注意到有类似的代码片段
char *foo = (char *)malloc(sizeof(char) * someDynamicAmount);
Run Code Online (Sandbox Code Playgroud)
所以我想问一下C-ish为char数组分配内存的方法是什么?sizeof(char)对任何标准更改使用并假设未来的代码更改或省略它并直接使用数字?
我发现自己更喜欢if not而不是unless.是否有正确的方法来编写这种情况?人们普遍感受到了unless什么?
每当我用Java编写带有更多关键字的方法时public void,每次我用另一种方式编写它.有时" static public void"有时" public static void"等.
这些关键字的最佳订单(最佳做法)是什么?
[ abstract/static] [ final] [ synchronized] [ public/private/protected] [ result_type] ???
我阅读了TypeScript编码指南
而且我觉得这句话很令人费解:
不要使用"I"作为接口名称的前缀
我的意思是,没有"我"前缀,这样的事情就没有多大意义
class Engine implements IEngine
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗
我不太明白的另一件事是:
类
为保持一致性,请不要在核心编译器管道中使用类.请改用函数闭包.
这是否表明我根本不应该使用课程?
希望有人可以为我清理:)
coding-style ×10
c# ×3
java ×2
c ×1
class ×1
conventions ×1
dry ×1
refactoring ×1
ruby ×1
sealed ×1
swift ×1
syntax ×1
type-safety ×1
types ×1
typescript ×1