1
2

【Python】文字列は最大の悪だ!文字列撲滅に寄与するconst.py

Last updated at Posted at 2024-03-06

目次

1.なぜ文字列は最大の悪なのか
2.実例
3.おわりに

1. なぜ文字列は最大の悪なのか

開発現場では、極力文字列をプログラム内で書かないようにしています。
Swiftで言えばR.swiftという外部ライブラリをわざわざ用いることで文字列排除をしています。
ではなぜ、これほど文字列排除運動が盛んに行われているのか、、、
それは、ヒューマンエラーを極力避けるためです。
人間はミスをするものです。普段からキーボードを見ずにブラインドタッチでガンガンタイプしているエンジニアならタイピングミスなどのヒューマンエラーによる予期せぬところでのバグ発生。複数人での開発であれば尚更です。
これが一番の無駄。
そこで現場で採用しているのは、文字列管理の手法です。

2. 実例

早速コードを載せます。 
①文字定義ファイル

const.py
from enum import Enum

# debug系
class DEBUG(Enum):
   DEBUG_SUCCESS = '処理完了:'
   DEBUG_FAIL = 'エラー発生:'

   def name(self, funcName):
      return  self.value + funcName

②文字定義ファイルを使う側

main.py
import sys
import . from const

def function1():
   for i in range(10):
       ...

   successLog = lambda name : print(const.DEBUG.DEBUG_SUCCESS.name(name))
   successLog(sys._getframe().f_code.co_name)
   
def function2():
   for i in range(20):
       ...
   successLog = lambda name : print(const.DEBUG.DEBUG_SUCCESS.name(name))
   successLog(sys._getframe().f_code.co_name)


function1()
function2()

③実行結果

処理完了:function1
処理完了:function2

3. おわりに

結論、webバックエンド開発や、ゴリゴリにデバックしたい場合を除いて逆に不要です。
今回記事を執筆するにあたり、現場の手法を用いようと考えてみたのですが、小規模開発では導入の恩恵はあまり教授できないかもしれません。ご参考程度に。

1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2