8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

悪いコード/悪いコード

Posted at

はじめに

本記事は悪いコードを羅列する記事になります。
大体の記事では悪いコードのあとに良い書き方の解説がありますが本記事は悪いコードのみの記載になりますのでご了承ください:bow_tone1:

こちらの記事は「プロもくチャット Advent Calendar 2024」の4日目記事です。

実際にあった悪いコード

if文の多重ネスト
def nested_if(is_first, is_second, is_third):
    if is_first:
        if is_second:
            if is_third:
                print('nest1')
            else:
                print('nest2')
        else:
            print('nest3')
    else:
        print('nest4')
booleanと比較する
def check_boolean(is_flag):
    if is_flag == True:
        print('true')
    else:
        print('false')
for文のネスト
def nested_for(list1, list2, list3):
    for i in list1:
        for j in list2:
            for k in list3:
                print(i, j, k)
後で使うかもという理由でコードをコメントアウトしてそのまま
def comment_out_code(is_first_flag, is_second_flag):
    # if is_first_flag:
    #     return True
    # else:
    #     return False

    if is_second_flag:
        print('second')
    else:
        print('not second')

じぶんでも書いて嫌になってくるコードたちですね(^_^;)
他にも同じ処理をコピペして何回も同じ処理を書いたり、やたらとフラグを持たせて処理を分岐させたり、マジックナンバーは当たり前のように書いてあったりとメンテナンスやテストに困るコードが世の中にはたくさんあります。

このようなコードを自分で書いている様をまるでキリスタンが踏み絵をしているように感じてなりません笑

そしてこのようなコードを書いていても売上は一部上場しているほどの規模があるので何が正解なのか迷走している自分がいます...

悪いコードに遭遇して思ったこと

こんなコード絶対書くはずないじゃん!バカじゃねーの?って思われる方も多くいると思います。私自身もそうでしたし似たようなコードを書いて指摘されたこともありました。
しかし実際に自分が遭遇して唖然としそれを自分が書いていることに滅入ったりしています。
売上が上がれば、給料が貰えればそれで良しとする文化もありますが、結局は書いている自分たちが困ってしまうことが多くなり工数も増えてしまう現状があります。
このようなコードを書いてしまう背景にプロジェクトに対して何も思い入れがないって理由もあるかもしれまでんが、後から見返す人(自分かも)のために見通しの良いコードを心がけていきましょう。
むしろこれは問題だらけなのでエンジニアの本質である「問題解決能力」を存分に発揮できるチャンスではありますね!

8
2
0

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
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?