はじめに
どうも、どうまずです。
私が本当に書いて指摘してもらった、汚い・危ないswiftのソースを心霊写真の紹介っぽく記載していきます!
反省も踏まえまして…
恐怖・マジックナンバー
まずは、こちらのソースをご覧下さい・・・。
switch indexPath.section { // スケジュール名設定 case 0: return "スケジュール名" // 曜日設定 case 1: // 曜日の先頭のセル guard indexPath.row != 0 else { // 以下略
おわかり頂けたでしょうか・・・
一見なんの変哲もないswitch文に見えますが、
case文のところよ〜〜く見て頂きたい・・・。
この0と1、意味を持っているんです!
あれです。
今はわかるけど、後で修正や保守しようとしたときに、
『これ、なんだっけ?』ってなるパターンです。
何とも恐ろしい!!!
これらはマジックナンバーと呼ばれ後々暴れ出すのです。
こういう場合は、enumなどを利用し、 利用し、数字をちゃんと定義してわかりやすくしましょう。
コメントで誤魔化そうとしてもダメです。 最初はコメント書いてても、書き忘れて、結局わからなくなるんですよ。
修正後は下記のような感じです。
enum SectionRowNumber: Int { case scheduleName = 0 case week = 1 } switch indexPath.section { // スケジュール名設定 case SectionRowNumber.scheduleName.rawValue: return "スケジュール名" // 曜日設定 case SectionRowNumber.week.rawValue: // 曜日の先頭のセル guard indexPath.row != 0 else { // 以下略
enum部分が長くなっていますが、ソースだけ見ても、意味がわかるようになりました。
直してやったぜ風に記載してますが、ダメなソース書いたの私なんですよね。
頑張ろう・・・
注意
レビューアの観点によって、諸説あります。