- ベストアンサー
長編プログラミングの設計のコツ
都合の良い話ですが、書籍や時間の取られる専門的な勉強を避け、 出来るだけ簡単にプログラムを設計するコツを知りたいのです。 今までは、どのような言語でも、数百行のコードを思いつくままに、 浮かんだアイデアを取り入れながら、コーディングして来ましたが うまく行っていました。 数ヶ月前に、1万行程度のコードを書いていて、 コードを見やすくするために、汎用処理を別ファイルにまとめたり、 関数化したり、オブジェクトにしたりして、20個以上のファイルに 分割されたコードが出来ました。 ブロック単位での挙動はテスト済みだったのですが、いざ完成直前に バグが頻発しました。 デバッグに入り、1連の処理が複数ファイルに分散されている事や 複数の関数から参照される処理が多々存在するなど、修正した部分 が新しいバグを引き起こすような事態になり。 コーディングよりもバグを取り除く事に遥かに時間が掛かり過ぎて、 結局、1からつくり直す事にしました。 前回の失敗を無くすため、なるべく各関数の依存度を下げ、カプセル化 やコメントをまめに書く事にに勤めました。 すると、今度はコードが3割程度長くなった挙句、1つのファイルの コードが長くなり、頓雑な、依存度を下げるために使った処理や変数の 数も倍以上に増えて、思いつくまま流れるようなコーディングが出来ず、 結局毎日作業開始時には、長々としたコメントを読むことから始めなく てはいけません。 一日3時間位しか取れない作業時間のうち、その作業に1時間は取られて はかどらず、挫折してます。 是非、主観的なご意見で構いませんので、お勧めの方法があれば アドバイス頂けませんでしょうか? ○参考にしてください。 デバッグの際に複数ファイルに渡った変数や処理の参照が作業を 困難にしているのは解っているが結局出来上がるとそうなってしまう か冗長なコードになってしまう。 記憶に頼る管理は極端に苦手(一日たつと、何を書いていたのか解らず、コード全体を読み直す事がしばしば)。 ファイル構造を始めに決めて処理の流れをある程度書き出して始めた たが、実際にコーディングを始めると思いつくままにコーディングが できす、構造管理に気を取られ頭が真っ白になる。 変数をハッシュなどでまとめて解りやすくしたつもりが、意外と読みにくい。 今までは、デバッグに関しては、記述ミスや、1つずつの変数や関数の 動作をトレースする事で事足りたので、今回も、それ以外のデバッグ 方法は取っていない。
- みんなの回答 (3)
- 専門家の回答
補足
自己診断ですが、 出来ている箇所1、2、4 出来ていない箇所3、5、6 3は、関数化の基準をもって無い。 5は、始めに考えた階層が変更になってしまう。 つまり、これも基準が無い+コーディング中の思いつきで 構造が変わる事が多々ある。 6は、僅か数行の関数に対して引数が6つなどと間抜けな 関数になってしまって、シンプルにと思い結局カプセル化 を断念して他の部分に依存してしまう事が多々。 そもそもトップダウンで物事をやったり考えた事が 無いので、それが一因かも・・・。 その他頂いた回答や情報に関しては、検討調査しています。 少し、時間が掛かりそうなのでまずは、この回答へのお礼を 申し上げます。