フリーランスエンジニアの情報サイト

スリーネクスト

プログラマ 開発・基盤

理解しやすいプログラミングコードを書く技術

投稿日:2019年1月6日 更新日:

概要

複数人でのプロジェクトでは相手のプログラミングを見ることが多くあります。
そして、他の人が作ったコードに対して改修をする必要が出てきます。

理解しにくいコードでは相手に負荷をかけるので
プログラミングをするときは わかりやすいコードを記載する必要があリます。

もし、適当に書いてわかりずらいコードになってしまった場合、
自分で何を書いたのすらわからなくなるだけでなく何をどのように改修するのか理解するのが困難になります。

そのために理解しやすいコードを書く必要があり、それは生まれ持ったものではなく努力によって鍛えてできる技術なのです。

最近のチーム開発はコードレビューという文化があり、このプログラミングは今のプロジェクトに統一した書き方なのか
しっかりと動くのかどうかお互いチェックします。

そのときに、理解しずらく、複雑なコードは他の人のコードレビューを受けると通らない
一昔前はとりあえずプログラミングコードは動いたら OKの時代もありましたが
今は周りの目が光っているので悪いコードは書けません

コードを書くときは理解しやすくきれいな良いコードを目指しましょう
コードを書くときに注意していることは大まかに以下の通りです。

理解しやすいコードの定義

  • 変数名はわかりやすく・変数のスコープを縮める
  • コードをネストさせすぎない
  • 不要な機能は全て削除
  • 同じ機能をなんども書かない
  • コメントはわかりやすく

初心者がわかりやすいコードを書きたいとき意識する場合はこの本を読んだら十分理解できます。
プログラミング言語の本は古いと価値が無くなりますがこの本は何年経っても十分に価値の高い本です。
この本で体系的にわかりやすいコードを理解できます。

変数名はわかりやすく・変数のスコープを縮める

変数名はわかりやすく書くことがいいです。なぜならコメントを書かなくても何の変数名かわかるからです。
あまり長すぎる変数名は問題ですが多少の長さは問題ないと思います。 20文字までには納めたいです。

あと変数のスコープを縮めることについてですが何でもグローバル変数にすることと変数の管理が難しく、
同じ名前の変数名をつけると何がどう動くのか管理できなくなります。

コードをネストさせすぎない

If文の中にfor文さらにその中にif文を入れる等深くすると何が何だかわからないコードができてしまいます。
ネストしすぎるのであれば、別の関数にするとか対応をする必要があります。

不要な機能は全て削除(YAGNI)

プログラミングをしている最中に不要なコードはできることはあります。
そのコードをもったいないからと思ってコメントにして
残している人もいるのですが、返って理解が困難なものになります。
他の人が見たら今後使うのかどうか判断できなくなるので邪魔なコードです。

同じ機能をなんども書かない(DRY)

似たコードを書くことがあります。その際は手間でも関数にまとめて繰り返し使うことをお勧めします。
同じ機能を何度も書くと大規模なコードであればあるほど複雑化します。

コメントはわかりやすく

ブログ作成者の私もたまにやりますが、コメントの内容が不明で自分で見返してもわからないということがあります。
簡潔にわかりやすくすることを心がけましょう。

私が何度も読んだ良書であるリーダブルコードはさらに詳しく載っていますので読んでみるのもいいかもしれないです。

徹底的に可読性、保守性の高いプログラミングを体系的取り組みことができます。
厳しいコードレビュー環境に置きたい人はこの本を読んでコードを研究してください。

プリンシプル オブ プログラミングは
どのようにプログラミングを書くかよりも、いかに周りとコミュケーションをとるためにどのような思想で書くかということが書かれています。
システム開発外注先とコミュニケーションをとるときに大切なこと
プロジェクト管理に役立つ考え方やプログラミングを人に教えるためのことが1冊でまとめられています。

また、独学でプログラミングを覚えた、現場実践でのルールが教われない
教えてもらえないという方は、参考して良いと思います。

コードコンプリートについてはコーディングに入る前の準備から、心構え、周囲の人との調整まで幅広い観点で書かれています。
プログラマだけでなく、設計とコーディングを兼務するSEにはかなり重要な本となるでしょう。

リーダブルコードもかなりの名書ですがコードコンプリートもかなりの名書です

[関連記事] プログラマーの現状と今後の傾向

スポンサーリンク

にほんブログ村 IT技術ブログ IT技術メモへ にほんブログ村 IT技術ブログ Webエンジニアへ にほんブログ村 投資ブログ リップルへ

-プログラマ, 開発・基盤

Copyright© スリーネクスト , 2019 All Rights Reserved.