*

初心者が読みやすいコードを書くときに気をつけたい4つのポイント

本日のお題は、「読みやすいコードの書き方」についてです。

プログラミングをやりたての頃は機能を実装するのに手いっぱいでコードが読みやすいか、どうかなんてところまで頭が回らないと思います。

ただ少しずつプログラムに慣れてくると「コードが読みやすいか」はめっちゃ大事です。

これは決して自己満足的なことではなくて、チームで仕事をする場合でも自分一人でも大切な考え方です。

真面目にエンジニアの採用をしている会社では採用の時にコードの提出を求めてくることもあります。

専門的なことをいうといろいろとありますが、PHPをやり始めの方でも意識できるような点をお伝えしますね。

初心者がコードを書くときに気を付けたい4つのポイント

わかりやすい変数名をつけよう

これは変数や関数の名前が具体的でわかりやすいものになっているか、ということですね。

例えばテストの点を扱うとき、変数名が$aでは、なにを指しているかわかりません。

その場合$scoreのほうが適切でしょう。

「そんなことでいちいち悩むの・・?」と思うかもしれませんが、複雑な処理を書いていると似たような変数がいっぱい出てくるのでこの命名が難しいんですよね。

テストの点数といっても、最高点、最低点、平均点、などが出てくる場合は当然scoreでは識別できません。best_score,worst_score,average_scoreなどとする必要があります。

そのほか一時的な点数などもでてくるともっともっと命名は難しくなります。私もプログラミングをやって4年たちますが、いまだに命名にはは頭を悩ませますね。

最初のうちは迷ったら少し長めにするぐらいがいいでしょう。

そのほうが変数をしっかりと記述できるからです。

これは関数も同じで、何の処理をしているかが名称だけではっきりわかる必要があります。

例えばgetDataのような関数名では何のデータを取得するかわからないですよね。もう少し具体的に名称を付ける必要があります。

一般的には関数はほとんどが動詞+目的語です。

変数名や関数名でどんな単語が使われるか、具体的に知りたい場合はちょっと難しいですが下記のようなリンクもおすすめです。

http://qiita.com/KeithYokoma/items/2193cf79ba76563e3db6

1つのメソッドを短くしよう(目安として30行以内)

見にくいプログラムの筆頭は1つのメソッドがやたら長いことです。

  • 長いと扱う変数がふえ、名前が衝突したり間違える可能性が上がる
  • 細かく分割できず、修正箇所がふえる
  • 3段以上のインデントが増え、何をやっているのか把握するのが困難

など一般的に言ってデメリットが非常に多いです。
専門用語で保守性が低いコードといわれます。

そういったことを防ぐためにもソースはできる限り短く書きましょう

短くかくことによって処理の1つ1つを部品化でき、修正が楽になることが多いです。

私も実務でプログラムを書くときはほとんどが30行以内で、半分以上は15行以内です。

短くすることが目的ではなく、読みやすく分かりやすい、そして修正に強いコードを書こうとおもったら必然的にそうなります。

行数というのはあくまで目安で、ひとまとまりの処理で区切るようにしています。

最初はどうしても長いコードを書いてしまうと思いますが、なれてきたら1つ1つの処理で区切り、できるだけ短いコードを書くようにしましょう。

できるだけ再利用できる書き方を考えよう

プログラムをやっているといたるところで似たような処理を書くことに気が付くと思います。

例えばこちらのレクチャーでは最初ということもあり、ファイルに書き出したり、読み込む処理などを1つのソースに書いています。

しかし、他の場所でもファイルに書き出したり、読み込んだ処理があるとすればファイル読み書きの処理は1か所にまとめてしまってそこから読み出したり、書き込んだほうが効率的でしょう。

似たような処理があればできるだけ、まとめて、共通化するようにしてみましょう。

慣れないうちはとりあえずコードを書いてみて、同じような処理を2か所以上に書いてしまったら、「どうにかしてこれをまとめられないかな?」「どこかで共通化できないかな?」という疑問をもつようにしましょう。

またこのように共通化しよう、と思うと必然的にコードが短くなってきます

そうやってコードを修正していくことがスキルアップにつながります。

コメントを積極的にかこう

ある程度慣れてきたプログラマの間ではコメントは書かないほうがいい(書かなくてもわかるソースを書くように努力すべし)という方もいますが、初心者のうちは積極的に書いたほうがいいでしょう。

