skillup

技術ブログ

プログラミング全般

コードの分割

投稿日:

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

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

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

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

変数への分割化・要約化

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

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

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

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

&& ||の反転

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

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

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

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

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

-プログラミング全般
-

執筆者:


comment

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

関連記事

no image

ログ対策(どのように情報を抽出するか)

現在、現場でテストをやってるんですが、やることは昔と変わらずテストデータ作り、ログ、エラーハンドリングになります。 3年近くまえに↓のような記事をかいてました。 ログの設計指針について テストデータ( …

no image

CIことはじめ

業務でJavaのテキスト変換ツールを作成。 プログラムよりもCIツールを使って他人の環境下で正常に稼動させるためにどうするかの調査に時間かかりましたね。 今回やりたかったことは下記の通りです。いわゆる …

no image

コーディングについての気づき

現在の現場でコーディング関連で勉強になっているポイントについてまとめてみようかと思います。 Contents1 自動化2 命名3 責務の分離4 その他 自動化 規約エラーなどなるべく自動化できるものは …

no image

Eclipseのシンタックスハイライト

先日PCがクラッシュした時にEclipseを入れなおしたんですが、普段あまり意識せずに使っていたのでhtmlのシンタックスハイライトをだすためだけに2時間ぐらい費やしました・・・自戒の意味も込めてメモ …

no image

気をつけたいトリガー系の処理など

実務でひやっとすることがあり、自分への戒めも込めてメモします。 Contents1 MySQLのcurrent_timestamp on update current_timestamp2 Larav …

アーカイブ