dflibg.org
dflibg/js dfirefly is an SDK for dataflow applications built using the dflibg/js library. dfirefly SDK includes panels to inspect dataflow components (datastreams, connections, etc.), monitor datastreams, set dataflow thread breakpoints, audit and analyze the compiled application (dataflow lint, cluster-analysis, dataflow graphing) and a dataflow log/console. WHAT ARE dflibg/js-BASED APPLICATIONS - dflibg/js-based dataflow applications are built around - datastreams, - the nodes that generate and observe them, attach those datastreams to document objects, servers, proxies, windows, datastores, etc., - the dataflow engines (modules) built from them, [including general modules, dynamic server and re-usable dataflow library modules] - datastores to which datastreams may be sourced and sinked passively or reactively, and - instantiable models - from which a document or sections of it may be composed - models integrate document section prototypes (templates), an initiator dataflow engine to initialize the prototype when attaching a copy to the DOM, a CodeBehind controller module for those model instances, a private datastore per model instance and a separate datastore shared by all instances of that model. WHAT IS THE dflibg/js SDK / WHAT CAN IT DO - TOOLS: dfirefly - examine/inspect: has 4 sub-panels: examine - inspects modules, nodes, their datastreams and dataflows. packages - inspects models/model instances, datastores and datastore views. connections - examines datastream connections with the document and datastores - datastream sources and their dataflows into the dataflow engines, and document elements/properties to which datastreams are attached. networks - inspects streams and dialogues: client datastreams - datastreams directed to another module, window, tab; streams - conduits for datastreams negotiated between modules, windows, and even an application and an extension; proxies - nodes whose promise is a stand-in for a remote server, a promise for a dialogue with another module, application, etc. dfirefly - watch: monitor individual datastreams - browse the dataflow graph/tree and select individual datastreams to watch live. dfirefly - debug: browse and set dataflow breakpoints in the application; step through and over dataflow propagations; examine the state of all components in the dataflow event thread. dfirefly - audit: create and examine dataflow lint reports for individual modules and the application. generate an unresolved references report. dfirefly - analyze: visualize dataflow - generate dataflow graphs showing how data flows through the application - from where it originates to how it effects document elements, datastores, and more; selectively show data sources, sinks, data inheritance, etc. map dataflow - generate a dataflow cluster analysis and a DOT language representation. profile - (preliminary) - generate a module-relative computational cost analysis. dfirefly - console: although the console can not yet poke at and modify dataflow, it does include a dataflow log 'drawer' (that can be opened in any panel). the dataflow log shows compilation messages, warnings and errors from the library. HOW DO I LEARN MORE - Additional overview information is available by opening www.dflibg.org/sdkfirefly.html** This shows dfirefly's panels / overview documentation / panel detail nodes, etc., but without any content (since it is not connected as an extension to a web page). Check out the overview menu item in the debug panel as an introduction as to what is possible with a dataflow breakpoint debugger (including a semi-live sample). Because dflibg/js dfirefly is itself written as a dflibg/js-based dataflow application, dfirefly can be be used to inspect dfirefly's front-end, sdkfirefly.html. Explore / inspect - install the extension and then open sdkfirefly.html. The dfirefly page-action icon will appear. Click on that icon and see a demonstration of the SDK live.