我染上了 Objective-c 冗长命名的"恶习"

2014-05-10 10:04:23 +08:00
 wvv8oo
obj-c命名是很冗长的,相当冗长。我现在写js的时候,也会习惯用很长的命名方式,能从方法名看得懂的,一般不会用缩略语,除非是约定俗成的。
以前写js会采用非常短的命名方式,因为要考虑网络速度。但现在我认为没这个必要了,混淆时也会做出一些处理。
但对于公开的接口,我还是会尽量采用简短的命名方式。
7323 次点击
所在节点    iDev
37 条回复
PrideChung
2014-05-10 10:10:38 +08:00
这是美德,不是恶习。
leavic
2014-05-10 10:48:30 +08:00
这是好习惯啊
undozen
2014-05-10 10:52:59 +08:00
lm902
2014-05-10 11:10:25 +08:00
知足吧,看看.NET的命名。。。
wvv8oo
2014-05-10 11:10:47 +08:00
最长的Objective-C属性名

[56] automaticallyEnablesStillImageStabilizationWhenAvailable
[54] availableMediaCharacteristicsWithMediaSelectionOptions
[49] outputObscuredDueToInsufficientExternalProtection

@PrideChung
@leavic
cameo
2014-05-10 11:25:25 +08:00
@wvv8oo

跟大Java比这都不是个事儿。看看Spring源码里最长的名字:

HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor
superbear
2014-05-10 11:28:08 +08:00
不过一看就知道这方法想干嘛
fangzhzh
2014-05-10 11:59:12 +08:00
本来以为你是矫情
再看你发了两个帖子,原来你是处女座......
mudkip
2014-05-10 12:12:28 +08:00
苹果给 Safari for iOS 7 的 video 元素新增了两个事件,名字叫 webkitplaybacktargetavailabilitychanged 和 webkitcurrentplaybacktargetiswirelesschanged....
Zhang
2014-05-10 12:16:49 +08:00
我觉得这是美德,省得自己或者别人阅读代码的时候连猜带蒙的。
austinchou0126
2014-05-10 12:34:33 +08:00
LZ不觉得Objective-c很难受吗?
oBjeCTive-c
jsonline
2014-05-10 12:41:27 +08:00
超过15个字符就比较反人类了。
JS 必须压缩,变量名大部分都被压缩了,不用在意
snoopy
2014-05-10 12:42:36 +08:00
你们都不写注释的吗,相比写个这么长的名字我觉得还是在每个函数上面都写个注释比较好。
unicorn70
2014-05-10 12:46:30 +08:00
@snoopy 感觉Xcode的自动补全功能做得比较好,基本没必要缩写,这样也省得到处注释了。
krafttuc
2014-05-10 12:55:02 +08:00
也有这种习惯了。不过很大程度上是因为Xcode的补全太强,换个编辑器就不会这样了。
saharabear
2014-05-10 12:56:29 +08:00
给Spring跪了。
lldong
2014-05-10 13:05:43 +08:00
https://github.com/nst/iOS-Runtime-Headers/blob/7ef0330f961248b9021e59e12aa3182440194817/Frameworks/UIKit.framework/UIViewController.h#L674

-attentionClassDumpUser:yesItsUsAgain:althoughSwizzlingAndOverridingPrivateMethodsIsFun:itWasntMuchFunWhenYourAppStoppedWorking:pleaseRefrainFromDoingSoInTheFutureOkayThanksBye:
snoopy
2014-05-10 13:06:45 +08:00
@unicorn70 我说一下我的看法,没有其它意思,仅供参考:
1、自动补全未写代码提供了便利,但它绝对不应该成为长命名的理由。
2、注释的好处可不仅仅是减少命名的长度,它可以为日后看代码的人(有可能就是你自己)提供全方位的呵护。在注释中起码要给出函数的说明(解决什么问题),参数的个数和类型,以及返回值的类型。
3、我们都知道命名是编程的一大难题,但认真思考命名有助于理清代码的结构,这个函数到底在我的代码中起什么样的作用。
4、长命名真的很难看。
以上只是我个人的见解,我不会说长命名很糟糕,毕竟苹果的那些工程师都在用,他们比我厉害多了。
fangzhzh
2014-05-10 13:23:33 +08:00
@snoopy 参数甚至函数内部逻辑都会变 这时候 函数名会变 注释未必会跟着改啊
chenha0
2014-05-10 13:40:54 +08:00
假如跟我一样是个80字或120字就折行的爱好者,大概总看到这种长方法会崩溃。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/111867

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX