プログラマーの方に質問です。1つのウィンドウで表示できる、かつ複雑なコードを書く上で、メンテナンスのしやすさ(可塑性、拡張性、構造の視認性など)という点で、最も有用と思われるテクニックを、【1つだけ】お教え下さい。tinyなものでも結構です(私はVB2005しか使ったことがありません)が、あなたのナンバーワン(⇔オンリーワン)をぜひお願いします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2006/09/22 21:50:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:ksh No.4

回答回数315ベストアンサー獲得回数9

ポイント100pt

最も有効な手を一つだけ、といわれるとむずかしいですね。状況に応じていろんな手を使い分けるのがプログラマの腕の見せ所だと思いますので。

あえていうと、普通にアプリケーションを書く(極端によい性能を要求されない)場合だと、10数行ぐらいの単位で処理をブロック化し、そのブロックが何をしているか、というコメントを書くようにするのは、よい方法だと思います。処理をブロック化できていないコードはあまりちゃんと考えてコーディングされていない場合が多く、経験上、メンテナンス性に問題があることが多いと感じています。

一つだけ、といわれてますが、もう一つだけ。

コメントが不要なぐらいわかりやすくコーディングする、というのもあります。変数名をちゃんと、使用意図がわかるようなものにするとか、複雑な処理を、ちゃんと検討して、複数の簡単な処理に分解するとかすれば、コメントは不要という意見が最近ありまして、私はこれに賛成です。どうしてもコメントなしでは説明できない処理とか、使用方法を誤ると危ない処理(そんなもんがあるのが問題でもありますが)のみコメントを入れるということです。

がんばってください。

http://d.hatena.ne.jp/ksh/

id:crashtruck

ありがとうございます。コメント不要論は初めてです。自分でもよく調べてみますが、キーワードの性質上よい資料を見つけるのは大変そうです。よろしければ、おすすめの記述をご紹介いただければ幸いです。

2006/09/17 23:50:18

その他の回答5件)

id:apple-eater No.1

回答回数420ベストアンサー獲得回数8

ポイント50pt

基礎構造、よく使うパーツ・ルーチンにKISS(Keep It Simple,Stupid)の原則を.

id:crashtruck

ありがとうございます。

2006/09/17 23:47:46
id:tarchan No.2

回答回数200ベストアンサー獲得回数2

ポイント50pt

コードを意味のあるブロックに分割して、その部分が何をするのかコメントを付けます。

コメントだけを読んで設計に間違いがないか2重チェックします。

id:crashtruck

ありがとうございます。

2006/09/19 09:17:02
id:hive7134 No.3

回答回数167ベストアンサー獲得回数16

ポイント100pt

1つのウィンドウという条件にはちょっと当てはまらない気もしますが、なんといっても「オブジェクト指向」です。


オブジェクト指向をうまく取り入れると

とてもわかりやすいコードを書くことができます。


どうわかりやすいかというと、

  • 機能や状態がどこにあるかがはっきりする
  • 似たようなコードをひとつにすることが可能になる
  • よって機能の追加や変更が容易である

なんてところがぱっと思いついた範囲です。

http://www.aerith.net/design/demerit-merit-j.html

id:crashtruck

ありがとうございます。

2006/09/17 23:48:36
id:ksh No.4

回答回数315ベストアンサー獲得回数9ここでベストアンサー

ポイント100pt

最も有効な手を一つだけ、といわれるとむずかしいですね。状況に応じていろんな手を使い分けるのがプログラマの腕の見せ所だと思いますので。

あえていうと、普通にアプリケーションを書く(極端によい性能を要求されない)場合だと、10数行ぐらいの単位で処理をブロック化し、そのブロックが何をしているか、というコメントを書くようにするのは、よい方法だと思います。処理をブロック化できていないコードはあまりちゃんと考えてコーディングされていない場合が多く、経験上、メンテナンス性に問題があることが多いと感じています。

一つだけ、といわれてますが、もう一つだけ。

コメントが不要なぐらいわかりやすくコーディングする、というのもあります。変数名をちゃんと、使用意図がわかるようなものにするとか、複雑な処理を、ちゃんと検討して、複数の簡単な処理に分解するとかすれば、コメントは不要という意見が最近ありまして、私はこれに賛成です。どうしてもコメントなしでは説明できない処理とか、使用方法を誤ると危ない処理(そんなもんがあるのが問題でもありますが)のみコメントを入れるということです。

がんばってください。

http://d.hatena.ne.jp/ksh/

id:crashtruck

ありがとうございます。コメント不要論は初めてです。自分でもよく調べてみますが、キーワードの性質上よい資料を見つけるのは大変そうです。よろしければ、おすすめの記述をご紹介いただければ幸いです。

2006/09/17 23:50:18
id:Ark-is No.5

回答回数39ベストアンサー獲得回数0

ポイント100pt

>1つのウィンドウで表示できる、かつ複雑なコードを書く上で

と言う事であれば、

「インデント」はいかがでしょう?

(タブでずらすか、スペースを何文字分打ち込むかは個人やプロジェクトの好みに拠りますが)


サブルーチンの内側の処理は一段右側へ。

ループの内側の処理はさらに一段右側へ。

分岐処理のYes/Noに応じた処理はまたさらに一段右側へ。


そのように書いても、勝手に改行されないようなコーディングの仕方とEditorも考慮に入れています。

id:crashtruck

ありがとうございます。

2006/09/17 23:51:12
id:KirakiraHikaru No.6

回答回数354ベストアンサー獲得回数68

ポイント100pt

VBやC#限定の方法ですが、

領域ディレクティブを使うと複雑なプログラムの可読性を良くすることができます。


例えばクラスを下記のようにすると、

Regionで囲まれた部分ごとに折りたたんだり開いたりすることができるので、

全体を把握したい場合はすべて折りたたんだ状態にしたり、

把握したい箇所を開いたりして、全体像が見やすくなります。

Regionの左に表示されている-+ボタンで個別に切替えたり、

右クリック->アウトラインで表示される各項目によって全体の切替ができます。

Public Class frmTest

#Region "定数"

    Private Const C_MAX As Integer = 2

#End Region

#Region "変数"

    Private type As Integer
    Private name As String

#End Region

#Region "イベント"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    End Sub

#End Region

#Region "メソッド"

    Private Function GetType() As Integer
    End Function
    Private Function GetName() As String
    End Function

#End Region

End Class

@IT プロフェッショナルVB.NETプログラミング Chapter 16 プリプロセッサ

http://www.atmarkit.co.jp/fdotnet/vb6tonet2/vbnet2_16/vbnet2_16_...

Visual Basic 中学校 取りこぼした重要なトピック

http://homepage1.nifty.com/rucio/main/dotnet/nyumon/BEGIN10.htm

id:crashtruck

いつもありがとうございます。「領域ディレクティブ」、活用させていただきます。

2006/09/17 23:52:28
  • id:ksh
    ポイント&いるか賞ありがとうございました!
    >よろしければ、おすすめの記述をご紹介いただければ幸いです。

    わたしが見たのは下記のブログで読みました。

    404 Blog Not Found - コメント!=ドキュメント
    http://blog.livedoor.jp/dankogai/archives/50619039.html

    参考になれば幸いです。
    http://d.hatena.ne.jp/ksh/
  • id:crashtruck
    おお、これは面白い。ありがとうございます!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません