第二周-代码规范

2017-07-27  本文已影响12人  顾夕城
飞科智能

注意:代码中存在换行和缩进不规范的问题

命名规范

推荐:
private let maximumWidgetCount = 100
class WidgetContainer {
           var widgetButton: UIButton
           let widgetHeightPercentage = 0.85
}
let urlString: URLString
let userID: UserID
不推荐:
let MAX_WIDGET_COUNT = 100
class app_widgetContainer {
           var wBut: UIButton
           let wHeightPct = 0.85
}
let uRLString: UrlString
let userId: UserId
enum Shape {
             case rectangle
             case square
             case rightTriangle
             case equilateralTriangle
}

格式规范

/**
 ##功能列表
这个类提供下一下很赞的功能,如下:
- 功能 1
- 功能 2
- 功能 3
## 例子
这是一个代码块使用四个空格作为缩进的例子。
    let myAwesomeThing = MyAwesomeClass()
    myAwesomeThing.makeMoney()
## 警告
使用的时候总注意以下几点
1. 第一点
2. 第二点
3. 第三点
*/
class MyAwesomeClass {
   /* ... */
}
class MyViewcontroller: UIViewController { 
// class stuff here 
}
 // MARK: - UITableViewDataSource 
extension MyViewcontroller: UITableViewDataSource { 
// table view data source methods
 }
 // MARK: - UIScrollViewDelegate 
extension MyViewcontroller: UIScrollViewDelegate {
 // scroll view delegate methods
 }

不推荐:

class MyViewcontroller: UIViewController, UITableViewDataSource, UIScrollViewDelegate {
  // all methods
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
             return Database.contacts.count
}

不推荐:

override func didReceiveMemoryWarning() { 
           super.didReceiveMemoryWarning() 
 } 
override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
// #warning Incomplete implementation, return the number of sections 
           return 1 
} 
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
 // #warning Incomplete implementation, return the number of rows 
           return Database.contacts.count 
}
!bValue
~iValue
++iCount
*strSource
&fSum
fWidth = 5 + 5
fLength = fWidth * 2
fHeight = fWidth + fLength
if count < 3 {
           copyString = "Hello"
}else{
           copyString = ""  
}

不推荐:

if count < 3 {
           copyString = "Hello"
}
var weight: Int = 30
if weight >= 10 {
//TODO
}
if weight < 10 {
//TODO
}
- 不要使用过多的分支,善于使用`return`提前返回错误

推荐:

func customMethod(){
           if x < 0 {
                return
           }
//TODO
}
guard n.isNumber else {
          return
}
// Use n here

不推荐:

func customMethod(){
          if x >= 0 {
          //TODO
          }
}
- 多个条件判断时,不要多个if嵌套,用 guard

推荐:

func computeFFT(context: Context?, inputData: InputData?) throws -> Frequencies { 
          guard let context = context else { throw FFTError.noContext } 
          guard let inputData = inputData else { throw FFTError.noInputData } 
          // use context and input to compute the frequencies 
          return frequencies 
}

不推荐:

func computeFFT(context: Context?, inputData: InputData?) throws -> Frequencies {
           if let context = context { 
                    if let inputData = inputData { 
                    // use context and input to compute the frequencies 
                              return frequencies 
                    } else { 
                              throw FFTError.noInputData 
                    }
           } else {
                     throw FFTError.noContext
           }
 }
// 推荐
private static let kMyPrivateNumber: Int
// 不推荐
static private let kMyPrivateNumber: Int
class PirateManager {
    static let sharedInstance = PirateManager()
    /* ... */
}
class BoardLocation { 
          let row: Int, column: Int 
          init(row: Int, column: Int) { 
              self.row = row 
              self.column = column 
              let closure = { 
                   print(self.row) 
              } 
         }
 }
var diameter: Double {
        return radius * 2
}
var myGreatProperty: Int {
        return 4
}
subscript(index: Int) -> T {
        return objects[index]
}

不推荐:

var diameter: Double {
         get {
               return radius * 2
         }
}
var myGreatProperty: Int {
          get {
               return 4
          }
}
subscript(index: Int) -> T {
          get {
              return objects[index]
          }
}

后记:

参考文档:

https://github.com/github/swift-style-guide
http://www.jianshu.com/p/288ea00dcfcf

上一篇 下一篇

猜你喜欢

热点阅读