Index: [Article Count Order] [Thread]

Date:  Sat, 29 Apr 2000 23:16:28 +0900
From:  Kaoru Hosokawa <khosokawa@....com>
Subject:  [XP-jp:00316] Refactoring Was: Re: 【 4.  Code Formatting  】 (案)
To:  extremeprogramming-jp@....jp (extremeprogramming-jp ML)
Message-Id:  <B5309200.1273%khosokawa@....com>
In-Reply-To:  <3909B74A.2EE2501F@....jp>
Posted:  Sat, 29 Apr 2000 23:16:17 +0900
X-Mail-Count: 00316

ホソカワです。

on 2000/04/29 0:58 AM, firo@....jp at firo@....jp wrote:

> 矢崎です。
> 
> 4.  Code Formattingの翻訳案です。
> 間違いのご指摘等お待ちしております。
> 

…

以下の refactoring 部分に興味があるのですが、Smalltalk が読めないので理解で
きません。どなたか Smalltalk のコードを Java か C++ に訳していただけないでしょ
うか?

> 今まで述べたようなルールを使った結果が、醜いコードになって
> しまったら、本当に必要なことは、メソッドをリファクタすることであ
> るという状況にきています。フォーマッティング・ルールに疑問を
> 抱かないように。コードに疑問を持つようにしましょう。以下はそ
> の例です。
> 
> removeStep
> | stepToRemove |
> stepToRemove := self list selection.
> stepToRemove isNil ifFalse: [stepToRemove isExecutable ifTrue:
> [self list remove: stepToRemove.
> steps remove: stepToRemove]]
> 
> 上のコードは正しくフォーマットされています。しかし、醜いコード
> です。私たちは、フォーマッティング・ルールを破って、余分なリタ
> ーンやタブを追加して、醜さを取り除こうとするかもしれません。
> 
> removeStep
> | stepToRemove |
> stepToRemove := self list selection.
> stepToRemove isNil ifFalse:
> [stepToRemove isExecutable ifTrue:
> [self list remove: stepToRemove.
> steps remove: stepToRemove]]
> 
> 見てみましょう。まだ醜いコードです。よりよい解決は、リファクタす
> ることです。例えば次のように。
> 
> removeStep
> self removeStep: self list selection
> 
> removeStep: aStep
> aStep isNil ifTrue: [^self].
> aStep isExecutable ifFalse: [^self].
> self list remove: aStep.
> steps remove: aStep
> 
> メソッドがよく見えるようにするために、フォーマッティングのルール
> を破りたい気持ちになった時には、ほとんど全ての場合で、リファク
> タリングを行って、よいコードを得ます。やってみましょう。
> 
> ---
> オリジナル http://www.xprogramming.com/
> Copyright (c) 1999, REJeffries et al. (ronjeffries@....org)

-- 
Kaoru Hosokawa
khosokawa@....com