skillup

技術ブログ

プログラミング全般

コードの分割

投稿日:

今回はリーダブルコードの8章。コードの分割について。

ポイントとしては1行に情報を詰め込みすぎているような場合は分割して、意味がわかりやすい区切りにまとめよう、といったことでしょうか。つまりは「困難は分割せよ」ということでしょう。

先日のエントリーでも書いたのですが、自分は短く書くことにこだわりすぎて情報を詰め込む癖がありましたね。例としては無理やり三項演算子を書いたりとか。

もちろん短く書くことは大切ですが、それはあくまで「読みやすい」「意図がわかりやすい」「頭に負担をかけない」ことが大前提となります。もし短く書きすぎることによって逆に読みにくくなるのであれば本末転倒ですので、逆に分割して読みやすくする必要があるでしょう。

変数への分割化・要約化

例えば下記のコードは一行にちょっと情報が詰まっています。

そんなとき下記のように変数を使ってコードを分割することもできます。

ただこの感覚は個人差があると思います。上のコードでも問題ない、読みにくくない、チームの人間も大体上のコードで書いているというのであれば問題ないでしょう。

要は読みやすい情報量に分割する、ということだと思います。

&& ||の反転

数学でいうドモルガンの法則の応用 ( a! && b!) → !( a & b )など。これはif文で複雑な条件分岐があったときに少しでもわかりやすい処理に書き換えるときの工夫でしょう。

1行に処理を詰め込みすぎない

冒頭で書いていたことですが、1行の中に処理を詰め込みすぎるとかえってわかりにくくなるので、読みやすい、理解しやすい量に分割しましょう。短く書くこと自体を目的にしないこと。

ロジックが複雑な場合は別解を検討する

条件分岐の中に複雑な式が3,4入るようならば別のロジックを使えないか検討しましょう。複雑になればなるほどバグの可能性も大きくなります。

-プログラミング全般
-

執筆者:


comment

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

関連記事

no image

オブジェクト指向 クラスの設計と業務ロジックの整理

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日は主にクラスの作り方について。 Contents1 クラス設計と業務ロジック1.1 要点1.2 感想 クラス設計と業務ロジック …

no image

オブジェクト指向について その2

前回のエントリーのように、データとロジックを一体で考えるのは、処理状の有効性のみならず、よりユーザー側に近い処理をかくということにもつながります。 日付の問題に関してもintやshortよりはLoca …

no image

オブジェクト指向 プレゼンテーション層

本日も引き続き「現場で役立つシステム設計の原則」を読み進めてます。 本日はプレゼンテーション層、いわゆるMVCのViewにあたる部分。 Contents1 プレゼンテーション層の考え方1.1 要点1. …

no image

テストコードを読みやすくする

リーダブルコードも最終章に近づいてきましたね。 今回はテストコードについて。 以前のプロジェクトではテストコードを書いていたのですが、今携わっているプロジェクトでは書いてないです・・・ テストを書く目 …

no image

エラーレポーティングサービス Sentryについて

リリースした後、運用段階に入ると定期的にバグ報告が上がってきます。 本来はリリース前に研修テストをすべきなんですが、そんな余裕ないことも多い(汗) で、そんな時に大事なのが エラーを気づけること 対処 …