師匠の格言
プログラムを作る際、苦労して作ってはダメだ。楽して作りなさい。そして、楽するために苦労しろ。
これは私の師匠から口すっぱく言われた言葉です。
楽して、というと怠けるイメージっぽくなってしまいがちですが、そういう意味ではありません。
これは私の座右の銘である「急がば回れ」と通じるものがあります。
基本的な動作があり、同じように振る舞う処理は何度もコーディングしてはいけません。それは初心者でも理解している事と思います。しかしながら、納期などの時間に迫られると、似たようなコードをコピペで貼り、その部分に必要な処理だけ修正して…一見別のコードを書いている気になります。
これが苦労にあたります。その場かぎり、今後修正する事は無いし…と思っていても、後に修正作業が発生する事がこの業界の常です。( ん、実は私だけ…? )
同じ処理を何度も書くと、その分だけ修正する箇所が増え、更には何処が共通範囲かを見失ってしまいがちです。すると、たちまち「バグ」という程のいい言葉で周りに説得しながら、力技ごっこが始まります。
それを解決するのが、楽するために苦労する、という事になります。
これはプログラム言語によりません。またハード言語、更には回路図などソフト屋さん以外にも通じるものがあると思います。
予め仕様を考える段階でそれら共通部を網羅するのは凄く大変です。( 優秀な方は可能でしょうが… )
ですので、先ずはコピぺしたい!という思考が出てきたら実行していくのが良いと私考えます。
コピぺしたい=似た処理(またはほぼ同じ処理)
という事になります。
そこで先ず苦労をしましょう。共通化する関数なりライブラリなりを作りましょう。
引数は沢山とっても構いません。あまりに多い場合は構造体やクラスを作りましょう。分かっちゃいるけど面倒ですよね。苦労ですよね。ファイル分割すると、またひと手間…考えるだけでも面倒です。
ですが、実行しましょう。すると、後々、楽ができます。修正が生じても部分修正で済みます。文言でgrepしてくても良いのです。特に動作に問題が生じた場合、スコープ範囲を気にするのが最小限になります。
特に、何かと通信する部分、の処理がこういう場合に当てはまる場合が経験上多いです。
頑張って引数を取る関数なりを作って共通化で苦労して下さい。
「急がば回れ」
この言葉が凄く好きです。
苦労する前に一息ついて、楽するために遠回りをしてみる、というお話でした。
PS.
実際に実行できている割合は半分程度です笑
スキルを磨かなきゃ、また師匠にダメ出しされちゃう…