aspose file tools*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Working Effectively with Legacy Code book - Reader Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Working Effectively with Legacy Code book - Reader Question" Watch "Working Effectively with Legacy Code book - Reader Question" New topic
Author

Working Effectively with Legacy Code book - Reader Question

Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
hi, mr.Michael Feathers, will this book introduce refactoring and design pattern ? thank you !
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
Have you read Jeanne's review?


Author of Test Driven (2007) and Effective Unit Testing (2013) [Blog] [HowToAskQuestionsOnJavaRanch]
Alexandru Popescu
Ranch Hand

Joined: Jul 12, 2004
Posts: 995
Yep, I've read it. Seems that Jeanne has read quite an interesting book . It will be a pleasure for me to read it too as my last couple of years of work are in this field.

./pope


blog - InfoQ.com
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
From the TOC at http://www.objectmentor.com/resources/bookstore/books/welc/ it doesn't seem as if it has an introductory chapter on those topics. The "Dependency Breaking Techniques" sound like they could be refactorings, though.


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Michael Feathers
author
Greenhorn

Joined: Aug 24, 2004
Posts: 24
Originally posted by Alvin chew:
hi, mr.Michael Feathers, will this book introduce refactoring and design pattern ? thank you !


Alvin, hi.

It does assume that the reader knows a little bit about refactoring, but most of the emphasis is on getting tests in around ugly code so that you can refactor and you can add new features without that horrible fear that you've broken your code accidentally.


Author of <a href="http://www.amazon.com/exec/obidos/ASIN/0131177052/ref=jranch-20" target="_blank" rel="nofollow">Working Effectively with Legacy Code</a>
Michael Feathers
author
Greenhorn

Joined: Aug 24, 2004
Posts: 24
Originally posted by Ilja Preuss:
From the TOC at http://www.objectmentor.com/resources/bookstore/books/welc/ it doesn't seem as if it has an introductory chapter on those topics. The "Dependency Breaking Techniques" sound like they could be refactorings, though.


Ilja, hi. Yes the 'dependency breaking techniques' are refactorings, and I mention that in the book. I just wanted to differentiate them because they are not the standard refactorings. Most of what has been written about refactoring so far assumes that you have some tests in place so that you can feel confident that your refactorings are not breaking things. The 'dependency breaking techniques' are *very* conservative... just enough refactoring to start to get tests in place.
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
hi, michael, what do you expected on the knowledge of reader in order to read up this book ?
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
michael, would this book recommended as college text book to enchance student's software design skill and is there any material like powerpoint slide or lecturer instruction handbook provided ?
Michael Feathers
author
Greenhorn

Joined: Aug 24, 2004
Posts: 24
Originally posted by Alvin chew:
hi, michael, what do you expected on the knowledge of reader in order to read up this book ?


Alvin, hi. Some working knowledge of OO, a sense of what refactoring and TDD are. I do point people directly to Martin Fowler's refactoring book in a couple of places so it would be nice if the readers have a little of that background, although I think that it stands well on its own.

I do discuss some design patterns in the book and I don't assume that the reader knows them. I also describe five class design principles that we at Object Mentor teach in many of our courses. It is nice that they provide a good framework for understanding design problems in legacy code, in addition to be just being very good things to know when you are designing a system from scratch.
Michael Feathers
author
Greenhorn

Joined: Aug 24, 2004
Posts: 24
Originally posted by Alvin chew:
michael, would this book recommended as college text book to enchance student's software design skill and is there any material like powerpoint slide or lecturer instruction handbook provided ?


Unfortunately, no. I thought about doing that sort of thing, and it may still happen, but I think that the approach I took depends strongly on people have had a big of experience in nasty code and feeling that pain concretely. I know I just didn't have that when I was a student. I could be wrong, but I just don't know if people would be in a position to connect with it. On the other hand, if anyone feels that it would be appropriate to hand the book to people as they graduate, to look at in about six months time after working a bit, I'm all for that.
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
hi,michael, as there have so many software development book, how this book would distinct to other?
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
michael, as mentioned in review, this book have used several language as sample code, my question is what is the language that have most sample in this book, would it be better if just stick on one langauge say java (the best language in the world) , 5 seconds advertise for java ..
Alexandru Popescu
Ranch Hand

