トップページ

本棚


両手で1000まで数えられますか?:2進法の話
数値 - 危険物取り扱い注意
100 × 200 =32?:変数のオーバーフローの話
パリティビット
小数の扱いについて
ぽいんた
ぽいんた2
ぽいんた3
ジ・オリジン
ジ・オリジン:補足
かっこつける話
かっこつける話2
文字列のこと
タイミングの話
拡張性の話
取り込む話
staticな話

コンパイルの話1
コンパイルの話2:止まらぬビルド
コンパイルの話3:マシン語に落ちるということ1:メモリの話
コンパイルの話4:マシン語に落ちるということ2:最適化
コンパイルの話5:マシン語に落ちるということ3:変数とスタック
コンパイルの話6:コンパイラはそもそも何をやってくれるのか??
リンクの話
プリプロセッサの話

OS、というもの

オブジェクト指向1
オブジェクト指向:2
オブジェクト指向:3

オブジェクト指向:番外 C言語のソースファイルの話
オブジェクト指向:番外 C言語での「再利用性」と「カプセル化」データ構造とアルゴリズム


抽象的な話

寝込んで布団の中で考えたこと
こんなの、常識??
お仕事プログラミング
ソフトでハードなプログラム
プログラムするということ
お勉強
プログラムを学ぶということの補足
C言語:「学問」と「実務」
統合開発環境
C言語ってポータブルですか?
C言語ってポータブルですか?:2
あなたは、どう読みますか?
ああ勘違い
試してガッテン
低級品
質問をするということ
ポカ
「何もしない」 != 「無駄」
エディタの話
もっと手を抜こう

いまどきの、アセンブラ

VisualStudio2005
VisualStudio2005:2

戦争の防ぎ方、に対する私の考え
身近な差別
改革
地球に優しいなんて大嘘
統計で嘘をつく方法

言葉について
言葉について:2

神が死んだということ
善悪の彼岸から、力への意思を目覚めさせるということ

本を読むということ
本を読むということ:2

絵を描く話
地図
地球儀

オカルトのお話
がんだむさん
RPGソフトウェア
記紀神話の不思議



メニュー

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

プログラムって言うのは、現在実現しようとしている機能のみ実現できてしまえばいい、というものではないと思っている。

個人の趣味でやっている場合でも、後から機能を追加したくなったりすることはあるし、しばらくたってから自分のプログラムを見直すこともあるだろう。使ってるうちにバグを発見したりもするだろうし。

その為にも、何度も書いているけど、将来のメンテナンスと拡張性を考慮したつくりにするべきだ、と私は考えている。



ひとつは、可読性をよくすること。

ざっくりといくけど、
①コーディングスタイルの統一
②変数の命名方法の統一
③コメントの充実
④機能・処理ごとに関数を分ける
⑤即値を避け、極力定数を宣言する

などがある。(他にもあるだろうけど)

①~③は今まで何度か書いているのでそちら参照
④は異存のある方もいるかもしれない。関数呼び出しのオーバーヘッドが増えるのが気に入らない、一箇所からしかコールしないなら、関数に分けないでそこにコードを埋め込んでしまえばいい、など。

でも最近のコンパイラは優秀で、ちゃんとstaticなどの宣言を適切に使って関数を宣言・定義してやれば、一箇所からしかコールされていない関数などは最適化の段階でサブルーチンとしてではなく呼び出し元の箇所に展開する。

ならばソースコード上は分けておいたほうが、読みやすい。

それに、後からその機能(関数)を他で使いたくなったときにも簡単に対応ができる。



ふたつめは、できるだけロジックに頼らないこと。

具体的には、
①テーブルなどを利用する
②機能・処理ごとに関数を分ける
③即値を避け、極力定数を宣言する
④引数をchar*を使う

①は、テーブルに項目の追加・削除をすることで処理の追加が簡単に行えるようにする。

②、③は可読性とともにロジックを避けるのにも役に立つ。
②の場合は可読性の話の最後でも言ったけど「部品」を使いまわすことができる。③は、定数にしておけば即値よりも意味がわかりやすい上に、ソースコード上の同じ意味を持つ数値を一気に変更できる。

④は、処理を振り分ける上位の関数などの場合。
引数でデータを渡そうとするとき、ある決まった型の変数や構造体を渡してしまうと、変更が利かなくなってしまう。

charのポインタを引数とすることで、キャストして拡張された構造体としてもアクセスできるし既存の構造体や型としてもアクセスできるようにすれば、処理を追加するときに容易であるし、既存の処理と拡張した処理で処理の流れに差異がなくなる。
charのポインタを渡すのはもちろん、C言語で一番最小単位の型だから(厳密には規格にそんな文言はないけど)


見やすく、拡張性の高いプログラムを、目指しましょう。それがタフなプログラムを作るコツだと思います。




| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー