【移动应用开发技术】是什么样的步骤使得你的ios代码变得如此容易阅读?大咖分享_第1页
【移动应用开发技术】是什么样的步骤使得你的ios代码变得如此容易阅读?大咖分享_第2页
【移动应用开发技术】是什么样的步骤使得你的ios代码变得如此容易阅读?大咖分享_第3页
【移动应用开发技术】是什么样的步骤使得你的ios代码变得如此容易阅读?大咖分享_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】是什么样的步骤,使得你的ios代码变得如此容易阅读?大咖分享

优秀的程序员会用尽可能简单的方式来解释他们的代码,即使是物理学家都可以用一张白纸和一只铅笔来解释虫洞,我们又何尝不可?我会尽可能让代码写地简单、易读,包括选择合适的变量名、使用编码规范(codeconventions)等等,但还是缺了点东西,理解代码不应该是去理解“如何”实现的,而是要理解想要“达成”什么。甚至可以说要让读代码像读小说一样,而不是一大堆代码。下面讨论三大主题:阅读其他人的代码可能会非常折磨,如果不提供合适的上下文,我们会迷失在寻找某个函数或属性的意义中。不论是二进制语言、低级语言还是高级语言,语法都在变得越来越友好,以便吸引更多开发者。而随着语法变得更接近英语,我们的代码也应该简明扼要、不言自明。写出良好的代码,读起来像小说一样,容易阅读和理解(即使没有给出上下文)。​其实做为一个ios开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS(扣扣)交流圈681503716(验证码:寂静)不管你是小白还是大牛欢迎入驻,大家一起交流学习正确的方式是:我们写函数时都会假设阅读它的人拥有足够的上下文,能够理解函数想实现什么。用模糊的含义来命名函数,例如“handleRedView()”会引起很多问题,”RedView”是啥?这个函数主要是想干啥?所以在某些情况下函数的用途会很模糊,如果没有提供足够的上下文,阅读起来会非常困难我们可以把函数的用途分为四类:通知(Informer)函数管理(Management)函数路由(Router)函数执行(Execution)函数通常会触发路由/管理函数,例子如下:回调函数,通知某事已经/即将发生,并给机会进行响应。大部分情况下用于被代理(delegate)触发的操作,或是通知(notification)处理函数。用于联合多个函数以实现更高级的用途,不需要依赖参数,block中的所有代码都会执行。上面的函数包含所有需要的信息,汽车启动时执行这些函数,此时我们不关注这是“如何”实现的,而是关注它做了“什么”用于联合多个函数以实现更高级的用途,需要依赖一些参数,只在我们想执行的时候才执行。路由函数通常同于指向执行函数,但在某些情况下,如果逻辑代码不超过一行,也可以包含自己的逻辑。函数名字的具体实现。这样就能写出一个干净、简短的类,可读性强,容易维护。避免在函数名称里使用”and“:playAndMinimize()loadAndPlay()这个坏习惯会打破单一责任原则,写出能够适应两种情况的代码。避免在函数名称里进行猜测:moveRedViewIfNeeded()上面的例子会导致后面的程序员必须深入此函数,才能理解触发移动RedView的时机,这样不够清晰。不,layoutIfNeeded()并不属于这种情况,因为我们知道如果某个view的setNeedDisplay为true,就应该重新布局。这种情况在Swift语言里很普遍,因为函数基本上都是应用私有的。谈及代码可读性,我首先会想到编码规范(codeconvention),它们被普遍接受、应用广泛,但使用编码规范并不一定会提升代码质量,虽然有跨应用性但可读性更差。”is“前缀应该用于布尔型变量和方法,以便解释返回值是布尔类型的。#编码规范既然”if“语句总是用于布尔值,那还有必要给每个布尔属性都加上”is“吗?为什么苹果要把Swift语法从view.hidden改成view.isHidden?我只能想到一种答案……因为“ifview.isHidden”看起来更自然。尝试以以下原则使用“is”前缀:如果类的某个布尔属性/方法用于该类(公开)的实例,就有正当理由使用“is”前缀如果布尔属性在类内部(私有)使用,前缀就是多余的。如果布尔型属性/方法同时被私有和公开使用,那么应该用计算属性来返回该私有属性值。虽然用私有set并公开使用该属性也是可以的,但上面这种方式可以实现封装(encapsulation)。封装用于隐藏类中结构化数据对象的值或状态,防止未授权方直接访问。那如果不是自己直接处理的布尔型,如果如何命名呢?privatevarplayerIsPlaying:BoolprivatevargridConstraintIsEnabled()“is”需要指向某个东西:view.isHidden,“is”指向view。上面的例子里使用了此原则,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论