Good Application Design Using OOP Concepts

Hi,

I just want to know, how did you (as experienced Java developers) learn the way to design your application in a professional way.

How do you design your application (before start writing a single line of code) to give it the features like scalability? How do you manage conceptual application layers? How do you find the best (or one of the best) designs for your application which results in a professional, scalable application. OOP concepts help a lot, but need someone who exactly knows how to use them.

There's plenty of poor designed applications which need lots of code rewriting to add a small new feature to them.I hope I could tell you what I mean, how do you prevent this?

Any comments are appreciated.

[757 byte] By [Arash.Shahkara] at [2007-11-27 6:22:06]
# 1

> Hi,

>

> I just want to know, how did you (as experienced Java

> developers) learn the way to design your application

> in a professional way.

Read lots of books, but the most of my knowledge comes from experience. I've seen the design of many different types of systems, and I have implemented many many bugs and bad designs, so now I know how things shouldn't be done.

> How do you design your application (before start

> writing a single line of code) to give it the

> features like scalability?

I just ask some questions about what the most important features are, and what the customer have had before and why it wasn't good. I start coding as soon as I know what to build (that means that I don't model in Rose or any other OO tool). I do all modeling in code, and I refactor often. I do also think in general design concepts.

> How do you manage

> conceptual application layers?

Once again, experience solves that problem.

> How do you find the

> best (or one of the best) designs for your

> application which results in a professional, scalable

> application.

experience and common knowledge.

> OOP concepts help a lot, but need

> someone who exactly knows how to use them.

>

> There's plenty of poor designed applications which

> need lots of code rewriting to add a small new

> feature to them.

They are usually designed by people who don't care about design or lacks experience.

> I hope I could tell you what I

> mean, how do you prevent this?

Work sweat and tears.

Kaj

kajbja at 2007-7-12 17:39:00 > top of Java-index,Java Essentials,Java Programming...
# 2

Making things modular when appropriate and applying

conventional wisdom (without being stubborn).

I fought the "dont call non-final methods from a constructor" rule

like a stubborn child for over a year now. Now that I do it, i see

why its smart and i realize it didnt make my life as hard as i thought

it would.

TuringPesta at 2007-7-12 17:39:00 > top of Java-index,Java Essentials,Java Programming...
# 3
Thanks a lot.
Arash.Shahkara at 2007-7-12 17:39:00 > top of Java-index,Java Essentials,Java Programming...