1 / 41

Don’t Be Q-less Expanding Fusebox Functionality with FuseQ

Don’t Be Q-less Expanding Fusebox Functionality with FuseQ. John Quarto-vonTivadar FutureNow, Inc. www.futurenowinc.com john@techspedition.com. FuseQ to the ResQ. FuseQ treats fuseactions like a queue A page request can be made up of one * or more* fuseactions

akamu
Download Presentation

Don’t Be Q-less Expanding Fusebox Functionality with FuseQ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Don’t Be Q-lessExpanding Fusebox Functionality with FuseQ John Quarto-vonTivadar FutureNow, Inc. www.futurenowinc.com john@techspedition.com

  2. FuseQ to the ResQ • FuseQ treats fuseactions like a queue • A page request can be made up of one *or more* fuseactions • Analogy: 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 order • Before leaving the core file, are there any Fuseactions left in the FuseQ?

  3. Benefits of FuseQ • Fuseactions are more atomic since the page request is not limited to a single FA • No need for <cfmodule> to access code in other circuits • no memory thread cost • no passing thru of needed variables • no kludges in scoping out-bound variables • no 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

  4. 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!

  5. Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Fusebox 3 Execution Path Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  6. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  7. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  8. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  9. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  10. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  11. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  12. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  13. World.hello Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses Call FBX_Layouts Call layout files Display output

  14. Finished product

  15. Call Fusebox core file Techspedition Fusebox 3-compliant Execution Path

  16. Call Fusebox core file Call Circuits.cfm

  17. Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings

  18. Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch

  19. Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call appropriate fuses

  20. Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call target circuit’s FBX_Switch Call FBX_Layouts Call appropriate fuses

  21. Call Fusebox core file Call Circuits.cfm Call home circuit’s FBX_Settings Call layout files Call target circuit’s FBX_Switch Call FBX_Layouts Call appropriate fuses

  22. Call Fusebox core file Call Circuits.cfm Display output Call home circuit’s FBX_Settings Call layout files Call target circuit’s FBX_Switch Call FBX_Layouts Call appropriate fuses

  23. If FuseQ not empty then loop again Call Fusebox core file Call Circuits.cfm Display output Call home circuit’s FBX_Settings Call layout files Call target circuit’s FBX_Switch Call FBX_Layouts Call appropriate fuses

  24. World.hello

  25. World.hello

  26. Finished product

  27. World.hello Company.getStock User.getInfo

  28. World.hello Company.getStock User.getInfo

  29. World.hello User.getInfo Company.getStock User.getInfo

  30. World.hello User.getInfo Company.getStock User.getInfo

  31. World.hello Company.getStock User.getInfo

  32. World.hello Company.getStock User.getInfo

  33. World.hello Company.getStock User.getInfo

  34. World.hello Company.getStock User.getInfo

  35. World.hello Company.getStock User.getInfo

  36. Finished product

  37. 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 implementation • Your Fusebox 3-compliant apps will work out of the box whether you use FuseQ or not • Topology: C  C++ All legacy C code worked without a single change • And it’s free, damn it!

  38. 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

  39. A little knowledge goes a long way. Magellan traveled around the world just to end up where he started. With our books, he could have really gone somewhere.

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

  41. 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

More Related