a brief history of fusebox zneeded way for others to inherit my applications zcreated architecture...

23
A Brief History of Fusebox Needed way for others to inherit my applications Created architecture that would be understood and maintainable

Upload: ambrose-foster

Post on 03-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

A Brief History of Fusebox

Needed way for others to inherit my applicationsCreated architecture that would be understood and maintainable

Page 2: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

A Brief History of Fusebox

Moved into building with Steve NelsonDiscussion on cf-talk about creating a modular architectureFusebox.org went online

Page 3: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Benefits of using Fusebox

Have a developed architectureFlexible enough to modify to your

needsBecoming widespread that new team

members may not have to learn from scratch

Created by developers (this means you!)

Page 4: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Using Fusebox for eCommerce

Page 5: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Using Fusebox for eCommerce

Analyze and designImplement structureExpand and maintain

Page 6: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Analyze and Design

More Design = Less Time = Less Money

Most time and money spent fixing flaws missed during design

Fusebox encourages design up front

Page 7: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Determine the players and props (objects)

Products Customers

Shopping cart Orders

Page 8: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Determine the actions of the objects

ProductsSeachDisplay

CustomersJoinLoginEdit Information

Shopping cartView CartAdd ItemRemove ItemClear cart

OrdersGet Shipping and BillingReview OrderProcess OrderShow Confirmation

Page 9: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Determine the attributes required by the objects

ProductsAttributes.FuseactionSeachDisplay

CustomersAttributes.FuseactionJoinLoginEdit Information

Shopping cartAttributes.FuseactionView CartAdd ItemRemove ItemClear cart

OrdersAttributes.FuseactionGet Shipping and BillingReview OrderProcess OrderShow Confirmation

Page 10: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Can represent objects with UML

Page 11: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Implementing the Structure

Creation of each objectJoining the objects within the siteCalling individual objects

Page 12: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Creating an object

From our object model…

Shopping cartAttributes.FuseactionView Cart Add ItemRemove ItemClear cart

Page 13: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Creating an object

To the object’s file (/shoppingcart/index.cfm)

<cfparam name="attributes.fuseaction" default="#attributes.fuseaction#">

<cfswitch expression="#attributes.fuseaction#"><cfcase value="ViewCart"> </cfcase><cfcase value="addItem"> </cfcase><cfcase value="RemoveItem"> </cfcase><cfcase value="UpdateCart"> </cfcase><cfcase value="ClearCart"> </cfcase>

</cfswitch>

Page 14: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Creating an objectThen adding the fuses or modules

<cfparam name="attributes.fuseaction" default="#attributes.fuseaction#">

<cfswitch expression="#attributes.fuseaction#"><cfcase value="ViewCart">

<cfinclude template="dsp_Cart.cfm"></cfcase><cfcase value="addItem">

<cfinclude template="act_addItem.cfm"><cflocation url ="index.cfm?Fuseaction=viewcart">

</cfcase><cfcase value="RemoveItem">

<cfif BasketItems.recordCount><cfmodule template="act_removeItem.cfm"

ItemID="#attributes.ItemID#"></cfif><cflocation url ="index.cfm?Fuseaction=viewcart">

</cfcase>

Page 15: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Creating an objectOr a much simpler version…

/info/index.cfm

<cfinclude template="app_locals.cfm"><cfinclude

template="dsp_#attributes.fuseaction#.cfm">

Page 16: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Containership of objects

Page 17: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Containership of objects

/products/index.cfm app_locals.cfm

/app_globals.cfm

qry_search.cfm dsp_search_results.cfm

dsp_product_display.cfm• qry_product_details.cfm

Page 18: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Tying the objects together

eBags

Shopping cart

Products

Customers Orders

Page 19: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Tying the objects together

eBags

Shopping cart

Products

Customers OrdersApp_locals App_locals

App_localsApp_locals

App_Globals

Each objects’ app_locals includes the site’s app_globals

Page 20: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Tying the objects together

Page 21: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Calling the objectsURL: Sports Bags = “/search/index.cfm?

fuseaction=search&CategoryID=4”

<cflocation url=“/orders/index.cfm?fuseaction=showConfirmation”>

<cfinclude template="/shoppingcart/act_check_for_Basket.cfm">

<cfmodule template=“/shoppingcart/act_check_for_Basket.cfm">

Page 22: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Quotes from Users

"Fusebox allows our developers to leverage the strengths of standard techniques and practices to deliver a better product along a faster timeline.” -Joshua Cyr

"We are integrating Fusebox into all of our projects; large and small. By building in "modularity" to the code structures and programs from the beginning, we have been able to speed our development times and create better and better systems that are very easy to revise and modify, even for rookie CFers.” -Truman Esmond

"As a team of developers, with different styles, fusebox allowed us to follow a common path, increasing the coordination of projects, while decreasing time spent understanding each others code.” -Micheal Morris - Automated Graphic Systems, Inc.

Page 23: A Brief History of Fusebox zNeeded way for others to inherit my applications zCreated architecture that would be understood and maintainable

Fusebox resources

the site - http://www.fusebox.orgMailing list -

[email protected] -

http://www.fuseware.com/support/Forums/Index.cfm?cfapp=2