FUSEDOC: AN EMERGING STANDARD - PowerPoint PPT Presentation

About This Presentation
Title:

FUSEDOC: AN EMERGING STANDARD

Description:

I provide the user a login of both userName and password, returning to the ... PaymentNet: a CFX tag to communicate withe creditcard auth. || END FUSEDOC || 20 ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 23
Provided by: halh
Category:

less

Transcript and Presenter's Notes

Title: FUSEDOC: AN EMERGING STANDARD


1
FUSEDOC AN EMERGING STANDARD
Make everything as simple as possible, but not
simpler. -Albert Einstein
2
WHY FUSEDOC?
  • The purpose of Fusedoc is to provide a standard
    that will help developers in
  • shortening development cycles
  • reducing development costs
  • lessen occasion and severity of bugs
  • make maintenance of programs easier

3
THE CRITICAL PATH
Dependent Events
Independent Events
B4
A2
C8
D6
F2
J9
E5
4
THE FUSEBOX PATH
5
THE FUSEBOX PATH
Fusebox Architecture
Fusedocs
Query Sims
Data Model Schema
Queries/ Sprocs
Prototype
Wireframe
6
Dependencies
  • Dependencies are broken through strong interfaces
  • Fusedoc provides way to specify the interface of
    fuses

7
THE GOAL FUSESTUBS
  • Fusestubs provide a coder with the fuse layout
    (HTML/CSS, etc.), any applicable query sims and
    the Fusedoc needed to complete the fuse.

HTML Layout
Query Sims
Fusestub
Fusedoc
8
FUSEDOC
  • When asked what was the most frightening thing he
    had ever experienced, Mark Twain immediately
    answered, a blank piece of paper.
  • We have been taught that we should document our
    code but now how.

9
A SAMPLE FUSEDOC
  • lt!---
  • BEGIN FUSEDOC
  • RESPONSIBILITIES
  • I provide the user a login of both userName and
    password, returning to the fusebox with an RFA of
    submitForm. If I get a var called badLogin, the
    user is returning to me from an invalid login.
  • HISTORY
  • Author hal.helms_at_TeamAllaire.com
  • ATTRIBUTES
  • --gt RFA.submitForm a FUSEACTION
  • --gt badLogin a STRING
  • lt-- userName a STRING
  • lt-- password a STRING
  • END FUSEDOC
  • ---gt

10
FUSEDOC DISSECTED
  • lt!---
  • BEGIN FUSEDOC
  • RESPONSIBILITIES
  • I provide the user a login of both userName and
  • password, returning to the fusebox with an RFA of
  • submitForm. If I get a var called badLogin, the
    user
  • is returning to me from an invalid login.
  • HISTORY
  • Author hal.helms_at_TeamAllaire.com
  • ATTRIBUTES
  • --gt RFA.submitForm a FUSEACTION
  • --gt badLogin a STRING
  • lt-- userName a STRING
  • lt-- password a STRING
  • END FUSEDOC

Limit
Sections
Limit
11
EXTENDED BACKUS-NAUR FORM DESCRIPTION
  • ltFusedocgt
  • lt-- ltEOLgt BEGIN FUSEDOC ltEOLgtltEOLgt
  • Responsibilities ltEOLgt
  • ltresponsibilities-contentsgt ltEOLgt ltEOLgt
  • (ltsectiongt) ltsection-namegt ltEOLgt
  • ltsection-contentsgt ltEOLgt ltEOLgt
  • ATTRIBUTES ltEOLgt
  • (ltattributegt) ltidentifiergt --gt lt--
    lt-gt gt lt
    ltscopegt.ltattribute-namegt
    ltdata-definitiongt ltattribute-commentsgt ltEOLgt
  • END FUSEDOC ltEOLgt
  • ---gt

12
BAREBONES FUSEDOC
  • lt!---
  • BEGIN FUSEDOC
  • RESPONSIBILITIES
  • I provide the user a login of both userName and
    password, returning to the fusebox with an RFA of
    submitForm. If I get a var called badLogin, the
    user is returning to me from an invalid login.
  • ATTRIBUTES
  • --gt RFA.submitForm a FUSEACTION
  • --gt badLogin a STRING
  • lt-- userName a STRING
  • lt-- password a STRING
  • END FUSEDOC
  • ---gt

