【翻译】苹果官网的命名规范之 Code Naming Basics-General Principles
苹果官方原文链接:General Principles
代码命名基本原则:通用规范
代码含义清晰
尽可能将代码写的简洁并且明白是最好的,不过代码清晰度不应该因为过度的简洁而受到影响。例如:
|
代码 |
解释 |
|---|---|
|
|
命名很好 |
|
|
不太清晰,什么要被插入?at是指什么? |
|
|
命名很好 |
|
|
命名很好,因为他指明了(要移除)参数中的对象 |
|
|
不清晰,移除什么? |
通常情况下,不要用单词的缩写,即使单词很长。否则代码会变得很难读
|
代码 |
解释 |
|---|---|
|
|
命名很好 |
|
|
不太清晰. |
|
|
命名很好. |
|
|
不太清晰. |
你或许认为一些单词的缩写大家都明白,但是不一定。尤其当其他在不同环境下或者不同语言背景吓的开发者看到你写的方法或者函数名称时。当然不排除有些单词缩写已经流行了很长时间并且很通用。你可以继续使用它。
在接口命名中,避免歧义,像一些方法名称可以被解释为多种含义。例如
|
代码 |
解释 |
|---|---|
|
|
发送一个端口 还是 返回一个发送端口的名称? |
|
|
显示一个姓名?还是返回一个用户名称? |
一致性
在整个Cocoa 编码接口中,尽量使用一致的命名。如果你不确定的话,看一看头文件或者参考文档。
当你编写了一个类中需要用到多态的时候,代码一致性显得尤为重要。在不同的类中,命名相同的方法应该做同样的事情。例如
|
代码 |
解释 |
|---|---|
|
|
在 |
|
|
在一系列的Cocoa 类中均有定义 |
命名不要自我指示。例如 user.username 用 user.name 即可
|
代码 |
解释 |
|---|---|
|
|
可以. |
|
|
NSString已经是对象类型,不必要的在加object |
类和协议的命名
一个类的名称应该包含一个能够表明该类所要表达的意思或者功能。类名需要一个适当的前缀。Foundation和Application框架已经有很多例子了,例如:NSString,NSDate,NSScanner,UIButton等
协议(Protocol)应该根据自身所包含的行为来命名
大多数协议都定义了相关联的方法但是并不和一些特定的类有联系。这种协议命名不能和类命名混淆。一种通用的做法就是加 ing
NSLocking (好的命名) NSLock(不像协议的命名,更像某个类的命名)
头文件
定义相关的类或者协议。在一组相关的类,协议,分类等。把声明放在一个文件中,该文件包含主类、类别或协议的名称。
|
头文件 |
定义 |
|---|---|
|
|
|
|
|
|
包含框架头文件。每一个框架都应该有一个头文件,并且头文件命名和框架命名一致,头文件中包含框架中所有的公开头文件。例如:Foundation.h (Foundation框架),AFNetworking.h
备注:
ambiguity 歧义
interpret 解释
【翻译】苹果官网的命名规范之 Code Naming Basics-General Principles的更多相关文章
- 【翻译】苹果官网的命名规范之 Naming Properties and Data Types
苹果官方原文:Naming Properties and Data Types 前言:纯属练习英语和学习.翻译错误和不通顺的地方敬请谅解和指正.O(∩_∩)O 属性和数据类型的命名 本节讲述了属性定义 ...
- 验证Xcode真伪的方法,来自苹果官网
验证Xcode真伪的方法,来自苹果官网 Xcode的验证你的版本 2015年9月22日 注意:中文为有道翻译,看下验证方法即可. 我们最近将应用程序从应用程序商店,还建有Xcode的假冒 ...
- 新型钓鱼手段预警:你看到的 аррӏе.com 真是苹果官网?
研究人员发现一种"几乎无法检测"的新型钓鱼攻击,就连最细心的网民也难以辨别.黑客可通过利用已知漏洞在 Chrome.Firefox 与 Opera 浏览器中伪造显示合法网站域名(例 ...
- 如何在苹果官网下载旧版本的Xcode
如何在苹果官网下载旧版本的Xcode 前段时间XcodeGhost事件让很多应用中招,不乏一些知名的互联网公司开发的应用.事件的起因是开发者使用了非官方的Xcode,这些Xcode带有xcodegho ...
- APP Distribution Guide 苹果官网
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduct ...
- [WPF] 抄抄超强的苹果官网滚动文字特效实现
1. 前言 今天 ChokCoco 大佬发布了一篇博客 超强的苹果官网滚动文字特效实现,iPhone 我是买不起的,但不妨碍我对抄特效感兴趣,正好我这周安排的工作已经完成了,于是有空练练手实现了一个 ...
- bcache 状态/配置 文件详细介绍(翻译自官网)
声明: 文中 斜体带下划线 的段落为翻译不够准确的段落 原文:https://www.kernel.org/doc/Documentation/bcache.txt 官网:https://bcach ...
- 苹果官网 demo The Elements 阅读随笔
The Elements https://developer.apple.com/library/ios/samplecode/TheElements/Introduction/Intro.html# ...
- 如何在苹果官网下载旧版本的Xcode 方法
1 在百度里输入“苹果开发者中心“,进入以下页面.点击页面中的“Member Center" 2 出现登录界面.这是需要苹果开发者帐号的,没有帐号的可以选择“Create Apple ...
随机推荐
- poi读取excel2010
package com.icss.test; import java.io.FileInputStream;import java.io.InputStream;import java.util.Ar ...
- ELK 插件(一) ---- head
一, 插件介绍 01, ElasticSearch Head是什么? ElasticSearch Head是集群管理.数据可视化.增删查改.查询语句可视化工具.可以对集群进行傻瓜式操作.你可以通过插件 ...
- Android 开发手记一NDK编程实例
在Android上,应用程序的开发,大部分基于Java语言来实现.要使用c或是c++的程序或库,就需要使用NDK来实现.NDK是Native Development Kit的简称.它是一个工具集,集成 ...
- Android中改变Activity的不同icon:activity-alias
Android设置title中的Icon有几种方法,介绍如下: 一种是直接在AndroidManifest.xml文件中设置android:icon属性,这种方法简单有效,应该算是我们最常用的设置Ic ...
- 如何去除表单元素获得焦点时的外边框:outline (轮廓)
我们在做制作表单页面时,经常会需要消除表单元素带来的边框,这时候我们需要用到两个属性: 1.表单元素未激活状态下的边框,不实现边框: border:none; 2.表单元素获得焦点时的轮廓,隐藏轮廓: ...
- bzoj 5291: [Bjoi2018]链上二次求和
Description 有一条长度为n的链(1≤i<n,点i与点i+1之间有一条边的无向图),每个点有一个整数权值,第i个点的权值是 a_i.现在有m个操作,每个操作如下: 操作1(修改):给定 ...
- JS常用的设计模式(2)——简单工厂模式
简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口. 这种模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况. 说的通俗点,就像公司茶水间的饮料 ...
- 接收时间戳model [JsonConverter(typeof(UnixDateTimeConverter))]
/// <summary> /// 创建时间 /// </summary> [JsonProperty("createtim ...
- 新版本火狐 ,Chrome不支持showModalDialog解决办法
平常的网站中,有时我们会希望使用者按下按钮后开启一个保持在原窗口前方的子窗口,在IE中,我们可以使用showModalDialog来达成,但是chrome早就不支持showModalDialog,最近 ...
- stark——分页、search、actions
一.分页 1.引入自定义分页组件 在/stark目录下创建utils工具包目录,复制page.py到该目录下,文件中有之前自定义的分页组件. class Pagination(object): def ...