8
中島滋 a.k.a. ledsun

東京Node学園祭飛び込みLT

Embed Size (px)

Citation preview

中島滋 a.k.a. ledsun

Attributes

• Programmer • JavaScript for browsers

• MVC

•忍者式テスト(Ninja Test)

• The second practitioner in the world

Products

• text annotation editorhttp://textae.pubannotation.org/

• graph editorhttp://lodqa.org/

• furiosahttps://github.com/ledsun/furiosa

Short introduction of furiosa• furiosa's targets are JavaScript applications working in browsers.

• furiosa is a helper tool to user acceptance test. It finds changes of behaviors of an application.

• furiosa is a static analysis tool. The target is made with a specific MVC framework of the “aciton-stream”.

• action-stream is a framework to split the controller of MVC into streams. Stream transmit “action”s that is abstractions of user events. Each streams are described declaratively what “action”s are care.

Stream Example

this.bindActions(target.MODEL_NODE, [ [actionType.CREATE, (action, push) => createNode(nodes, action, push)], [actionType.CREATE, (action, push) => autoEdgeCreation(action, nodes, push)], [actionType.FOCUS, (action, push) => setFocus(nodes, action, push)], [actionType.DELETE, (action, push) => deleteNode(nodes, action, push)], [actionType.HOVER, (action, push) => push(target.VIEW_NODE)], [actionType.UNHOVER, (action, push) => push(target.VIEW_NODE)], [actionType.UPDATE_LABEL, (action, push) => updateNodeLabel(nodes, action, push)], [actionType.UPDATE_TERM, (action, push) => updateNodeTerm(nodes, action, push)], [actionType.VALIDATE, (action, push) => validateNode(nodes, action, push)]])

target to action

type of action handler

furiosa result

{ "filename": "DataModelNodeStream.js", "actions": [ { "target": "target.MODEL_NODE", "types": [ { "type": "actionType.CREATE", "handler": "--- ArrowFunction --->" }, { "type": "actionType.CREATE", "handler": "--- ArrowFunction --->" }, { "type": "actionType.FOCUS", "handler": "--- ArrowFunction --->" }, { "type": "actionType.DELETE", "handler": "--- ArrowFunction --->" }, { "type": "actionType.HOVER", "handler": "--- ArrowFunction --->" }, { "type": "actionType.UNHOVER", "handler": "--- ArrowFunction --->" }, { "type": "actionType.UPDATE_LABEL", "handler": "--- ArrowFunction --->" }, { "type": "actionType.UPDATE_TERM", "handler": "--- ArrowFunction --->" }, { "type": "actionType.VALIDATE", "handler": "--- ArrowFunction --->" } ] } ]}

DEMO

git diff --name-only v0.3.4 v0.1.1 | furiosa

Thanks!