スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Prev.    Category    Next 

良いコードを書くためには

今回は良いコードを書くための私の考え方を書いてみたいと思います。

はじめの一歩

まず、世の中のプログラマーのうち、ちゃんとしたコードを書く人はほんの一握りで、 大半は設計を含めたコーディング、プログラミングが下手くそです。
いろいろ反論はあると思います。しかし、ソクラテスの無知の知のように
  "自分はコーディングが下手なのではないか"
と疑うことが良いコードを書くための第一歩です。

良いコードとは

では、その"良いコード"とは、何でしょうか ?

良いコードの答え

これは文章やプレゼンといったものと同じです。 良い文章、下手な文章というものは確かに存在します。しかし、何をもって良い文章とするかは難しいところです。
同様に "良いコードとは何か" も、人それぞれで明確な答えは出ません。


良いコードについて、 『達人プログラマー』のような書籍や DRY のように一般的に言われていることがあります。
こういった"権威"や"みんながいうこと"に黙って従うのも悪いとは思いません。何もしないよりはいいでしょう。 しかし、細かいところまで応用が効きにくいです。


良いコードの答えは人それぞれですが、自分なりの考えを持つ ことが大事だと私は思います。

良いコードを求める

良いコードを自分の基準で決めるので、"そりゃ、全部良いコードになるだろ" と思われるかも知れません。 しかし、これがなかなか思うようには行きません。


"時間がないから、とりあえずの修正で" とか "元が下手くそすぎるプログラムの修正だから" などいろいろ理由を付けて妥協してしまいがちです。 しかし、それも自分の下手なコードと認めなければなりません。
そうすれば、自分で自分のコードを恥ずかしいと感じるので、 どんな時でもなるべく良いコードにする努力をするようになります。

また、人の考え方は日々変わります。
そのため、書いている時は "これがベスト" と思っても、 しばらくしてみると "下手くそだな" と思うことは往々にしてあります。
これは成長と捉えることもできます。 逆にそう思うことが全く無い方が問題です。

良いコードかどうか判断できることが良いコードを書くことにつながります。
  "良いコードとは何か?"、 "自分のコードが良いコードになっているか?" を考えて書く
ということ自体が良いコードを書くための道だと思います。

ひとりよがり にならないために

自分の考えをしっかり持つということは、得てして ひとりよがり にも陥りやすいです。
このために書籍やプログラミング原則などの情報にアンテナを立て取り入れていくことも重要です。
ただし、そこで鵜呑みにするのではなく、ちゃんと自分の考えとして取り入れる必要があります。

情報について考える

最初に聞いたときにはなんとも思わなかったけど、しばらくして "ほんとにそうだな" と思った言葉が私にはあります。 それは高校の英語の授業に出てきた次の言葉です。
Books are to the mind what food is to the body.
本と精神の関係は、食物と肉体の関係と同じだ。

食物を食べるだけで運動しなければ、余分な脂肪になります。
また、食物をちゃんと食べずに運動だけしても、体は健康的に育ちません。

この運動に対応するのが精神(頭)にとっては "考える"、"実践する" ことだと思います。
ただ本を読んだだけでは、それは知識です。 それに対していろいろ考えることによって、身についた知恵となります。

また、人が日常で触れるものは狭い世界です。それだけでは誤った考えに行き着く可能性が高いです。 本では古今東西のいろいろなものに触れることができます。 それらについて考えることはより良く、深い知恵につながります。

本を読むこと自体も頭の運動になるとは思います。 ただ、昔の言葉なので "本" ですが、今ならばテレビ、インターネットなども情報源と捉えることができるでしょう。

取り入れるときの方法

ただ、 "情報について考えるといってもどうすればいいのか" という人もいるかもしれません。
そこで、 私がよくやる方法を一つ紹介します。


それは、
  本や常識に対して、一度反対の立場をとる
という方法です。 一度反論し、今度は自分なりに元の情報の擁護を行います。 自分の頭の中での仮想的な論戦です。

反対の立場で、そちらの方がいいと思えば、それはそのまま自分の考えです。
擁護した結果、やっぱり元の方がいいとなれば、それは取り入れます。 そのまま受け入れるよりも、元の情報はより自分のものになっているでしょう。

コードを読む

よいコードを書くためには、もう一つ いろんなコードを読む ことも大切です。

読書の場合

コードと文章の読み書きには共通する多くの点があると思います。
文章の読解力をあげるために、よく言われている(私の考えでもある)方法があります。
  • 乱読 : いろんな本をざっと読んでいく
  • 精読 : 少数のものをじっくりと読む
  • 自分でも書く
乱読と精読は両方ともやることが大事です。 基本的に乱読し、気になるものを精読します。

コードの場合

コードを読む力、良いコードかどうか判断する力をあげる方法も文章と同じだと思います。

プログラマーであれば、自分で書くということは当然行います。
精読に関しても、自分の作っているプログラムやその周辺のコードをじっくり読むことはやるでしょう。


ここで大切なのは乱読です。これは先ほどの話にも通じます
自分の仕事に関連する狭い世界でのみコードを読んでいると、 その部署特有の悪習などを普通と思い、いびつな成長をすることがあります。
特に周りにコーディングの上手い人が一人もいない場合は最悪です。

今はオープンソースで公開されるものも多く、読むコードには事欠きません。
"この機能はどうやって実装しているのだろう"とか、"自分のプログラムに取り入れたい"とか思った時は、 積極的に読んでいくことをお勧めします。

多言語のコードを読む

自分が普段使う言語以外も勉強し、様々な言語のコードを見るともっと良いと思います。

英語の学習は、単に英語を身に付けることだけが目的ではありません。英語の文化に触れ、日本語以外の思考方法を学ぶことも考えを広げる勉強です。
同じことはプログラミング言語にも言えます。

C 言語を使っている場合でも、オブジェクト指向の考え方は役に立ちます。 同じように C++, C# などを使っている場合も関数型プログラミングのスタイルを知っていることは有益でしょう。

"日常使っている言葉は人の思考方法に影響を与える"と言われています。
プログラミングでも、より多くの言語を使えるほど、 より柔軟な思考ができ、より良い構成、問題の解決策を得ることができると私は思います。

7つの言語 7つの世界7つの言語 7つの世界
(2011/07/23)
Bruce A. Tate

商品詳細を見る

まとめ

最後に今までの内容をまとめます。
  • まず、自分のコードが下手ではないか疑う
  • 自分なりの良いコードの基準を持つ
  • 書籍などの情報を自分の考えとして取り入れる
  • 自分の関連分野だけでなく、他言語を含め、様々なコードを読む


関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
28位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
4位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

07月 | 2017年08月 | 09月
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。