Goalist Developers Blog

どうせ誰も見ないけどSwiftのガイドライン的なものを少しずつ作る

こんちは。渡部です。

f:id:watabe1028:20171129095304p:plain

確かゴーリストでは昨年あたりにようやくJavaのコーディング規約を作りました。
一体どれほどの社員が見たでしょうか?
CTOは規約を守っているのでしょうか?
三項演算子にスペースは入れてくれているのでしょうか?
 
社内にSwiftユーザ少ないけどこれからきっと増えるから
ガイドラインを作っとこ、と思ったので少しずつブログで作っていきます。

 

命名規約

クラス名、構造体名、列挙型名、プロトコル名

基本キャメル型ですよね。
宗教論争になりますがここではキャメル型で通します。

class GoalistModel {}

protocol GoalistModelDelegate: class {}

enum Week: String {}

struct Author {}

 
 

グローバル定数名、クラス定数名

こちらは大文字のスネーク型を使います。
完全に好みだけど世の中的にこれが多い気がします。
でふぁくとすたんだーど。

public let GOALIST_VALUE_NAME = "hokoriwomotsu"

class GoalistModel {
   static let TABLE_NAME = "GOALIST_TABLE"
}

 
 

変数名、関数名

もちろんキャメル型。

var userName: String = "watabe"

func sendMessage(textMessage: String) -> Void {

}

 
 

定義方法

変数、定数

1行で複数の宣言はやめましょう。
基本醜い、見にくいです。

let userName: String = "watabe"
let userId: Int = 0

letとvarの違いは
letは定数、varは可変と認識してます。
間違ってたらすんません。

 

型宣言

基本します。
明確な場合はしなくても良くね?
と言われますがダメです。(圧)

let text = "hello"         // は?
let text: String = "hello" // OK

let text = data["text"] as String         // は?
let text: String = data["text"] as String // OK

 
 

配列の初期化

色々あって何がよいやら、ですが以下の記述方法にします。
完全に好みです。

let member = ["watabe", "moritsugu", "iio", "chinapa"]           // は?
let member: [String] = ["watabe", "moritsugu", "iio", "chinapa"] // OK

 
 

今回は終わり

いやーガイドライン作成って大変ですね。
今日は面倒になってきたからこの辺にしておこう。そうしよう。

次は構文とか決めていきます。