ソースコードを見やすくしよう!リファクタリング①

こんにちは~。

MQLをマスターしたくて頑張ってプログラムを作るもトンチンカンなソースコードなためMQL神(架空の神)にそっぽ向かれているりょうです。

先日、MQLの『プロジェクト』を作成するという機能によりソースコードが見やすくなってやったー!という話をしておりました。

今回はMQLの機能を利用するという事ではなく、ソースコード自体を整えて見やすくしていきましょう、という事でプログラミング歴2,3ヶ月の僕の愚かなソースコードをお見せして改善してゆく試みです。

りょう

未熟なので見せるの恥ずかしいんですが

にゃんぽこ

ガン見してやろう

TOC

ソースコードの整理整頓『リファクタリング』

作成したソースコードを整えていくことを『リファクタリング』といいます。

リファクタリング・・・ソフトウェアの挙動を変えることなく内部構造を整理すること
(人間にとって読みやすくすること)

リファクタリングを一言で言うと↑上記の意味となります。

プログラムの挙動に問題がなくても無駄なコードがあったりわかりにくい構造だったりと、最適なコードとは限らないので、このようなコードを整理してゆく事を目的に行うのがリファクタリングです。

重複が多く無駄に複雑なコードにリファクタリングを行うと、

①バグが発生しやすく、バグの修正も困難なコードのリスクを解消
②他人はもちろん自分が見直す際の理解のし辛さを解消し、引継ぎなども容易に
③コードの理解が容易となり開発速度が向上し、修正や機能追加が円滑に

といったメリットがあります。

ムゥ

リファクタリングは良いことだらけにゃ

リファクタリング実践

それでは、僕の最初に作ったコードを見てみます。



こちらを修正していきましょう。
こちらは『指定したローソク足がピンバーの時はtrueを、ピンバーでなかったらfalseを返す』関数です。

まずこちらの関数、『PinBar = true;』の部分についてですが、PinBarにtrueが入った後はPinBarの中身が再度Falseに変わることはありません

この関数自体は判定を1回しか行わず、if文の結果でtrueかfalseを返すかが決まるので、以下のように書き換えることができます↓。



続いて、この文はif文を使っていてelseも使うことができるので以下のように書き換えられます↓。



こうすることでPinBarを宣言している行がいらなくなります。

あわせてif文を整形して、最終的に以下のようなソースコードに修正できました↓。



最初と見比べてみると、とてもスッキリしています。

にゃんぽこ

さぁ、ここで今までの挙動と同じか確認するんだよ

りょう

そうだ、こまめにやっとかなきゃ

ここでプログラムの挙動が変わってしまってはいけません。
面倒ですが必ずこまめに確認をしましょう。

リファクタリングは小分けで修正作業をし、その都度こまめにコンパイル→テストを行う!

関数を1つリファクタリングできたところで、今回はここまでとします!

新たにここでお話しできそうな愚かなソースコードがあったらまたご紹介します~。

ムゥ

りょうは愚かだからいっぱいあるにゃ

りょう

うるせー!

TOC
閉じる