Tag: 可读性

代码结构和可读性第2部分-类和结构

欢迎回来,在第1部分中,我们介绍了一些基础知识:变量,数据结构和函数。 代码结构和可读性第1部分—变量,数据结构和函数 如果您来自我的有关结构和可读性的Swift编程文章,那么您已经知道一些基本知识…… medium.com 我们学会了一些清理它们的方法,但是现在我们继续前进。 我计划这次对您轻松一点,因为我们在这里只讨论类和结构。 如果您不了解类或结构,建议您阅读我为Swift写的一篇文章。 不用担心Swift不是您的语言,如果您的语言支持它们,那么足够通俗易懂,足以让您掌握类和结构。 类和结构 让我们从那里抛出一个示例类开始。 公共类动物{ 命名:字符串 让收藏夹食物:字符串 变量年龄:整数 让countryOfOrigin:字符串 init(名称:字符串,最喜欢的食物:字符串,年龄:整数, countryOfOrigin:字符串){ self.name =名称 self.favoriteFood =最喜欢的食物 自我年龄=年龄 self.countryOfOrigin = countryOfOrigin } } 当然,我们可以将其更改为struct并忘记初始化程序,但是我要使用一个类,因为让我们面对现实吧,即使您尝试使其具有可读性,也有点草率。 老实说,当结构可以使用时,我尽量不要使用类。 我不必担心初始化(除非我想),我不必担心参考周期(除非我要进行极端优化),并且我的代码库要小几行。 那么我们可以使用类来解决这个问题吗? 好吧,确定间距确实有帮助,所以让我们从这里开始: 公共类动物{ 命名:字符串 让收藏夹食物:字符串 var age =年龄 让countryOfOrigin:字符串 init(名称:字符串,最喜欢的食物:字符串,年龄:整数, countryOfOrigin:字符串){ self.name =名称 self.favoriteFood =最喜欢的食物 自我年龄=年龄 self.countryOfOrigin = countryOfOrigin } } 一点间距与此很长的路要走。 但是我认为我们可以做得更好。 每当我的代码看起来像这样的部分难以阅读时: … […]

这些简单的步骤使您的iOS应用程序易于阅读。

优秀的程序员会以最简单的方式解释自己的工作。 甚至物理学家也用一张纸和一根铅笔在虫洞中进行解释。 是什么使我们与众不同? 我一直试图编写尽可能简单易读的代码,从为变量选择正确的名称到使用代码约定,但是仍然缺少某些东西,这是一种无需试图理解“如何我做到了,但我却想实现这一目标。 您甚至可能会说 将代码读为一个故事 ,而不是一堆代码。 让我们解决3个主要主题: 阅读其他程序员的代码可能是一场真正的斗争。 如果没有提供适当的上下文,人们只会发现他迷失了寻找功能或特性的含义。 从1和0到底层代码再到高级语言,值得注意的是,代码语法变得越来越人性化,从而吸引了新的程序员进入开发人员的视野。 随着语法变得更加清晰,以通俗易懂的英语阅读,所以我们的代码应该简单明了并且易于说明。 编写良好的代码会将自己掩盖为一个故事,使其易于阅读和理解(即使没有上下文)。 命名功能 如何正确使用它: 当我们编写函数时,我们假设阅读函数的人有足够的背景知识来理解我们试图实现的目标。 用“ handleRedView()”来命名我们的函数会引起很多关于“ RedView”代表什么的问题? 此功能的主要目标是什么? 似乎在某些情况下 , 功能目的含糊且过于复杂,无法在不提供上下文的情况下进行理解。 我们可以将功能建议分为4类: 1.线人功能 2.管理职能 3.路由器功能 4.执行功能 1.线人功能 通常触发路由器/管理功能。 功能示例: 回调函数,通知发生了某些事情/将要发生的事情,并为您提供了做出反应的选项。 通常用作委托触发操作或通知处理功能。 2.管理功能 用于组合多个功能以实现1个更高的目的而无需依赖, 该块内的所有代码都将执行。 阅读此功能后,我们将获得所需的所有信息,并在汽车启动时执行此功能,此时,我们不在乎“如何”完成工作,而在乎“做什么”。 3.路由器功能 用于将多种功能结合起来,以某种依赖性实现更高的目标1, 的 代码仅在意图时执行。 路由器功能主要指向 执行 功能,但在某些情况下,仅当代码不超过1行时,才可以包含逻辑本身。 4.执行功能 执行 功能 名称。 逻辑本身可能很容易理解,但是我们已经在名称中声明 了该功能的功能 ,该功能打开了外部灯,该功能检查了灯泡是否烧毁,了解这可以在将来简化查找错误的过程,并使其更容易向函数添加逻辑而不更改其名称。 最终,在将这些想法实现到您的应用程序中之后,您应该在类部分中将对象与信息人 , 管理者和路由器功能组织在一起。 以及扩展块中的所有执行/逻辑都在同一文件中。 […]