Talk with Mr. Scott (轉)

worldblog發表於2007-12-12
Talk with Mr. Scott (轉)[@more@]

UMLChina於3月11日舉辦了第16期專家交流,這次交流的重點是技術、開發過程、(agile)方法。作為一個agile的初學者,我有幸也參與了這次令人愉快而難忘的討論,非常高興可和《Marstering Enterprise Beans》一書的作者tt W. Ambler先生同在一個室中。以下是我所提的一些問題,以及Scott先生的精彩回答。希望大家可以從中得到一些有價值的東西。截選並整理自聊天記錄,I代表我,S代表Mr. Scott,完整的聊天記錄可以從這裡找到。看起來似乎有點象一篇interview:)

注:AM——Agile Modeling(敏捷建模)
  XP——eXtreme Programming(極限)
  refactoring——程式碼重構

[I] With agile method, is there any successed applications in c++, except java?
[S] I don't do a lot of C++ work any more, so I don't know personally. However, I have heard about C++ projects on the ing list on Groups.

[I] Thank you, and I think, as a methodology, AM is language independent, do you think so?
[S] Yes, I think that AM is language independent. You can use it for Java projects, COBOL projects, or projects. It's also independent of modeling language, such as UML, as well. It's one of the few modeling methods that doesn't specify the exact artifacts, such as use cases or data models, that you are supposed to create. It's a lot like XP -- XP doesn't say that you have to use Java. AM strives to address the issues of how to be effective at modeling and documentation, problems that many developers struggle with. UML, on the other hand, strives to address the issue of what notation and semantics should be applied to model OO and component software. Each technique is trying to address different but complementary issues.

[I] It's said that refactoring is more efficient in java application, what do you think about it?
[S] Most refactorings are currently focused on OO code, such as Java and C++. however, the technique itself could be applied to non-OO languages. Some work is being done regarding data refactorings but it's pretty tough to do them.

[I] There are also a lot of work to do with refactoring, it's not very mature, is that right?
[S] A lot of people are using it very succesully. I think refactoring is a pretty solid technique.

[I] I'm very interested in refactoring, but there are few books addressing about it, how do I start to learn?
[S] There's Martin Fowler's book and his site. The XP community also talks about it a fair bit. Refactoring will be a major topic, as far as I know, at the upcoming XP 2002 in Italy in May. I suspect it will also be a major topic at the XP/Agile Universe convention in Chicago in August. As paper get published from those efforts I suspect we'll see more and more information about refactoring. Just takes time. There are also some interesting refactoring browsers now too, such as A for Java. Worth looking into.

[I] I think refactoring, as well as AM, is still not so well known in china. I have not yet seen the chinese edition of Mr. Fowler's book.
[S] I don't know if it's been translated yet. Sounds like an opportunity for someone if it hasn't.

[I] Is there any book which addressing agile, I guess not.
[S] There are several books addressing Agile development, look at s.htm"> for some of them. The AM book starts ship in North America in 2 wks

[I] What program language is your favourite? What about c++, that's my favorite!
[S] I used to work in C++, it's pretty good, and C before that. I've even worked in COBOL and Fortran.

[I] I have read "Effective C++"(Scott Meyers). I think it's very intersting, and learn a lot from it!
[S] Effective C++ and the follow-up book were both amazing.

[I] I have learned something about design patterns, how do you think about it?
[S] Patterns are important. AM includes a practice called "Apply Patterns Gently". The basic idea is that you don't want to apply a pattern the instant you think you need it. Instead, wait until you are sure. For example, you might have a formula to implement. You could apply the strategy pattern right away, but the strategy pattern is applicable to several formulas. Instead, wait until you actually have a second formula to implement, and then consider refactoring your code to make it easy to implement Strategy if it makes sense later on. Then when the third formula needs to be implemented refactor your work some more, and when the fourth formala is required then you should seriously consider implementing Strategy because now that is the simplest way to do it. If you had implemented Strategy right away and then only needed to implement the one formula, you would have done a lot of extra work for nothing. The nature of AM? AM is a strange thing, it's a different way to look at modeling. I think it's nature is to keep things simple and to focus on what is actually required, to not get ahead of yourself.

[I] I think it's practical and reality-oriented, I mean AM, is that right?
[S] My hope is that people will find AM to be of value to their development efforts. I have found it to be very useful on the projects that I work on and my clients seem to be picking up on it too. Time will tell. I'm trying to keep it as practical as possible. Many of the academics seem threatened by it, so that might be a good sign that it's practical.

[I] And I think AM is more suitable for small developping team with frequent changes, is it right?
[S] AM works very well in high-communication environments, and that tends to be smaller teams. If your requirements don't change frequently, then AM's iterative and incremental nature likely isn't needed by your team.

[I] So, I think AM is very suitable in china, because there are a lot of small teams in china! I'm very interesting about AM and with its applying in real world!
[S] The best way to find about this is to try AM on your next project then.

[I] Thank you!
[S] My pleasure.

(完)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991724/,如需轉載,請註明出處,否則將追究法律責任。

相關文章