Search for:
  • ブログ
    • IT・プログラミング
    • デジタルマーケティング
    • 起業・スタートアップ
    • 自由気ままな移住と生活&働き方
うずらのヤドリギ(旧Uzublo) - 海外移住して起業した自由人エンジニアのブログ
うずらのヤドリギ - 海外移住して起業した自由人エンジニアのブログ
  • ブログ
    • IT・プログラミング
    • デジタルマーケティング
    • 起業・スタートアップ
    • 自由気ままな移住と生活&働き方

Blog

プログラミングの学び方(6) – 読みやすいコードとは?

access_time2019年4月3日
perm_identity Posted by Hisashi
folder_open プログラミング学習

前回は、プログラミングの学び方(5)で、実際にプログラムを書く際に、知っておいたほうがよいポイントと原則論についてお伝えした。
今回は、実際にプログラムを書く際に重要な、「読みやすいソースコードの書き方」についてお伝えする。

読みやすいコード1:統一性

ソースコードが読みやすいといわれるプログラマの共通点の1つに、「統一性」がある。
例えば、

  • 変数名や関数名、クラス名の命名規則が統一化されている
  • 関数の組み立て方、処理のフローの組み立て方が統一化されている

と言った形で、読み手からした際に、読み進めていく中で変数名や関数名からある程度処理の内容を類推できるのが、読みやすいコードと言える。
特に変数においては、

$test = 1; // 何のテストだかわからない。
$testForPrice = 1; // 価格に関するテストだと分かる。

のように、ぱっと見で何の変数だかわからないと、長い関数になればなるほどその変数の値の動きを追うのに、非常に労力を要してしまう。
できるだけ、読み手がその処理を類推しやすいように、ソースコードには「統一性」を持たせたほうが良い。
(あとで自分自身が読み返した時にも読みやすくなるので、修正しやすいという利点もある)

読みやすいコード2:変数を使う範囲(スコープ)をできるだけ縮める

次に、変数の使い方で重要なのが、

変数を使う範囲(スコープ)をできるだけ縮める

ということだ。もっとかみ砕いていうと、変数の出現箇所をできるだけ減らして、数行追うだけで変数の動きがわかるようにするとよい。
特にJavascriptやPHPのグローバル変数は要注意だ。
グローバル変数は、一見便利に見えるが、変数の中身がいつ書き換えられるか読みずらいので、下手に変数に値を入れてしまうと、想定外の動きを生んでしまうことがある。
Wordpressの様にグローバル変数を多用しているパッケージをカスタマイズする場合は、できるだけグローバル変数に触らないほうが良いだろう笑

読みやすいコード3:変数は一度だけ書き込む

さらに、変数の取り扱いに関してのベストプラクティスの1つは、

変数は一度だけ書き込む

ということだ。逆に言えば、変数に何度も値を入れない、と読み替えることもできる。
例えば、

$hoge = getHoge(1);
echo $hoge;
$hoge = getHoge(2);
echo $hoge;
$hoge = getHoge(3);
echo $hoge;
$hoge = getHoge(4);
echo $hoge;
$hoge = getHoge(5);
echo $hoge;

と言ったように、一度宣言した変数を、型や種類が一緒だからといって何度も使うのはできるだけ避けるべきだ。
先ほどのグローバル変数と同じように、変数の中身がいつ書き換えられるか読みずらいからだ。

最後に

ここまで、読みやすいコードについて解説してきた。実際に読みやすいコードを書けるようになるには、何度も書いてソースレビューをしてもらい、徐々にうまくなっていくしかない。
これからプログラマを目指す方やプログラミングスキルを上達させたい人は、ぜひ上記のことを思い返しながら、実際に手を動かしてプログラミングすることをおすすめする。

関連

Tags: デザインパターンプログラミングリーダブルコード
Newer 【エンジニア向け】堀江貴文氏「電話してくる人とは仕事するな」はエンジニアにとって重要である
Older 【エンジニア向け】百害あって一利なし。SELinuxの無効化のススメ
プロフィール

Hisashi

インフラメインのIT屋。一応某社Founder & Director & CEO。現在は時間場所に依存しない悠々自適な引きこもり生活を実現。
 
>>> 詳しいプロフィールはこちら

★Twitter☆
@freelife_man007

★LINE☆
友だち追加

Search for:
カテゴリから探す
  • ブログ
    • IT・プログラミング
      • AWS(Amazon Web Service)
      • ITインフラ・ネットワーク
      • Laravel(PHP)
      • Wordpress
      • デジタルマーケティング
      • プログラミング学習
    • 会社設立
    • 政治・社会
    • 自由気ままな移住と生活&働き方
    • 起業・スタートアップ
タグから探す
5G Amazon LightSail Amazon Web Service Instagram ITリテラシー PDCA PHP SEO SNS Web Webマーケティング Wordpress きっかけ アフィリエイト インフルエンサー インフルエンサーマーケティング エンジニア カリブ キャッシュフロー キャリア キラキラ起業女子 クアラルンプール コンテンツマーケティング コンバージョン システムエンジニア セキュリティ ソースコード デザインパターン ノマドワーカー ノービザでいける国 ビザ(査証) フリーランス フルスタックエンジニア プログラミング プログラミング学習 マレーシア マレーシア移住 リモートワーク 仕事の自由 場所の自由 時間の自由 海外移住 物販 独立 起業
Menu
  • プロフィール
  • プライバシーポリシ
  • 免責事項
About me

日本と東南アジアを往来しながら、
プログラミングしたり、
ネットワーク構築したり、
AWSをもてあそんでいます。

ブログは、気が向いたら更新。
晴耕雨読の生活を楽しんでいます。

オンラインサロンも立ち上げる予定なので、興味のある方は是非のぞいてみてください。

Ads
Twitter
Tweets by freelife_man007
Uzula Business All Rights Reserved.
keyboard_arrow_up