質問: `//MARK: -` としてナビゲーターのリストに表示されるメソッド名を プログラム全体の見通しがよくなったり、可読性が増したり、 開発効率が上がるような分類方法を知りたいのですが、 一般的に知られた方法や、優れた方法はあるのでしょうか? ・大分類>中分類>小分類 みたいな分類方法はないですか? ・あるいは、そのあたりの指針を示した資料などありますか? ・今のところなんとなく、下のように関係のあるものをまとめているだけです。 ``` //MARK: - フェッチ //MARK: - Common //MARK: - ScrollView //MARK: - CollectionView //MARK: - TableView //MARK: - 新しいアイテムをつくる //MARK: - Item 操作 ``` ![画像の説明をここに入力](https://i.stack.imgur.com/ozUXN.png)
回答: 僕の場合は、Objective-Cなので、`//MARK:-` を使わずに、`#pragma mark`でコードの区分けをしていますが、 こんな感じですね。基本はクラスの中でどんな役割を持っているか?を`MARK:-`で、そのなかでのまとまりを`MARK:`で区切って見出しを付けていくと良いと思っています ``` #pragma mark - synthesize properties #pragma mark - class method #pragma mark - constructor / destructor #pragma mark - override #pragma mark - properties #pragma mark - actions #pragma mark - messages #pragma mark - private #pragma mark - delegate #pragma mark - C functions ``` `//MARK:`同様、`-`を付けるか付けないかで区切り線が入るか入らないかが変わります。 上から順に、`@property`の`@synthesize`宣言をするエリア、+で始まるメソッドを列挙するエリア、init(With...)で始まるコンストラクター、上位クラスをオーバーライドするメソッドの定義、@synthesyzeではフォローしきれない、副作用のあるプロパティのアクセッサー、IBActionで呼ばれるユーザーインターフェイスに反応するアクション、クラス外に公開するメソッド、クラス外に公開しないメソッド、TableViewやXMLPerserに呼ばれるデリゲートメソッドという風に分割しています。 基本的な考えはkratosさんと一緒ですね。あとは出来るだけ最大公約数的に分類して、自分がメソッドを見つけやすく出来れば良いと思います。 これを更にDashなどのスニペットツールに登録しておいて、クラスファイルを作成した時は無条件に貼り付けるようにしています。 Dashはスニペットツールとしても、クラス・メソッドリファレンスとしても優れているので導入をお勧めします。