最初のほうはコードを書く要領がなかなかつかめないので、いきなり読みやすいコードを書くことはなかなかできないと思います。

その場合でもコメントがあれば何がかいてあるかわかりますので、「読みやすいコード」になりますし、実務では他人の役に立ちます。

自分が書いたソースでも1週間ぐらいたつと何を書こうとしていたか覚えていることは稀でしす。プログラマにとっては一週間前の自分は他人です(笑)

プログラミングは機械に命令を伝えるために人間と機械の橋渡しをするために開発された言葉ですが、やはり普段話す言葉と比べればわかりやすさに限界があります。

それを補う意味でもコメントは積極的に書いたほうがいいでしょう。

まとめ

読みやすいコードを書くためのコツみたいなものを凝縮してお伝えしました。

初心者のうちはとにかく仕様を満たす処理を書くので手いっぱいかと思いますが、「わかりやすい変数名・関数名を付けよう」「この処理はこう分割したら修正がしやすいだろう」「もう少し短くしてみよう」など少しずつでもいいので心がけておくと、だんだんときれいなコードが書けるようになると思います。

参考図書

読みやすいコードを書くための参考書をお勧めしておきます。

あ、アフィリエイトリンクとかは貼ってないので安心して下さい(爆)

リーダブルコード

この分野では、聖典といわれている本ですね。

アマゾンのレビュー数も非常に高く、たしかにいい本ですが、オライリーの本らしく、難しいので、初心者の方はやめましょう(爆)

読みやすいコードが少しずつ書けるようになったかな・・と思った頃に読むといいでしょう。

良いコードを書く技術 -読みやすく保守しやすいプログラミング作法 

アマゾンでは内容が薄いと評価されていますが、プログラミングを勉強しはじめの初心者にとっては簡単ではないので、まずはこの本を少しずつ読み進めることをお勧めします。

読者を楽しませる面白さもあり、初心者にはちょうどいいかなという気がします。

Javaを題材にしていますが、ソースを理解できなくても読み進めることは可能です。

関連記事

あなたのPHPレベルを判定してみよう!未経験者限定スキル判定表

プログラムを勉強していると自分のレベルみたいなものが気になる方は多いでしょう。 私の場合も独学

記事を読む

PHPのメリット・デメリット

うちのブログで一番読まれている記事が「フレームワークのメリット・デメリット」ですね。 タイトル

記事を読む

オブジェクト指向 その2 「設計図」と「部品」

それではオブジェクト指向を具体的に解説していこうと思います。といっても、天才でない限り、初学者でいき

記事を読む

エラーメッセージで挫折

もうエラーメッセージで挫折しない! 4つのエラーメッセージ対処法

このブログで何回か書いたのですが、PHPに限らずプログラミングの独学はかなり難しいです。 その

記事を読む

プログラミング開発環境構築で挫折・・ wandboxを使ってみよう

本日はプログラミングの環境構築で挫折した方のために、前回の記事で紹介したwandboxというツールを

記事を読む

よく使う処理をまとめよう その2 (関数)

こんにちは。松本です。 最近の私の使命はダイエットです(爆)。 ダイエットはいろいろな方

記事を読む

エディタを使いこなそう

PHPでプログラミングを始めるためにはXAMPPのインストールともう一つエディタというソフトをそろえ

記事を読む

Java/PHP/Perl/Ruby/Python 主要Web系言語徹底比較

本日はWeb系で使われているプログラミング言語の比較をしてみようと思います。 Web系で使われ

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 その1

以前、お問い合わせフォームを作成しましたが、今回からは数回に分けて掲示板を作成していこうと思います。

記事を読む

PHPはなぜ簡単といわれるのか?

最近ではブラック企業と同じような意味合いでブラックバイトなんて言葉があるらしいですね。 ただ定

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

転職エージェントについて

さて、エンジニアとして転職を考えている人であれば転職エージェントを使っ

エンジニアが転職して年収を上げる方法を考えてみました。

えー前回の記事でも書きましたが、2020年2月現在転職活動中です。

2020年のご挨拶

今更ですが、明けましておめでとうございます。 2019年も2本し

自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

→もっと見る

  • follow us in feedly
PAGE TOP ↑