ホソカワです。
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