Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

ソースコード品質改善委員会

More than 3 years have passed since last update.

プログラマーになりたての皆様へ

これは、私のプログラマー人生で学んできたソースの書き方です。
心構えみたいなものです。
読み流してください!!

しばらくVisualStudioから離れているうちにコード解析ができるようになってた(知らんかっただけかも...)

では、いざ計算!!!(ででん!!)

とりあえず保守容易性インデックスは80オーバーで安全基準は満たせてそう(ーー;)

でも、これを見てインデックスが低いソース見るとやっぱり難解だったりいらない変数を見つけられた!!!

自分が関わってない箇所でも、怪しい個所が丸わかりですね!!

Visual Studioやりおる...

ただね、あんまりなソースだと直す気にならないよね、動いてるしOKとか思ってしまう(・・;)

コードメトリックスも一つの基準にしようと思う今日この頃でした。

以下は、自分が師匠に教わったコードの書き方
1. メソッドを定義する際には戻り値を設定しろ
2. 1メソッドは100行以下にする
3. ifを重ねるな!!(3回ぐらいまでなら可)
4. コメントを丁寧に!!!
5. スーパークラスを活用せよ

それぞれコードの品質に直結するので甘く見てはいけない...

1.メソッドを定義する際には戻り値を設定しろ

師、曰く、「voidのメソッドほど設計が難しい」とのことでした。
メソッドは動作な訳ですから、その動作の結果を返さないというのはかなり稀であるといっていました。
つまるところメソッドを呼び出して結果をが帰ってこないと何がどうなったかわからないのである。

2. 1メソッドは100行以下にする

師、曰く、「画面内にメソッドが収まらないと読む気にならない」とのことでした。
ぶっちゃけ、仕事なんだから読めよ...と思いましたが、確かに長すぎるのはだめです。
なので、自分は100行を目安にメソッドをわけわけするようにしてます。
でも、メソッド切りすぎると今度は流れを追うのが大変なので、細分化はほどほどにしましょう...(・・;)

3. ifを重ねるな!!(3回ぐらいまでなら可)

師、曰く、「ifで階層を増やすならreturnで返せ」とのことでした。
try catchを含めて3回までだそうです!!階層をつくるなら条件を満たさない場合はreturnすればいいそうです。
括弧の分ソースも減るので一石二鳥です!!!

4. コメントを丁寧に!!!

師、曰く、「ソースとコメントは、1対1で!!!」とのことでした。
なんか調味料の分量のようですが、パッと見で処理を把握できるぐらい丁寧にコメントしろっていってました!!
しかも、コメント含めて100行いないですから(-"-)
MENDOKUSAI!!!

5.スーパークラスを活用せよ

師、曰く、「吸収できる処理は基本クラスに書け」とのことでした。
画面が複数あるようなシステムですと、別画面でも同様の処理を使用する可能性があるので、基本クラスを定義しておくように
とのことでした。(後から適用するびのはしんどいし、影響範囲が大きいので...)

以上が師匠から伝授された内容です。
他にもこまごま言ってましたが、理にかなってなかったり無茶苦茶だったりで聞き流しもしたのでこんなものです。

今は師匠とは一緒に仕事してないですが、いまだに教えは大切にしています。
そして、師匠から学んだ一番大事なことは、「年長者の意見ほどめんどくさいものはない。」です。
なかなか理不尽だったり頭が固くなってしまうようで、自分の考えが一番と考えている人が多いこの業界ですが
うまく立ち回れる人だけが生き残れるのでした。( ^^) _U~~

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away