don’t be q-less expanding fusebox functionality with fuseq john quarto-vontivadar futurenow, inc. ...

41
Don’t Be Q-less Expanding Fusebox Functionality with FuseQ John Quarto-vonTivadar FutureNow, Inc. www.futurenowinc.com [email protected]

Upload: della-gilbert

Post on 27-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Don’t Be Q-lessExpanding Fusebox Functionality with FuseQ

John Quarto-vonTivadar

FutureNow, Inc.

www.futurenowinc.com

[email protected]

FuseQ to the ResQFuseQ treats fuseactions like a queueA page request can be made up of one *or more* fuseactionsAnalogy: In line at the Bank… if no one’s in front of you, you get to be the next one handled by the Teller; if not, you wait your turn. Every once in a while you’ll let a little old lady skip ahead of you.FuseQ treats the fuseaction as a list … handled in successive orderBefore leaving the core file, are there any Fuseactions left in the FuseQ?

Benefits of FuseQFuseactions are more atomic since the page request is not limited to a single FANo need for <cfmodule> to access code in other circuits

no memory thread costno passing thru of needed variablesno kludges in scoping out-bound variablesno successive recursion calls

No core file changes are required to handle all of: layout fuses, error/exception handling, Model-View-Controller, etc. These all flow naturally from FuseQ’s implementation

Features of FuseQ

Layouts: circuit-wide layouts are handled at the circuit layer (fbx_layouts) and fuse- or fuseaction-specific layouts are handled at the fuse layer

Layout fuses can be applied from any circuit (similar to qry file feature)

Because of zero core file dependencies, you can use “traditional” CF error and exception handling at the app, circuit, FA, and Fuse level. Nothing FB-specific!

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

Call FBX_Layouts

Call layoutfiles

Display output

Fusebox 3Execution Path

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

World.hello

Call FBX_Layouts

Call layoutfiles

Display output

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

World.hello

Call FBX_Layouts

Call layoutfiles

Display output

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

World.hello

Call FBX_Layouts

Call layoutfiles

Display output

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

World.hello

Call FBX_Layouts

Call layoutfiles

Display output

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fusesWorld.hello

Call FBX_Layouts

Call layoutfiles

Display output

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

World.helloCall

FBX_Layouts

Call layoutfiles

Display output

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

World.hello

Call FBX_Layouts

Call layoutfiles

Display output

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

World.hello

Call FBX_Layouts

Call layoutfiles

Display output

Finished product

Call Fusebox core file

TechspeditionFusebox 3-compliantExecution Path

Call Fusebox core file

Call Circuits.cfm

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

Call FBX_Layouts

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

Call FBX_Layouts

Call layoutfiles

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

Call FBX_Layouts

Display output

Call layoutfiles

Call Fusebox core file

Call Circuits.cfm

Call home circuit’sFBX_Settings

Call target circuit’sFBX_Switch

Call appropriate

fuses

Call FBX_Layouts

Display output

Call layoutfiles

If FuseQ not empty then loop again

World.hello

World.hello

Finished product

User.getInfo

Company.getStock

World.hello

User.getInfo

Company.getStock

World.hello

User.getInfoCompany.getStock

World.hello

User.getInfo

User.getInfoCompany.getStock

World.hello

User.getInfo

User.getInfo

Company.getStock

World.hello

User.getInfo

Company.getStock

World.hello

User.getInfo

Company.getStock

World.hello

User.getInfo

World.hello

Company.getStock

User.getInfo

Company.getStock

World.hello

Finished product

Will I be stuck behind the Q-ball?

Techspedition core file is a full private implementation of the Fusebox 3 spec Contains FuseQ and a number of other needed improvements excluded from the official FB3 implementationYour Fusebox 3-compliant apps will work out of the box whether you use FuseQ or notTopology: C C++ All legacy C code worked without a single changeAnd it’s free, damn it!

That’s Q-ute, but let’s see code!

general use

Layout Fuses

Error/Exception Handling

Short Q&A and lunch

Model-View-Controller (Hal)

Other Techspedition core file API features

Magellan traveled around the world just to end up where he started.

With our books, he could have really gone somewhere.

A little knowledge goes a long way.

CodeRutters: “Discovering Fusebox 3” by Hal Helms and John Quarto-vonTivadar pre-order now on the web site for $19.99

www.techspedition.com

Finding Your Inner FuseQon a techspedition into knowledge

Core files at www.techspedition.com

Series of articles explaining FuseQ

Other regular columns and guest authors speak about the development cycle, coding, cross-training your brain

“Exploring the FuseQ” book in development

Open call for authors – we’re anxious to publish your book