Checkout Soundings at riaForge.com> Subject: [CFCDEV] Feedback please> Date: 
Tue, 28 Aug 2007 16:21:54 -0500> From: [EMAIL PROTECTED]> To: 
cfcdev@cfczone.org> > I'm building a mostly-OO CF application. What follows is 
a quick summary of the application (no code). I'd like to get your feedback on 
the initial design, as well as any suggestions.> > --- Overview ---> The 
application will allow users in the company to create and administer custom 
surveys. Value added (over sites such as SurveyMonkey) is connection to 
internal LDAP server and other data sources and keeping company data inside the 
firewall. > > --- Components ---> User: > * One instance in session scope for 
each user. > * Instantiated in onSessionStart. > * Handles authentication, 
roles, and persisting user data (employee Id, name, email, manager, etc.). > > 
LDAP: > * One instance in application scope. > * Instantiated in 
onApplicationStart.> * Handles interaction with corporate LDAP server.> * 
Almost static: will persist data already retrieved from LDAP in struct to be 
checked before querying LDAP. Data will be timestamped, and stale data 
"pruned". > > Survey:> * Instantiated when: >   - a user begins to 
create/modify a survey (one Survey object created in session scope)>   - a user 
begins to take a survey (created by and within Response object)> * Persists 
data about a survey (survey name, active status, employees required to take the 
survey, etc.)> * Contains a struct of Question objects.> * Contains one 
SurveyGateway object (created by init method).> * Contains one QuestionGateway 
object (created by init method).> > SurveyGateway> * Created in and by Survey 
object (in init method of Survey).> * One instance contained within each Survey 
object.> * Handles interaction with db and data persistence.> > Question> * 
Created by QuestionGateway object, which is contained by Survey object.> * 
Struct of Question objects is contained by Survey object.> * Contains 
information about one survey question (question text, label for reporting, 
options if multi-choice, etc.).> * Almost like a TO (no business logic, only 
getters and setters).> > QuestionGateway> * Created in and by Survey object (in 
init method of Survey).> * Contained by Survey object.> * Acts almost like both 
a gateway to retrieve and persist data and a factory to create Question 
objects.> > Response> * Instantiated when a user begins to take a survey.> * 
Contains one Survey object (created by init method).> * Contains one 
ResponseGateway object (created by init method).> * Contains a struct of survey 
answers.> > ResponseGateway> * Instantiated in init method of Response object.> 
* Contained by Response object.> * Handles interaction with db and data 
persistence.> > --- Comments ---> * Only "gateway" objects (no DAOs) are used 
for simplicity. Gateway objects will handle CRUD operations as well as 
multi-record queries.> * The "view" layer will be cfm pages using custom tags 
for layout.> * onRequestStart intercepts submitted forms and (cf)includes 
appropriate processing scripts.> * Form processing scripts will create or use 
existing objects as necessary then (cf)include or redirect user to appropriate 
page.> * Data is persisted in cached queries in gateway objects.> * There are a 
couple of components related to reporting not shown here.> > --- Unresolved 
Issues and Questions ---> * Where is data manipulation done (e.g., computed 
fields, sorting, filtering, paging)?> * Is some kind of factory called for?> * 
Are layers properly separated? > * Do I need a service layer? If so, how would 
it fit in?> * Where to do validation of submitted data?> * Should all data be 
bound to request scope to be passed to view layer?> * Should utility functions 
be wrapped in a Utility object and persisted in application scope, or just 
(cf)included on every page request?> > I'm not expecting an in-depth review; 
I'm just looking for pointers, particularly if I've really mangled something. 
Thanks in advance.> > --> Joe Lakey> Sr. Technical Analyst> FedEx Services> > > 
You are subscribed to cfcdev. To unsubscribe, please follow the instructions at 
http://www.cfczone.org/listserv.cfm> > CFCDev is supported by:> Katapult Media, 
Inc.> We are cool code geeks looking for fun projects to rock!> 
www.katapultmedia.com> > An archive of the CFCDev list is available at 
www.mail-archive.com/cfcdev@cfczone.org> 
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE

You are subscribed to cfcdev. To unsubscribe, please follow the instructions at 
http://www.cfczone.org/listserv.cfm

CFCDev is supported by:
Katapult Media, Inc.
We are cool code geeks looking for fun projects to rock!
www.katapultmedia.com

An archive of the CFCDev list is available at 
www.mail-archive.com/cfcdev@cfczone.org

Reply via email to