What factors do you weigh in your decision process when you select an embedded scripting, and can issues of configuration and variation be overcome purely with IOC and the Plugin pattern?
Many times the Strategy Pattern and Decorator Pattern are good way to tame variation in domain logic. The problem set I am faced with is that calculations and starting points of workflows will vary from through out the year based on different marketing campaigns, and not all data requirements and business rules are know until just before the campaign begins. Being a small shop we would like to have a solution where we can make configuration changes, test rigorously and yet not be forced to compile/link and re-deploy on a constant basis.
How to design for JPA in a non-Java EE web server (e.g. Tomcat)
The data structure for the “order” property of an object in a list
How do you handle Zend_Paginator?
Somtimes externalizing business logic into loadable modules.
A simple explanation of common design patterns for non-native English speakers
This makes your solution a reusable framework too that you can deploy to other clients cheaply.
Is the front controller responsible for deciding which controllers/modules to load?
It also make 'in the field' fixes quicker (just update a text file) and gives clients freedom to modify their own dynamic data..
Get list of changed fields in Entity from NHibernate Session
If you can safely expose the API without breaking things ...
Forcing interface implementations to implement hierarchy in c#
My two concerns are:.
- Can I externalize logic that is specific to a client? or that might be tailored later?
- Can I do this whilst meeting performance and intellectual property constraints?
- I want to provide some facility for customers/clients to be able to provide some (limited) customisation themselves.
to colour a chart red if a value exceeds 50, so allowing them to type a short script like "if val > limit then 'red'" etc.
You have to be careful to limit what the user can program, however (for obvious reasons)
- When I need some customisation of the software in the field (i.e.
recompilation isn't an option) and I know I'll need a little more than being able to turn components on/off.
So I'll implement some mechanism where the application configures itself via scriptable components