JQuery Finding your way through scattered code Andrew
- Slides: 22
JQuery: Finding your way through scattered code Andrew Eisenberg, Doug Janzen, Kris De Volder, Ryan Wannop Software Practices Lab. -- The University of British Columbia 1
JQuery: Motivation Typical ways to explore scattered concerns: Browse structural views - package structures, inheritance hierarchy Search for a specific pattern - regular expressions Follow relationships - calls, instantiates, references Most modern IDEs can help with all of this, but… Software Practices Lab. -- The University of British Columbia 2
JQuery: Motivation Explosion of browsers Call Hierarchy Inheritance Hierarchy Browsers are too specific Poor use of screen Real. Estate Exploration itself is scattered and tangled Package Explorer Search Software Practices Lab. -- The University of British Columbia 3
JQuery: How it works Avoiding loss of context: Problem: Too many browsers leads to loss of context. Solution: Support many views within a New Choose Browser single tool. Start with Package Browser Software Practices Lab. -- The University of British Columbia 4
JQuery: How it works Both views in same window Abstract Class Browser Bundled with many more browsers Package Browser Software Practices Lab. -- The University of British Columbia 5
JQuery: How it works Incrementally perform the exploration by extending each view with a sub-view 1. Select extension point Software Practices Lab. -- The University of British Columbia 6
JQuery: How it works Incrementally perform the exploration by extending views with a new extensions 1. Select extension point 2. Choose subquery Software Practices Lab. -- The University of British Columbia 7
JQuery: How it works Incrementally perform the exploration by extending views with a new extensions 1. Select extension point 2. Choose subquery 3. Continue exploration Bundled with many more sub-browsers Software Practices Lab. -- The University of British Columbia 8
JQuery: How it works Filtering by regular expression Search for “Figure”: • Open query dialog • double-click Software Practices Lab. -- The University of British Columbia 9
JQuery: How it works Filtering by regular expression Search for “Figure”: • Open query dialog • Edit query Software Practices Lab. -- The University of British Columbia 10
JQuery: How it works Filtering by regular expression Search for “Figure”: • Open query dialog • Edit query • Close dialogue (query automatically reexecutes) Software Practices Lab. -- The University of British Columbia 11
JQuery: How it works Filtering by regular expression Browser is now filtered by “Figure” Can customize queries in many other ways too. Software Practices Lab. -- The University of British Columbia 12
JQuery: An Example Task: Make a enhancement to the JHot. Draw codebase. Nontrivial, but some details abstracted away. Based on an actual task we performed with little prior knowledge of the codebase. Software Practices Lab. -- The University of British Columbia 13
JQuery: The Plan Menu Change Pen Color ? ? ? Frame Rectangle No Frame Text Software Practices Lab. -- The University of British Columbia 14
JQuery: Executing the Plan Menu Change Pen Color ? ? ? Found by regex search for *Attribute* Change Attribute Command Step 1: Find menu creation Step 2: Find relationship to frames ? ? ? Frame Rectangle No Frame Text Software Practices Lab. -- The University of British Columbia 15
JQuery: Executing the Plan creates create. Color. Menu Draw Application calls create. Attr. Menu Change Attribute execute Command Determined that Pen Color sets Menu Frame. Color Attribute ? ? ? Frame Rectangle No Frame Text Software Practices Lab. -- The University of British Columbia 16
JQuery: Executing the Plan creates create. Color. Menu Draw Application calls create. Attr. Menu Change Attribute execute Command Determined that Pen Color sets Frame. Color Attribute sidetrack to explore Figure. Attributes Figure Attribute Figure calls set. Attr implemented by set. Attr get. Attr dataflow draw. Fr Frame Rectangle No Frame Text Software Practices Lab. -- The University of British Columbia 17
JQuery: Executing the Plan creates create. Color. Menu Draw Application calls create. Attr. Menu Determined that Pen Color sets Frame. Color Attribute sidetrack to explore Figure. Attributes Change Attribute execute Command Figure Attribute Figure calls set. Attr implemented by change this method set. Attr dataflow get. Attr draw. Fr implemented by Rectangle Figure draw. Fr Text Figure Software Practices Lab. -- The University of British Columbia draw. Fr 18
JQuery: Versatile Code Navigator Browse Scattered Code 1. Browsing structural views 2. Searching for a specific pattern 3. Following relationships Current IDE’s: “explosion” of disconnected views loss of context disorientation JQuery: within a single navigation view retain context reduce disorientation Software Practices Lab. -- The University of British Columbia 19
JQuery: Customization JQuery can do more: can create more powerful queries can include data from other tools has extendable menu items virtual source files (in next release) See our website! Software Practices Lab. -- The University of British Columbia 20
JQuery: De-tangling searching Why use 4 browsers when you can use 1? Software Practices Lab. -- The University of British Columbia 21
Questions? Download JQuery (new release out soon): Google: Prevents tangled and scattered searches Reduces disorientation of complex exploration Maintains context Andrew Eisenberg: ade@cs. ubc. ca Software Practices Lab. -- The University of British Columbia 22
- Jquery utiliza seletores css para selecionar elementos?
- Ajax sqlite
- Jquery selectors tutorial
- Prepend jquery
- Jquery functionality
- Workflow jquery
- Jquery keyframes
- Jquery mobile
- Xml to json jquery
- Jquery optimization selectors
- Back scattered electrons
- Scattered fibroglandular
- Metar cywg
- Seed scattered and sown
- Scattered white matter lesions
- The scattered farmstead community
- A plain full of grasses and scattered trees and shrubs
- Justice involved supportive housing
- I can see you now hillsong
- Code commit code build code deploy
- Restoring lost body fluids
- Finding answers through data collection
- Developer/tester support for developing a defect repository