13
CUSTOMIZED FUSEDOC
  • lt!---
  • BEGIN FUSEDOC
  • RESPONSIBILITIES
  • I provide the user a login of both userName and
    password, returning to the fusebox with an RFA of
    submitForm. If I get a var called badLogin, the
    user is returning to me from an invalid login.
  • HISTORY
  • Author 8.8.20000 hal.helms_at_TeamAllaire.com
  • Revised 9.14.2000 hal.helms_at_TeamAllaire.com
    changed to default badLogin to FALSE
  • FUSE_PROPERTIES
  • FusedocSpec c\properties\default.cfm
  • Level 1
  • HasForm TRUE
  • Jsrequired TRUE
  • SPERFIDIES
  • Sed ut perspiciatis, unde omnis iste natus error
    sit voluptatem accusantium doloremque laudantium,
    totam rem aperiam eaque ipsa, quae ab illo
    inventore veritatis et quasi architecto beatae
    vitae dicta sunt, explicabo.

14
PARSING ENGINES
  • Provides ability to view Fusedoc in browser
  • Formal description of Fusedoc provided in
    Extended Backus-Naur Form
  • Flexible nature of Fusedoc allows each
    developer/shop to define the specification a fuse
    subscribes to

15
ATTRIBUTE IDENTIFIERS
  • --gt variable explicitly passed in
  • lt-- variable explicitly passed out
  • lt-gt pass-thru variable (unchanged)
  • gt persistent variable already available
  • lt persistent variable to be set
  • additional required files

16
HOW MUCH DOCUMENTATION IS ENOUGH?
  • Responsibilities should allow a competent CF
    programmer who is unfamiliar with the application
    to complete the fuse.
  • Attributes should outline all variables the coder
    needs to be aware of. Any variables that exist
    but are not needed by the fuse can be omitted for
    brevity and clarity.

17
TEST HARNESSES
  • Def A wrapper that your fuse slips into,
    allowing it to be unit tested.
  • Fusedoc lets you know exactly what the test
    harness must provide for, making testing much
    easier and less frustrating

18
DOES IT WORK?
  • lt!-- dspCartSummary.cfm --gt
  • lt!-- hal.helms_at_TeamAllaire.com --gt
  • lt!---
  • FUSEDOC
  • RESPONSIBILITIES
  • I show the user's cart summary based on the
    cookie "cartID" that exists. If no cookie exists,
    I tell the user they don't have anything in their
    cart.
  • ATTRIBUTES
  • --gt RFA.continueShopping a FUSEACTION
  • --gt RFA.removeItemFromCart a FUSEACTION
  • --gt RFA.retotalCart a FUSEACTION called when the
    Update_partID_quantity is changed
  • --gt RFA.checkout a FUSEACTION
  • lt-gt fatherID a STRING
  • lt-gt fatherType a STRING ( Certification
    Manufacturer ProductLine HotDeals
    searchString)
  • lt-gt fatherName a STRING

19
DOES IT WORK?
  • lt!---
  • FUSEDOC
  • RESPONSIBILITIES
  • I first try to get credit card authorization. If
    it fails, I let the customer know there was a
    problem and I invite them to try again with
    RFA.checkoutAgain. If auth succeeds, I call
    qryInsertOrder.cfm to add an order,
  • I show the order summary (qryGetCartSummary.cfm
    and qrymyShippingInfo.cfm) and thank them for
    their business. I also email an order summary to
    them and then an order summary to each of the
    developers who had items in their order. Finally,
    I clear out the cart (qryClearCart.cfm) and
    delete the cookie.cartID and the
    cookie.ShoppingInfo.
  • ATTRIBUTES
  • --gt RFA.failure a FUSEACTION
  • --gt shipMethod a STRING ( GNDCOM 2DA 1DA )
  • --gt ccType a STRING ( ax mc visa discover
    )
  • --gt ccNumber a STRING
  • --gt ccExpirationMonth a STRING (01 thru 12)
  • --gt ccExpirationYear a STRING (2000 thru 2005)
  • --gt ccNameOnCard a STRING
  • --gt shipping a NUMBER
  • --gt tax a NUMBER

20
DOES IT WORK?
  • www.solutionssite.com
  • Hal Helms, Fusebox architect
  • Jeff Bane, database architect
  • Aaron Newman, layout specialist
  • A Philippines-based CF shop were coders

21
DOES IT WORK?
  • www.solutionssite.com, a Sun ecommerce site
  • Aaron worked with client on look and feel
  • Simultaneously, Jeff worked on data model while
  • I worked on overall Fusebox architecture
  • I created Fusestubs and query sims and sent them
    off to the Philippines for coding
  • We received them back (with test harnesses) and I
    integrated them and did integrated testing.
  • Results
  • 60 cost savings
  • site was done by moonlighting in one month

22
FUSEBOX TRAINING
  • If written directions alone would suffice,
    libraries wouldn't need to have the rest of the
    universities attached. - Judith Martin 
  • Developing Applications with ColdFusion
    Fusebox, developed and taught by Hal Helms
  • Oct 16-20, Tampa, FL
  • hal.helms_at_teamallaire.com for more info
Write a Comment
User Comments (0)
About PowerShow.com