Help us understand the problem. What is going on with this article?

来年度から一緒に開発する君に意識してほしいこと。(『リーダブルコード』から)

More than 3 years have passed since last update.

有名な『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』( http://www.amazon.co.jp/リーダブルコード-―より良いコードを書くためのシンプルで実践的なテクニック-Theory-practice-Boswell/dp/4873115655 )をざっと読んで、一緒に開発する後輩に知っていてほしいと思ったことをまとめてみる。

(この本では、Python, JS, Java, C++をサンプルコードとして取り上げている。)

原則

「コードは、理解しやすくなければならない」

かっこいい・短い ≠ わかりやすい・よみやすい

表面的な整理

  • 変数名・関数名に情報をきっちり詰め込む
  • 変数の宣言を意味のあるまとまりに分けて、まとまりごとにコメントをつける
  • 書くべきでは「ない」コメント(自明な内容)は、意識的に書かない
  • コードを書いている時の「自分の考え」「その結論に至った理由」を明示する
  • ロジックの本質と関係ない部分は、しっかりとそれを示す
  • 絶対に出る質問には、コメントで答えておく
  • 複雑な関数では、実例を用いてinput/outputについてイメージを与える
  • プログラム上の意味ではなく、機能(何をしているのか)を説明する

ロジックの単純化

  • 巨大なものは、食べやすい(読むときに消化しやすい)サイズに分割
  • 変数は、イミュータブルにする
  • 無駄な変数を置かない
  • 本質的なロジックと、関係のない下位処理を区別し、分離する
  • 理想と違うインターフェイスに妥協せずラッパーする
  • タスクを書き出し整理して、複数の処理を同時にいろいろ混ぜない
  • 変数のスコープは小さく保つ

説明

  • その部分でなにをしているのか、一度声に出して説明してみる
  • 説明に使うキーワードに注目する
  • 説明してみて、もう一度、機能を整理する

もちろん、プログラミングの本ではあるけれども、プレゼンテーションのTipsにもかなり繋がる部分がある(気がする)。
結局は、相手の理解時間短縮のために、なにができるかを考えることなんだと思う。

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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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