More Highlights...
- Choose your tools with care... Keep in mind a few things when selecting tools for your application:
- Each tool have it's own assumptions, this can be in conflict with your architecture assumptions. This will lead to conflicts, workaround and will make your architecture and code more complex.
- Upgrading the selected tool or tools might not be an easy and automated task, this can lead to upgrade problems or complexity.
- Some tool's configuration is not an easy task, better keep than in mind.
- Heavy dependence on one tool will probably be a constrain in the end, leading to heavy price, slow maintenance, performance, can lock/kill your tool's ability to evolve, bad tool can lead to the anti-pattern 'lava flow'.. and more...
- Free doesn't totally mean free. Support costs, a lot. Check support agreements first.
- Free - GNU license means you have to distribute your source code!
- ISOLATE the tools by using Interfaces and Layers.
- Code in the Language of the Domain
- There is no functional difference between:
- if (portfolioIdsByTraderId.get(trader.getId()) {.containsKey(portfolio.getId())) {...}} // AND
- if (trader.canView(portfolio)) {...}
- User domain names like: Trader and Portfolio... This will reveal secrets instead of creating ones.
- Domain names will make your code more obvious when a new programmer will do reverse engineering to understand your code.
That's it for now.
Next: TBD...
No comments:
Post a Comment