在Clean中,建议私有助手函数始终存在于直接在其内部使用的函数下面。在使用计算属性时,我应该这样做吗?将私有实例变量放在类的顶部是一种规范,但对于本质上是助手函数的情况,我觉得这样做令人费解。
将我们的实例变量保留在类的顶部而将帮助函数保存在底部的约定在这里是有冲突的。我是不是应该为了会议而把它当作一种功能?把它保持在原来的位置还是把它放在班级的首位?
/// Done button in nav bar should let know that tapping will dismiss the view
func applyVoiceOverToNavigationBar() {
guard timelinesAreInitialized else { return }
let openDay = Scheduler.sharedInstance.timelines[SharedGlobals.Calendar.SELECTED_DAY].DAY.dayName
self.navigationItem.rightBarButtonItem?.applyVoiceOverAccessibility(
label: self.navigationItem.rightBarButtonItem?.title ?? "",
hint:"VoiceOver.OpenScreenHint".localized.replacingOccurrences(of: "{Screen}", with: openDay))
}
private var timelinesAreInitialized: Bool {
return Scheduler.sharedInstance.timelines.count > SharedGlobals.Calendar.SELECTED_DAY
}发布于 2018-04-10 13:36:58
在使用计算属性时,我应该这样做吗?将私有实例变量放在类的顶部是一种规范,但对于本质上是助手函数的情况,我觉得这样做令人费解。
不管算不算,先不涉及细节是很好的。先给我讲个高层次的故事。
破坏我论点的最可靠的方法是使用蹩脚的名字。在定义timelinesAreInitialized之前,我并不介意阅读它。为什么?因为它的名字表明了你的意图非常清楚。
我知道这与许多语言中的惯例背道而驰,任何代码库都应该是一致的,但在所有其他条件相同的情况下,这才是更好的风格。
举行一次会议有利于保持一致性。但这意味着你不能遵循今天最好的智慧,因为你已经将过去最好的智慧庄严载入史册。当有机会彻底突破时,不要重复过去的错误。
发布于 2018-04-10 14:50:39
将私有实例变量放在类的顶部是一种规范
我曾经尝试过不这样做,因为在我看来,这似乎是一种无稽之谈。我和CandiedOrange在一起,把更大的图片放在顶部,细节放在底部。但是,至少对于C#来说,当我编辑文件时,编译器真的太容易混淆了,这意味着它经常忽略这些字段,并报告了很多行上的错误。
因此,出于务实的原因,我现在坚持这一惯例。所有其他私人的东西都会被推到它所属的地方:属性,内部类型,方法等等。我的意思是底层:所有私人成员都是在所有公共成员之后出现的。
https://softwareengineering.stackexchange.com/questions/369125
复制相似问题