Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
More than 1 year has passed since last update.

はじめに

レガシーコード改善ガイドはレガシーコードを扱う上で良い本だが、用語集を含めいかんせん読みづらい。そこで用語集を作ってみた。

用語集

  • 編集して祈る:とりあえず実装してから天に品質を任せる。
  • 保護して変更する:変更対象のソースコードのテストコードを描いてからテストする。
  • テストハーネス:自律したテスト用コード
  • 擬装オブジェクト:協調クラスを擬装したもの。モックオブジェクトを大まかに捉えらたもの(要クラス図)
  • 接合部:ソースコードを直接編集できなくても振る舞いを帰れる場所。プリプロセッサ接合部、リンク接合部、オブジェクト接合の三つがある。
  • 許容点:上記の具体的な場所。
  • モックオブジェクト:それっぽく動くように作りこうた擬装オブジェクト
  • 単体テストハーネス:単体テストを行うためのソフトウェア。xUNITとか
  • スプラウトメソッド:既存のメソッド内に追加する新しいロジックをメソッドにする。
  • スプラウトクラス:既存のクラスに追加する新しい制御をクラスにする。
  • ラップメソッド:既存のメソッドを同じメソッド名でラップして修正コードを付け加える。
  • ラップクラス:既存のクラスを同じクラス名でラップして修正クラスを付け加える。
  • 影響スケッチ(171):
  • 割り込み点:他の部分と切り離してテストがかける場所。
  • 絞り込み点:影響スケッチの矢印が集まる場所。
  • 仕様化テスト:現状の動作を仕様として表現した単体テスト
  • 検出用変数:デグレを検知するために埋め込んだ(グローバル)変数
  • 機能スケッチ(268):
  • 試行リファクタリング:ソースコード理解するに、ローカルリポジトリで行うリファクタリング。リモートにコミットはしない。

改善後のクラス図

レガシーコード.png

スプラウトメソッド/クラスを追加した時のシーケンス図

スプラウトメソッド_クラス.png

ラップメソッド/クラスを追加した時のシーケンス図

ラップメソッド_クラス.png

2
Help us understand the problem. What is going on with this article?
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
KKKKKAAAAANNNNNMMMMMOOOOO
このアカウントで発信する内容は個人検証に基づくものであり、現在所属する会社の公式見解を示すものではありません。
creema
全国のつくり手とつかい手が Web 上で直接作品を売買できる、日本最大級のハンドメイドマーケットプレイス「Creema」の企画、開発、運営するスタートアップです。「本当にいいものが埋もれてしまうことのない、フェアで大規模な新しい経済圏をつくろう」を合言葉に、メンバー一丸となって、たのしくストイックに活動を行っています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?