Services
Forums
Advertise
Consulting
Java News
Newsletter
Seminars
Books
Topics
Jini Corner
Design Corner
Web Services
Java Corner
Artima
Media Kit
Write for Us
Privacy Policy
About Artima
RSS Feeds
|
Miscellaneous Design Resources:
|
Object Design - a work-in-progress
about object-oriented design with Java
Recommended Design Books -
descriptions of books related to Java and object-oriented design
Design Forum -
A place to discuss topics related to software design, including object-oriented design, system architecture design, and API design.
Object Oriented Design Resources - a set of links to
more information about Java design, object oriented design, and patterns
Object Design Workshop - three day in-house OO/Java design workshop
|
Interviews on Design:
|
Perfection and Simplicity -
the myth of "the perfect design" and ways to achieve
design simplicity
Taste and Aesthetics -
the role of taste in design and the
importance of designing with the user in mind
Designing Distributed Systems -
designing for failure, using transactions and idempotency,
and avoiding state
A Conversation with Josh Bloch -
The author of Effective Java talks about design
|
Design Techniques Articles:
|
Table of Contents - a list
of all articles with detailed descriptions
Introduction to
"Design Techniques" -
the role of design within the software development process, and the
various and competing goals of a "good"
software design
Object Initialization in Java
- the process of object initialization in Java programs
Designing Object Initialization -
how to design initializers and constructors to facilitate proper
object initialization
Designing Fields and Methods -
how some fundamental software design techniques,
like avoiding special data values and minimizing method coupling, apply
to Java
What's a Method To Do? -
how to maximize method cohesion while avoiding
method explosion
Object Finalization and Cleanup -
design guidelines that pertain to the end of an
object's life
The Hotspot Virtual Machine -
discusses the hotspot virtual
machine and how this forthcoming technology impacts Java program design
Exceptions in Java -
an in-depth account of exceptions in the Java
language and virtual machine
Designing with Exceptions -
design guidelines concerning when and how
to use exceptions
Designing for Thread Safety -
design guidelines concerning when and how
to make objects thread-safe
The Event Generator Idiom -
discusses how and when to make a Java class observable
The Canonical Object Idiom -
proposes and idiom that defines a baseline set of
functionality for objects
Inheritance versus Composition -
discusses how to choose between inheritance and
composition
Designing with Interfaces -
discusses how to use Java's interface
Designing with Dynamic Extension -
discusses how to use forName() and class loaders in
designs
Designing with Runtime Class Information -
discusses how to use all the information about an object's class
that is available at runtime
Designing with Static Members -
discusses how to use static fields and methods
Farewell to 'Design Techniques' -
gives a
brief history of the column with relevant links
|
Legacy Design Forum Topics:
|
Table of Contents - links to
all forum topics
Flexibility as a Design Goal -
a look at different people's ideas and opinions on
software design and the overall software development process
The Set/Get Question -
discussing the merits of methods that give the clients a view of an
object's attributes versus methods that perform services
Designing Fields and Methods -
discussing the nuts and bolts of designing fields and methods
Maximizing Method Cohesion
- discussing how to chop up responsibilities into methods
Finalization and Cleanup
- discussing the end of object lives
The Hotspot Virtual Machine
- discussing the Hotspot Virtual Machine and its impact on Java program
design
Designing With Exceptions
- discussing when and how to use exceptions
Designing For Thread Safety
- discussing when and how to make classes thread-safe
When To Bean?
- discussing when make classes into JavaBeans
To Bean or Not to Bean? -
text of an e-mail debate about when to beanify Java objects
Canonical Object Idiom -
discussing a base level functionality for classes
Event Generator Idiom -
discussing an idiom that shows how to use nofication in Java program
designs
Composition vs. Inheritance
- discussion about when to choose composition vs. inheritance in designs
Designing with Interfaces -
discussing when to use interfaces
Designing with Dynamic Extension
- discussing when to use dynamic extension in Java programs
Designing with Runtime Class Information -
discussing when to use runtime class information in Java programs
Designing with Static Members
- discussing when use static members in Java programs
|
|
|