はじめに 先日、「悪〜いコード」を読む機会がありました。 どんな風に悪いのか、軽くですが分析してみたので、ポエムとして投稿したいと思います。 古のコード 私は普段Ruby on Railsをメインに開発を行っているのですが、ユーザーからの質問に答えるために、普段の開発や保守しているのとは全く別のシステムのコードを読む機会がありました。 そのシステムはPHPで書かれた古いコードでした。ユーザーの質問はシンプルだったので、コードを見れば一瞬で答えは見つかるだろうと思ったのですが、とても読み難いコードだったので30分ほど頭を悩ませながら読むことになりました。 何が読み難いのか 結果、ユーザーからの質問には答えることができたのですが 「僕の30分を返してくれーーー!」と叫びたい気分です。 と愚痴ってしまいましたが、それだけでは何の進歩もないので、何が読み難かったのかを明らかにしてみたいと思います。
![「悪〜いコード」を読んだので、ついでにコードメトリクスを計測してみた - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/3875d43b8cf12708f68176ee1ef3efa6b3161ad2/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgwJThDJUU2JTgyJUFBJUUzJTgwJTlDJUUzJTgxJTg0JUUzJTgyJUIzJUUzJTgzJUJDJUUzJTgzJTg5JUUzJTgwJThEJUUzJTgyJTkyJUU4JUFBJUFEJUUzJTgyJTkzJUUzJTgxJUEwJUUzJTgxJUFFJUUzJTgxJUE3JUUzJTgwJTgxJUUzJTgxJUE0JUUzJTgxJTg0JUUzJTgxJUE3JUUzJTgxJUFCJUUzJTgyJUIzJUUzJTgzJUJDJUUzJTgzJTg5JUUzJTgzJUExJUUzJTgzJTg4JUUzJTgzJUFBJUUzJTgyJUFGJUUzJTgyJUI5JUUzJTgyJTkyJUU4JUE4JTg4JUU2JUI4JUFDJUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgxJTlGJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1kNzQxNGE1MWJmYWRkZjU4YTJhZWU3Njc2NGVlODhmYw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwdGF0c3VtaV90MiUyMGluJTIwJUUzJTgzJTgwJUUzJTgyJUE0JUUzJTgzJUFDJUUzJTgyJUFGJUUzJTgzJTg4JUU1JTg3JUJBJUU3JTg5JTg4JUU2JUEwJUFBJUU1JUJDJThGJUU0JUJDJTlBJUU3JUE0JUJFJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzImdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1iZWY4MTIwYTQwMTg2YTEwNTkyOWI0ZmQzY2UwNjUyNw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D2e312393a9d7da728e3514298c73e5f2)