リファクタリング プログラミング

メソッドを切り出すメリット。リーダブルなコードで行こう!

投稿日:

概要

大きなクラス、長いメソッドを書いたり読んだりしていて、ロジックが追えなくなってきています。
私の周りではすごく理解が良く、長い処理でも追っていける人がいますが私はそうではありません。

私はごくごく短いロジック、意図が明確な名称でないとちゃんと頭に入りません。
読み返してももう一回理解し直さなくてはならなかったりとかで、結構つらいものがあります。

そんな私が自分自身に対して、もっと短くて、もっとわかり易くて、もっと美しいコードを書きたいという思いと、周りの人にもそのようにしてほしい(自己都合)という願いで執筆しました。
 

実装例

リーダブルでないコード

Q. さて、このコードは何を行っているでしょうか?

A. エラーがある場合は全てを表示する。

簡単なコードなので見てすぐわかる人にはわかると思いますが、
見にくく(醜く)ないですか?

私は見にくいです。
それに、視覚的に頭に入ってきません。
これをリーダブルに変えます。
 

リーダブルなコード

 
<改善ポイント>

  • 各変数で正確な意味が表現されている。
  • ロジックがメソッド名で明確に表現されている。
  • ifのネストが無くなり、判定ロジックが独立するようになった。(メンテナンスしやすい!)
  • エラーを追加する列の位置を合わせたので、見やすくなっている。

 
実際、現場で自分またはレビュー対象のコードをリーダブルにしようと思ったら、これくらいの単位から行うものなんじゃないかと思う。

リーダブルであることは「文化」なので、読みにくいコードを書いているプロジェクトや会社ではそもそもリーダブルにしようとすることを多くの人が諦めているだろうと思っています。

でも諦めないでほしい!
まずは自分から、ちょっとでも読みやすいコードを書こう!
ソースコードだけじゃなく、設計書もリーダブルにしていこう!
理解しやすいとコミュニケーションロスがなくなって、仕様が明確になって、手戻りが減る!
良いこと尽くめ!!

私も今のプロジェクトで悪戦苦闘しながら、少しでもリーダブルになる努力を続けています。
 

まとめ

  • 変数やメソッド名で意図を明確に表現するとわかり易い。
  • 列を揃えると、思いのほか読みやすい!
  • ifをネストしないのは読みやすさの定番。
  • 自分の状況がどうであれ、リーダブルに行こう!

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-リファクタリング, プログラミング
-,

執筆者:


comment

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

CAPTCHA


関連記事

junit, テスト, junit5

【Junit5】アノテーションの意味をざっくりと解説

Junit5のアノテーションについてざっくりと理解するための記事です。 なんか見たことあるけど、要するに何に使うやつなんだっけ? を軽く思い出すためにあります。 テストを実行 @Test テストメソッ …

SQL, Mybatis, OR, O/R

【MyBatis】IN句にパラメータを設定する方法

SpringアプリケーションにおいてMybatisを使用する状況を想定した実装例です。 期待値 IN句に複数のパラメータが設定されたSQL文が発行されること [crayon-647bace69acb0 …

【Java】MapをStreamで処理する方法 7選!

概要 【Java】ListをStreamで処理する方法 7選! 【Java】SetをStreamで処理する方法 7選! に続き、Map編です。 Mapをstreamで扱う場合、entrySetまたはK …

正規表現で複数の箇所を入れ替える方法

複数の特定の箇所を入れ替えるテクニックです。 確認環境 Sakuraエディタ 置換方法 ここでは例として、:区切りの前後の文字列を入れ替えてみます。 置換前データ メニュー:AAA メニュー:BBB …

【Javaポートフォリオ】なぜスクレイピングツールがおすすめか?

なぜスクレイピングツールか? ・スキルに需要がある ・総合的なスキルが身に付く ・個人開発に応用できる スキルに需要がある 執筆時点(2021年3月28日)時点で、ランサーズに1643件の発注がありま …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。