R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

綺麗なソースコードは好きですか?

綺麗なソースコードは好きですか?

ソースコードは、それが動くものでなければいけません。
更に、ソースコードは綺麗でなければいけません。

この二つは同じくらい大切なことです。いや、あるいは汚くて動くソースコードよりも、綺麗で動かないソースコードの方が価値があるかもしれません。

何故なら、綺麗なコードはメンテナンスが容易だからです。

他人が読んでもわかりやすい、つまりは将来の自分が読んでもわかりやすいのです。
当然バグも最初から少なく、デバッグも容易になります。
機能追加や変更も、綺麗なコードに対して行うのなら、より素早く安全に行うことができます。
更に、再利用性も高くなります。

綺麗なソースコードによって、これだけの恩恵が得られるのです。
これは綺麗なコードを書かなければいけないと言うものです。

ところが、いざ意気込んで綺麗なソースコードを書き始めると、時折「どうすれば綺麗なソースコードになるだろうか?」ということだけに悩むことになります。

一時期の僕は、これは何も生産していない無駄な時間なのだと、本気で思っていた時期がありました。

しかし、その一方で、こういった無駄と思われた時間によって、どうすれば素早く簡単に綺麗なソースコードが書けるのかを学べてきた事実もあります。

 

- 綺麗なソースコードは好きですか?-

 

そう聞かれたら、きっと皆さんこう答えるでしょう。

 

- 当たり前だろ!-

 

じゃあ、綺麗なソースコードとはどういうものなのでしょうか?

実は、そんな感じのことを皆さんと一緒に考えて行けたらいいのになぁ、と常々思っていました。

そして、綺麗なソースコードを書くために一見無駄だと思える時間、これに対する不安を皆で共に乗り越えていく勇気を持てたら、更に嬉しいと思っています。


#余談ですが、僕にとって「綺麗なソースコードを書く」という目的のためには、言語の選択でさえ例外ではありません。
#僕が C# をメインに開発するようになった理由も、C# が一番綺麗にソースコードが書ける、と判断したためなのです。

 

#J氏の影響で(ぼそっ)

投稿日時 : 2006年9月22日 18:39

Feedback

# re: 綺麗なソースコードは好きですか? 2006/09/22 19:07 masabun

Pythonの書き方(考え方)はどうでしょう?

# re: 綺麗なソースコードは好きですか? 2006/09/22 19:09 囚人

>いや、あるいは汚くて動くソースコードよりも、綺麗で動かないソースコードの方が価値があるかもしれません。

そんなわけない!と突っ込んでみる。
速くて動かないコードよりも遅くても動くコードの方が価値があるのと同じで、綺麗で動かないコードよりも汚くても動くコードの方が遥かに価値があるでしょう。

そんな私ははっきり言って自分が書くコードは綺麗なコードだと自負している(^3^)

# re: 綺麗なソースコードは好きですか? 2006/09/22 19:27 じゃんぬ

> 僕が C# をメインに開発するようになった理由も、
> C# が一番綺麗にソースコードが書ける、と判断したためなのです。

> #J氏の影響で(ぼそっ)

でも、私は VB の方が綺麗だと思いますよ。
C# の方が好きですけど。

# re: 綺麗なソースコードは好きですか? 2006/09/22 19:54 ognac

綺麗な,行儀の良いソースはバグが少ない..(But.皆無ではない)..が持論です。
意識して綺麗に書こうとしなくても,行儀よく書いていけば結果として綺麗になると思います。
  【住居は3度新築すれば,気に入ったものになる】と棟梁に聞いたことがあります. 経済的に不可能wwwww.
システムも,作り直すほど,綺麗になっていくのを実感するので,製造も3回.remakeする機会がほしいです。無理だろうね.

# re: 綺麗なソースコードは好きですか? 2006/09/22 20:59 わちゃ

私も、綺麗なソース推進派です。

綺麗なソースを書くのは無駄な時間と思うことは、今の私には
理解が難しいです。

あとから、綺麗に直そうと思うと大変ですけどね。

昔は漠然と思っていた事ですが、Code Complete を読んで、
その思いを深くした覚えがあります。


私は、VB 系を主に使っていますが、VB 系は、綺麗なコーディングを
ある程度強制してくれる素敵な言語だと思います。

特に、C系統とか、Perl とか使っていると、どこかで、
コードを短くしようというよこしまな心が入ってしまう気がします。

最初に .Net 系に移行したときに、VB .Net と心中しようと
決めたのはその辺が理由でした。



>いや、あるいは汚くて動くソースコードよりも、
>綺麗で動かないソースコードの方が価値があるかもしれません。

動く、動かないっていうのをもうちょっと具体的に考えると、
「試験済みのコード」と、「試験の終わっていないコード」という表現に
なるのかもしれません。

