• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
  • Paul Clapham
  • Liutauras Vilda
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Roland Mueller
Bartenders:

Working Effectively with Legacy Code book - Reader Question

 
Ranch Hand
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi, mr.Michael Feathers, will this book introduce refactoring and design pattern ? thank you !
 
author
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Have you read Jeanne's review?
 
Ranch Hand
Posts: 995
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
author
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Michael Feathers
author
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi, michael, what do you expected on the knowledge of reader in order to read up this book ?
 
Alvin chew
Ranch Hand
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 24
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi,michael, as there have so many software development book, how this book would distinct to other?
 
Alvin chew
Ranch Hand
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 995
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 995
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
 
Ranch Hand
Posts: 62
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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?
 
author & internet detective
Posts: 42073
932
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Jeanne Boyarsky
author & internet detective
Posts: 42073
932
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Michael, there are so many chapters inside this book, how to we read your book effectively ?
 
Lasse Koskela
author
Posts: 11962
5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Ranch Hand
Posts: 241
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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,
 
Jeanne Boyarsky
author & internet detective
Posts: 42073
932
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
thanks to Vinicius Boson and Jeanne Boyarsky for answering

 
Alvin chew
Ranch Hand
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
mr.micheal feathers, from "The Mechanic Of Change" , what would you introduce for the tools ?
 
Alvin chew
Ranch Hand
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
mr.micheal feathers, what do you means by "the seam model" on chapter4
 
Ranch Hand
Posts: 8946
Firefox Browser Spring Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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



https://coderanch.com/t/99238/patterns/author
 
Alvin chew
Ranch Hand
Posts: 834
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Michael, for the mechanism of software change, should design pattern come first or refactoring ?
 
Ilja Preuss
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Alvin, if you have a new question, please start a new thread for it. Thanks!
 
There are no more "hours", it's centi-days. They say it's better, but this tiny ad says it's stupid:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic