コードの品質が低くなってしまう問題
別にマウンティングしたいわけじゃなくて、今私が直面している問題です。
最近書くコードがどうしても品質が低くなってしまうのです。
そこの反省をして、自分自身で分析してみます。
既存のコードがよくわからない
コードを改変して機能を追加するときに、既存のコードがわからないことが多いのです。
もちろん理解してからコードを書くのですが、それまで時間がかかってしまいます。
また、書いたコードに自身が持てません。
なんで理解が難しいのでしょうか?
データ構造を把握していない
データ構造が把握できていないため、書いていることが理解できないことがあります。
これは図に書いて整理するしかないです。
知識が足りない
そもそも知識が足りていないということがあります。
Pythonだとしたら、使ってるライブラリを理解していないだったり、
使ってるMVCフレームワークを使いこなせていないなどがあります。
また、慣れていないパラダイムのコードが理解するのが難しかったりします。
例えば、Pythonでtoolz使っている場合、関数型の書き方に慣れていないと理解が難しかったりします。
コードが入り組んでいる(技術的負債)
これは価値提供を優先しているために、コード品質を犠牲にしていたツケが回ってきたあるあるです。
対策
対策を考えてみました。
ドキュメントにデータ構造を書いておく
DesignDocのようなドキュメントを用意し、ハイレベルアーキテクチャやデータ構造をきちんと書いておくようにしたほうがいいと思ってます。
ドキュメントがなければ、書くようにします。
わからない部分は素直にわからないと言おう
わからないことは素直に質問します。
得意じゃないことは勉強する
ここは大事です。
ライブラリを使って自分でコードを書いてみる、ライブラリのコードを読んでみる等、常にキャッチアップはしていかないといけません。
勉強は常にしておきます。
技術的負債は少しずつ返済する
負債は負債なので、仕方がないですが、返済計画を立てて少しずつ返済していかないといけないですね。
テストを書く
テストを書くことで品質が上がるわけではありません。ただ、テストを書くことで品質を担保することは重要です。
(テストが描きづらい=コードがよくない)ということなので、テストがかけなかったらそこは要注意です。
書いてみて思ったのは全部当たり前のことでした。
当たり前のことをやっていくことが大事なんですね。
アドバイスがあればお願いしたいです。