But if you want real improvements on the base level focus on decoupled components!
Decoupled is the thing that will keep your code clean and easy.
Of course this is not real life where SOA = WS. SOAP(Simple Object Access Protocol) please remove S out of SOAP or at least change it to something like OAP(Object Access Protocol). Have you tried to understand all the specs for WS? XML is easy and readable, XML Schemas introduce complexity(but NP), but WS has so many elements that I get lost in them. WS is slow, WS is complex, WS is not easy.
Writing decoupled components implies such techniques as coding against interfaces, breaking down components into logically separate modules(not just refactoring classes) and other decoupling methods.
When you look at 3 tier architectures, MVC and IoC(Dependency injection) you will see that they are decoupled into logical(not everywhere) parts.
When not to go berserk and decouple everything from everything example: Accounting logic should not be decoupled from Tax application logic(most of the times), file storage logic is logically with file attribute logic.
What you see that is not core part(and in "core" I mean that logic that is bound to the process that invokes it) is usually should be moved out of the code and expose it as a "service"(no reference to SOA or WS).
The best thing that works for me is just imagining thing in reality.
How would you use accounting services?
- You would go to an accountant and request to calculate your taxes. You do not care what the accountant does as long as you get the correct result.
- When you have cash and want to deposit it you go to the bank, wait in line and give your money, id and deposit form and you wait for response that your transaction is complete(In this scenario money = data, bank teller = DA component, safe = data store).
- Your secretary is writing a letter after you.(your words = data, secretary = DA component, pen and paper = data store, and you may even get corruption)
JUST TO NOTE: COMMUNITY EVOLVED STANDARDS ARE GENERALLY BETTER THAN A STANDARD CREATED BY A STANDARD BODY!
DA - data access