納品する立場と、納品される立場などでどちらがいいかの判断は
わかれるかもしれませんが、みなさんは納品する立場ですよね?

# re: 綺麗なソースコードは好きですか? 2006/09/23 12:08 koka

メンテする必要があるプログラム = 使ってるプログラム かつ
まともにメンテできるプログラム = 綺麗なプログラム

そんな感じです。
「メンテする必要があるのにソースが素晴らしく難解でまともにメンテできない。。。」
ものが多いご時勢ですがorz

# re: 綺麗なソースコードは好きですか? 2006/09/23 23:38 アクア

Jとは誰のことだろ…わからん…

美しいソースコードって定義が難しいですね。
おっと…どの様に定義しても私のソースコードは汚いが…。

# re: 綺麗なソースコードは好きですか? 2006/09/24 2:10 R・田中一郎

>masabun さん
>Pythonの書き方(考え方)はどうでしょう?

考え方は良いとは思うのですけれど、文法的には、括弧が好きなので・・・^^;

------------------------------------------

>囚人さん
>そんなわけない!と突っ込んでみる。

絶対突っ込まれると思ってましたw
一文字抜けていても動かないのがプログラムですから、ちょっとしたことで動くようになる可能性もある訳です。
そうなった時点で、綺麗なコードの方が断然価値のあるものになるのではないかと。
まあ、どの程度バグを含んでいるのかにもよる訳なので、一概に「どちら」とも言ない訳ですけどね^^

------------------------------------------

じゃんぬ さん

>でも、私は VB の方が綺麗だと思いますよ。

これは、じゃんぬさんに対して、誤解を招いてしまうような書き方をしてしまいましたね。
申し訳ありませんでした。

>C# の方が好きですけど。

僕は、そもそも C のスタイルが好きだったのです。
その上、大ファンのじゃんぬねっとさんが、しーしゃーぱーな訳ですから、僕がVBからC#に乗り換えるのは当然とも言える訳でして^^;

例えば、= ですが、VB は代入と比較の区別が曖昧です。
また、必要以上に単語を明確に書く必要があるために、どうしてもコードが冗長気味になってしまう気がします。
・・・と、あまりこの場で論じようとすると、別スレ立てろと言われてしまうので、辞めておきますがw

------------------------------------------

>ognac さん
>意識して綺麗に書こうとしなくても,行儀よく書いていけば結果として綺麗になると思います。

本当に、その通りだと思います。
技術的な情報を欲する人が多い昨今、行儀のよさ、についてを知らない人もまだまだ多い気がします。
あるいは、自分は行儀が良いと思っているだけで、実は・・・と言う人もいらっしゃるかもしれませんが・・・

------------------------------------------

>わちゃ さん
>綺麗なソースを書くのは無駄な時間と思うことは、今の私には

そうなんです。
しかし、仕事で納期が迫っているような時には、つい「動く」ということだけに時間を費やそうとしてしまう場合もあったり・・・・

>特に、C系統とか、Perl とか使っていると、どこかで、

Perl は、省略の美学と言うものが根底にあるように思います。
あるいは、スクリプト言語ということで、実行速度に絡む部分もあるのかもしれませんね。

>最初に .Net 系に移行したときに、VB .Net と心中しようと

例えば、VB ではクラスを継承する際に、 inherits と書くのでしたっけ、C# だと : ですね。
この辺りを見ると、VB は綺麗な言語だなぁ~、なんて思いますね。

------------------------------------------

>koka さん
>「メンテする必要があるのにソースが素晴らしく難解でまともにメンテできない。。。」

そうなんですよね。
完全に独立性の高い機能で、ブラックボックス内でスパゲッティーコードが展開されているのなら良いのですが、そんな都合の良いものばかりではなかったりしますよねw

------------------------------------------

>アクア さん
>Jとは誰のことだろ…わからん…

じゃんぬねっとさんです。
僕は、.Net 暦が浅くて、@IT でいろいろな方にチカラを貸していただいたおかげで何とかやってこられたのですが、何かと C# で書かれたサンプルを目にしているうちに・・・w

>美しいソースコードって定義が難しいですね。

そうなんです。
でも少しでも定義できるのなら、今後コーディングする上でとても役立つ情報になる筈なのです。

#皆さんの「綺麗なコード」の定義が、僕も知りたいのです。

# ロレックスコピー 2023/05/21 0:29 coxAcquic

ロレックス買取"弊社はロレックスの商品特に大人気のロレックスデイトナシリーズのロレックス時計の種類を豊富に取り揃えます。日本ロレックス時計とロレックスレプリカのロレックスコピー品の品質よくて、激安税込み価格でご提供します。 }}}}}}
https://www.ginzaking.com/product/detail/4319.htm

タイトル
名前
Url
コメント