[Swift] 유지 보수가 쉬운 코드를 쓸 때 Swift 버전을 주의해야 합니다.

7602 단어 Swift
나는 이전에 Objective-C에 공개된 보도를 Swift로 바꾸고 싶다.
[대상 기사는 여기 있습니다]
https://qiita.com/yu_okb/items/dc7cce9504b43805b065
스크립트처럼 ViewController.swift에서 꾸물거리며 기술한 후에 다른 멤버들이 유지보수를 할 때 고생하는 것보다 알기 쉽고 유지보수하기 쉬운 코드를 처음 보는 것이 가장 좋다.이를 위한 수법이 있기 때문에 자신의 비망록에 남는다.
먼저 대체적으로 전달하고 싶은 것을 말하면 모든 기능이 함수를 분산시켜 결합시켜 생명주기에 놓고 이동하면 된다는 것을 깨닫게 된다.

하고 싶은 일


View, Model, Controller 등을 최소 단위로 열거한 후 각 처리를 재검토할 때 확인이 쉬워진다.처리를 최소 단위로 쓰면서 식별이 쉽고 유지보수가 쉽다.Swift 버전.
지적해 주시면 잘 부탁드립니다.

득점

  • viewDidLoad는 여분의 초기화를 하지 않습니다
  • 1 기능에 대해 함수 1개를 정의합니다(상황에 따라)
  • 마크를 정확히 기재합니다
  • 처리를 최소 단위로 나누어 함수화함으로써 단원 단위로 테스트할 수 있다
  • 단계

  • 각 처리 함수를 최소 단위로 기술한다
  • MARK
  • ViewController.swift
    import UIKit
    
    class ViewController: UIViewController,
        UITableViewDelegate,
        UITableViewDataSource
    {
       @IBOutlet var tableView: UITableView!
       var data: NSMutableArray = []
    
    // MARKを書くことでXCode上から定義関数がインデックスされる
       //MARK: Life Cycle
       override func viewDidLoad()
       {
          // 余計な初期化は行わない
          // 目的に応じてラップした関数を呼び出す
          super.viewDidLoad()
          getData()
          setView()
       }
    
       //MARK: UITableViewDataSource
       func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
       {
           // セクション数設定処理
       }
    
       func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
       {
          // cell描画処理
       }
    
       //MARK: Private
       private func getData()
       {
          data = []
                  :
          // データ取得処理をここに書く
          // entityクラスを別途定義する
       }
    
       //MARK: Private View
       func setView()
       {
          // 例えばテーブルビューのみ動作を確認したい場合に"setTableView"以外をコメントアウトすると
          // テーブルビューのみの動作確認ができる
          setNavigationBar()
          setMainView()
          setTableView()
          setToolBar()
       }
    
       func setNavigationBar()
       {
          // ナビゲーションを実装する
       }
    
       func setMainView()
       {
          // view関連の実装
       }
    
       func setTableView()
       {
         // tableViewを実装するために必要な処理を書き出す
         tableView = UITableView(frame: CGRect(x: view.frame.origin.x,
                                                                   y: view.frame.origin.y, width: view.frame.size.width, height: view.frame.size.height))
         tableView.dataSource = self
                   :
         view.addSubview(tableView)
       } 
    
       func setToolBar()
       {
         // ツールバーを実装する
       }
    }
       :
    
    //MARK:
    정의된 함수의 순서는 일반적으로 다음과 같은 순서로 쓰인다.
    따라서 설명//MARK:
    편집 중인 제목에 대한 추가 방법 Objective-C에는 #pragma 가 있지만 Swift에는 "주석 외 MARK"만 표시됩니다.
    Obj-C : #pragma
    Swift ://MARK:
    ARK에 대해 다음 내용이 표시되면 성공합니다.

    나는 기본적인 유형은 다음과 같다고 생각한다.
    + Initialize
    + Life Cycle
    + Delegate
    + Gesture
    + Private

    총결산


    만약 각 함수가 각각 희소결합된다면 함수 간의 인과관계가 명확해지고 어디서 오류가 발생했는지 추적하기 쉽다.

    좋은 웹페이지 즐겨찾기