禅与 Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译).docx

禅与 Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译).docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
禅与 Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)

前言Swift贡献给社区作者关于中文翻译条件语句尤达表达式nil 和 BOOL 检查黄金大道复杂的表达式三元运算符错误处理Case语句枚举类型命名通用的约定常量方法字面值类类名Initializer 和 deallocDesignated 和 Secondary InitializersDesignated InitializerSecondary Initializer参考instancetype参考初始化模式类簇(class cluster)单例属性Init 和 Dealloc点符号属性定义私有属性可变对象懒加载 (Lazy Loading)方法参数断言私有方法相等性CategoriesProtocolsNSNotification美化代码空格换行括号代码组织利用代码块PragmaPragma Mark忽略没用使用变量的编译警告明确编译器警告和错误字符串文档注释头文档对象间的通讯Block深入 Blockself 的循环引用委托和数据源继承多重委托面向切面编程参考资料其他的 Objective-C 风格指南前言我们在 2013 年 11 月份开始写这本书,最初的目标是提供一份如何编写干净漂亮的 Objective-C 代码的指南:现在虽然有很多指南,但是它们都是有一些问题的。我们不想介绍一些死板的规定,我们想提供一个在开发者们之间写更一致的代码的途径。随时间的推移,这本书开始转向介绍如何设计和构建优秀的代码。这本书的观点是代码不仅是可以编译的,同时应该是 “有效” 的。好的代码有一些特性:简明,自我解释,优秀的组织,良好的文档,良好的命名,优秀的设计以及可以被久经考验。本书的一个理念是是代码的清晰性优先于性能,同时阐述为什么应该这么做。虽然所有的代码都是 Objective-C 写的,但是一些主题是通用的,并且独立于编程语言。Swift在 2014 年 6 月 6 日,苹果发布了面向 iOS 和 Mac 开发的新语言: Swift。这个新语言与 Objective-C 截然不同。所以,我们改变了写这本书的计划。我们决定发布这本书当前的状态,而不是继续书写我们原来计划写下去的主题。 Objective-C 没有消失,但是现在用一个慢慢失去关注的语言来继续写这本书并不是一个明智的选择。贡献给社区我们将这本书免费发布并且贡献给社区,因为我们希望提供给读者一些有价值的内容。如果你能学到至少一条最佳实践,我们的目的就达到了。我们已经非常用心地打磨了这些文字,但是仍然可能有一些拼写或者其他错误。我们非常希望读者给我们一个反馈或者建议,以来改善本书。所以如果有什么问题的话,请联系我们。我们非常欢迎各种 pull-request。作者Luca Bernardi@luka_bernardi/lukabernardiAlberto De Bortoli@albertodebo/albertodebortoli关于中文翻译译者林翔宇linxiangyu@/oa414庞博bopang@/heistings翻译已得到原作者许可,并且会在更加完善后申请合并到原文仓库。部分译文表达可能存在不妥之处,非常欢迎各种修订建议和校队。请直接 fork 本仓库,在 README.md 文件中修改,并申请 pull request 到?/oa414/objc-zen-book-cn/。条件语句为了避免错误,条件语句体应该总是被大括号包围,即使可以不这样做(比如,条件语句体只有一行内容)。可能的错误是:多加了第二行,并且误以为它是 if 语句体里面的。此外,更危险的是,如果把 if 语句体里的一行注释掉了,之后的一行代码会成为 if 语句里的代码。推荐:if (!error) {return success;}不推荐:if (!error)return success;或者if (!error) return success;在 2014年2月苹果的 SSL/TLS 实现里面发现了知名的?goto fail?错误。代码在这里:staticOSStatusSSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,uint8_t *signature, UInt16 signatureLen){OSStatus err; ...if ((err = SSLHashSHA1.update(hashCtx, serverRandom)) != 0)goto fail;if ((err = SSLHashSHA1.update(hashCtx, signedParams)) != 0)goto fail;goto fail;if ((err = SS

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档