|
|
|
Sponsored Link •
|
|
Advertisement
|
Bill Venners: What are you working on these days? What are you thinking about?
Scott Meyers: Right now I'm trying to identify language- independent principles that improve software quality. My work in C++ largely consisted of trying to identify specific rules that C++ programmers could apply to improve their software's quality, behavior, efficiency, things like that. I'm now trying to look for much broader guidelines that almost anybody working in software development can apply. So it's not limited to C++ or even OO any longer.
I would like to believe we can agree on certain broad principles, like "Code duplication is bad." That's a general principle I hope would apply pretty much anyplace.
Another broad principle would be, "Classes should be easy to use correctly and hard to use incorrectly." That's actually from my C++ books, but you can generalize it. Let me use the word component to mean something you interact with. It might be a class, a function, a library, or a framework. If I could use the word component to mean any of those things you interact with, then I would say a broad principle is that components should be easy to use correctly and hard to use incorrectly. That is a relatively strong constraint on the component designers, because it says if someone uses your component incorrectly, it is probably your fault. It says the onus is on you to ensure that if the code compiles, it does the right thing.
Those are examples of broad principles. Currently, I'm trying to identify a fairly
small number of broad principles. I've written two books with 50 ways to improve things
and one book with 35. That's 135 principles to remember. I now believe that 135
principles is too many. I would like to have broader, more universal guidelines that are
much fewer in number. I'm trying to identify what those are and figure out how to apply
them in different languages and different environments so that the advice becomes
practical.
Have an opinion about contracts, private data, or minimal and complete interfaces? Discuss this article in the News & Ideas Forum topic,
Const, RTTI, and Efficiency
Resources
Effective C++, Second Edition, by Scott Meyers is at Amazon.com at:
http://www.amazon.com/exec/obidos/ASIN/0201924889/
More Effective C++, by Scott Meyers is at Amazon.com at:
http://www.amazon.com/exec/obidos/ASIN/020163371X/
Effective STL, by Scott Meyers is at Amazon.com at:
http://www.amazon.com/exec/obidos/ASIN/0201749629/
Effective C++ CD, by Scott Meyers is at Amazon.com at:
http://www.amazon.com/exec/obidos/ASIN/0201710919/
Scott Meyer's website contains links to many publications, presentations, books, and other information from Scott:
http://www.aristeia.com/
Images of Persephone, the best dog in the world:
http://www.aristeia.com/Persephone/index_frames.html
|
Sponsored Links
|