Joined: Jul 12, 2004
Posts: 995
Well Alvin i think that the field/domain the book is taking into consideration already offers it a nice/quite unique place.

./pope
Alexandru Popescu
Ranch Hand

Joined: Jul 12, 2004
Posts: 995
Originally posted by Alvin chew:
michael, as mentioned in review, this book have used several language as sample code, my question is what is the language that have most sample in this book, would it be better if just stick on one langauge say java (the best language in the world) , 5 seconds advertise for java ..


I wouldn't go this way , and I would say that for testing strategies approaches on different languages may vary quite a lot.

./pope
C Kutler
Ranch Hand

Joined: Apr 15, 2004
Posts: 62
Hi,

I just finished Fowler's refactoring book and your mention of "dependency breaking techniques" peaked my interest. Can you give an example or two of what you talk about in the book?


We learn by doing, there is no other way.
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30919
    
158

Alvin,
Some of the dependency breaking techniques apply to C/C++ and not Java. But they still show you how to think about dependencies.

Also you may happen to be maintaining Java code that was written by someone who thinks in C. For example, they could use all static methods and no OO features. Then the C/C++ refactoring thinking comes in handy.


[Blog] [JavaRanch FAQ] [How To Ask Questions The Smart Way] [Book Promos]
Blogging on Certs: SCEA Part 1, Part 2 & 3, Core Spring 3, OCAJP, OCPJP beta, TOGAF part 1 and part 2
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30919
    
158

Examples of dependency breaking techniques/refactorings include "extract and override factory method" and "introduce instance delegator."

Examples of dependency breaking processes include "sprout method" and "the irritating global dependency."
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
Michael, there are so many chapters inside this book, how to we read your book effectively ?
Lasse Koskela
author
Sheriff

Joined: Jan 23, 2002
Posts: 11962
    
    5
Originally posted by Alvin chew:
Michael, there are so many chapters inside this book, how to we read your book effectively ?

1. Pick a subset of chapters that sound the most interesting to you.
2. Read effectively.
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
thank you lasse, for reply , my question was should we take this book as scenario case study(when we found problem in our project, then refer to similar kind of solution), or we need to read it chapter by chapter ? or we simply jump to the topic we interest in
Eusebio Floriano
Ranch Hand

Joined: Mar 07, 2004
Posts: 237
Originally posted by Alvin chew:
thank you lasse, for reply , my question was should we take this book as scenario case study(when we found problem in our project, then refer to similar kind of solution), or we need to read it chapter by chapter ? or we simply jump to the topic we interest in


Read it all according with your interest.
Then you can use it as a scenario case study.

Regards,


SCJP 1.4 / 5.0 - SCBCD 1.3 - SCWCD 1.4 - IBM 484
Jeanne Boyarsky
author & internet detective
Marshal

Joined: May 26, 2003
Posts: 30919
    
158

Alvin,
Read the intro first. Then pick an interesting chapter and follow the cross references. The book is meant to be readable when jumping around and you will read the things you are most interested in first.
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
thanks to Vinicius Boson and Jeanne Boyarsky for answering

Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
mr.micheal feathers, from "The Mechanic Of Change" , what would you introduce for the tools ?
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
mr.micheal feathers, what do you means by "the seam model" on chapter4
Pradeep bhatt
Ranch Hand

Joined: Feb 27, 2002
Posts: 8919

Originally posted by Alvin chew:
mr.micheal feathers, what do you means by "the seam model" on chapter4


http://www.coderanch.com/t/99238/patterns/author


Groovy
Alvin chew
Ranch Hand

Joined: Jan 08, 2004
Posts: 834
Michael, for the mechanism of software change, should design pattern come first or refactoring ?
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Alvin, if you have a new question, please start a new thread for it. Thanks!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Working Effectively with Legacy Code book - Reader Question