DebTab

  • ホーム
  • DevTabとは
  • 記事一覧
    • きたえる
    • かえる
    • つくる
    • みちびく
    • たばねる
    • つたえる
かんたんログイン
Githubでログイン
Githubアカウントでかんたんにログインして、DevTabをもっと便利に使おう。

DebTab成長しつづけるデベロッパーのための情報タブロイド

DebTab

ログイン

検索 検索

リファクタリング第二版で追加された「不吉な臭い」

写真前川 博志

きたえる

つくる

  • #アジャイル開発

2018.12.17

ポイントポイント

0

本記事は、ギルドワークスAdventCalendar 17日目の記事です。

とうとうリファクタリング第二版が発売です!

先月末に、とうとうリファクタリングの第二版が、原著にて発売されました! もともと1999年に発売された本ですから、およそ20年ぶりの改版となります。

日本でもAmazonで買えます!

現状刊行されているのは英語ですが、シンプルな表現が多いのと、コード例も多いので素直に読めるのではないのでしょうか。 また、おそらく2019年のはじめには、日本語訳版もでるのではないでしょうか。

というわけで、中身をちょっとだけ先取りしてみましょう。

第二版で増えた「不吉な臭い」

気になるのは皆さん、第一版との差分ですよね。そのなかでも、本書の根幹をなすのが、「コードの不吉な臭い(Code Smells)」です。そこでここでは、「臭い」に着目して、差分を見てみたいと思います。

追加された不吉な臭い①: 不可思議な名前(Mysterious Name)

まず最初に追加されたのは、「不可思議な名前」です。 つかされたばかりか、これは全ての不吉な臭いに先立つものとして追加されています。

そう、名前付けは「コンピューター科学での二大難問」のひとつなのです。

追加された不吉な臭い②: グローバルデータ

グローバルデータとは、プログラムのどこからでもアクセスでき、変えられるものです。 グローバル変数はもちろんそうですが、リファクタリングではシングルトンやクラス変数もグローバルデータとして挙げられています。

追加された不吉な臭い③: 変更可能なデータ

データの変更は基本的にはさけるべきこととして明示されるようになりました。 データが変更できるということは、それ変更を知らずにのほほんと生きているオブジェクトがある、ということになります。 これは非常に危険な兆候、ということですね。

追加された不吉な臭い④: ループ

第二版での大きな変更のポイントが個々ではないでしょうか。 ループというのはfor文だけではなく、 Range Based For や foreach のような、安全性の高いループも対象になっています。 長い間、プログラムの中心を担ってきたループ構文ですが、関数オブジェクトがほとんどの言語で簡単に使えるようになった今、その役目を終えようとしているのでしょう。

このように、モダンな言語向けにアップデートされたリファクタリングの第二版、冬休みのお供にぜひ読んでみてはいかがでしょうか。

共感した

ポイントポイント

0

取り消す

この記事に共感したら、何度でも押してこの記事のポイントをみんなでアップしよう。

自分の感想を残す

この感想は、サイトに公開されることはなく自分にしか見えません。自分の考えのログを残すために感じたことを登録し、のこしておきましょう。あとで振り返ったときに、あのとき自分はこう考えていたのかということを知ることにより、あなたの成長へとつながります。

Githubでログイン

Githubアカウントでかんたんにログインして、DevTabをもっと便利に使おう。

  • ひとつ前の記事

    共有・表明・ふりかえりで広げる巻き込みの輪

  • ひとつ後の記事

    東京工業大学 Programming Boot Camp を開催しました

この記事もどうですか?

関西ITベンチャーの憂鬱と魅力

関西のエンジニア不足 大手IT企業の多くが首都圏に拠点を構えています。その結果、エンジニアとしての就…

きたえる

2016.04.22

ポイント
0

AWS Amplify を利用して最速で会員登録をつくる

この記事は、ギルドワークス Advent Calendar の11日目の記事です。 Amplifyと…

つくる

2018.12.11

ポイント
0

2018年に参照したVue.js関係のリンク集

2018年お世話になったVue.jsリンク集 これはギルドワークスイベントカレンダー 4日目の記事と…

つくる

2018.12.04

ポイント
4

シェア
  • Twitter
  • このエントリーをはてなブックマークに追加
  • Google Plus

ログインして
ブックマーク

  • Twitter
  • このエントリーをはてなブックマークに追加
  • Google Plus
  • ログイン
LINE@

新しい記事が出たときや、注目の記事などを
定期的にLINEでお知らせしていきます

LINEで登録

LINEイメージ

DevTab
成長しつづけるデベロッパーのための情報タブロイド

株式会社ギルドワークス
https://guildworks.jp
  • プライバシーポリシー
  • お問い合わせ

Copyright © GuildWorks Inc. All Rights Reserved.

ページのトップへ