本当に書いた、怖いソース(swift編) マジックナンバー

はじめに

どうも、どうまずです。

私が本当に書いて指摘してもらった、汚い・危ないswiftのソースを心霊写真の紹介っぽく記載していきます!

反省も踏まえまして…

恐怖・マジックナンバー

まずは、こちらのソースをご覧下さい・・・。

switch indexPath.section {
  // スケジュール名設定
  case 0:
    return "スケジュール名"
         
  // 曜日設定
  case 1:
    // 曜日の先頭のセル
    guard indexPath.row != 0 else {
  // 以下略






おわかり頂けたでしょうか・・・

一見なんの変哲もないswitch文に見えますが、
case文のところよ〜〜く見て頂きたい・・・。

この0と1、意味を持っているんです!

あれです。
今はわかるけど、後で修正や保守しようとしたときに、 『これ、なんだっけ?』ってなるパターンです。 何とも恐ろしい!!!

これらはマジックナンバーと呼ばれ後々暴れ出すのです。

マジックナンバー (プログラム) - Wikipedia

こういう場合は、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部分が長くなっていますが、ソースだけ見ても、意味がわかるようになりました。

直してやったぜ風に記載してますが、ダメなソース書いたの私なんですよね。

頑張ろう・・・

注意
レビューアの観点によって、諸説あります。