SlideShare a Scribd company logo
1 of 265
Refactoring
  Jesse Warden
Who?
Who?

• Jesse Warden
Who?

• Jesse Warden
• Web App Solution
Who?

• Jesse Warden
• Web App Solution
• Flex, Java, and BlazeDS Consulting
What?
What?

• Basic Refactoring
What?

• Basic Refactoring
• Priority Pyramid
What?

• Basic Refactoring
• Priority Pyramid
• Stories
What?

• Basic Refactoring
• Priority Pyramid
• Stories
• Leadership
Why?
Why?

• Coding is more fun
Why?

• Coding is more fun
• People like working with you
Why?

• Coding is more fun
• People like working with you
• Grow in your career
Why?

• Coding is more fun
• People like working with you
• Grow in your career
• Better Software
No seriously...
No seriously...

• I loathe it
No seriously...

• I loathe it
• People have said articles helped them
No seriously...

• I loathe it
• People have said articles helped them
• Mentor Leadership / Stewardship
Basics
Basics

• Exceptions
Basics

• Exceptions
• Architecture
Basics

• Exceptions
• Architecture
• Refactoring Paths
Exceptions
Exceptions

• Synchronous: 100%
Exceptions

• Synchronous: 100%
• Asynchronous: 99%
Exceptions

• Synchronous: 100%
• Asynchronous: 99%
• Null Pointers
Synchronous
Synchronous

• throw new Error(“b00m”);
Synchronous

• throw new Error(“b00m”);
• try/catch
Synchronous

• throw new Error(“b00m”);
• try/catch
• “Road to hell is paved with good intentions.”
Asynchronous
Asynchronous

• dispatchEvent(new ErrorEvent(“b00m”));
Asynchronous

• dispatchEvent(new ErrorEvent(“b00m”));
• addEventListener(“b00m”, onHandle);
Asynchronous

• dispatchEvent(new ErrorEvent(“b00m”));
• addEventListener(“b00m”, onHandle);
• Same as before, don’t swallow.
Uncaught
Uncaught

• loaderInfo.uncaughtErrorEvents
Uncaught

• loaderInfo.uncaughtErrorEvents
• won’t always get a stack trace
Uncatchable
Uncatchable


• Error #2044: Unhandled IOErrorEvent:.
  text=Error #2036: Load Never Completed.
Null Pointers
Null Pointers

• Sir Charles Antony Richard Hoare
Null Pointers

• Sir Charles Antony Richard Hoare
• British Computer Scientist
Null Pointers

• Sir Charles Antony Richard Hoare
• British Computer Scientist
• "I call it my billion-dollar mistake"
Null Pointers

• Sir Charles Antony Richard Hoare
• British Computer Scientist
• "I call it my billion-dollar mistake"
• Programmer Enemy #1
Null Pointers
Null Pointers

• Loose Typing
Null Pointers

• Loose Typing
• External Data
ExternalInterface
ExternalInterface

• Marshall Exceptions
ExternalInterface

• Marshall Exceptions
• set to true
Exceptions
Exceptions

• Crashes
Exceptions

• Crashes
• Unexpected/Unrelated Errors
Exceptions

• Crashes
• Unexpected/Unrelated Errors
• Breed Insecurity
Exceptions

• Crashes
• Unexpected/Unrelated Errors
• Breed Insecurity
• Cause Fire Drills
Exceptions
Exceptions

• Best Defense is a Good Offense
Exceptions

• Best Defense is a Good Offense
• Broken Windows
Fighting Back
Fighting Back

• try/catch
Fighting Back

• try/catch
• log the catch
Fighting Back

• try/catch
• log the catch
• log uncaughtErrors
Fighting Back

• try/catch
• log the catch
• log uncaughtErrors
• Code Review
Loose Typing
Loose Typing
• Object
Loose Typing
• Object
• Dictionary
Loose Typing
• Object
• Dictionary
•*
Loose Typing
• Object
• Dictionary
•*
• Dynamic
Loose Typing
• Object
• Dictionary
•*
• Dynamic
• Interfaces
Object
Object

• Protoyping
Object

• Protoyping
• JSON
Object

• Protoyping
• JSON
• Teaching
Object

• Protoyping
• JSON
• Teaching
• delete slots
Object Solution
Object Solution

• Don’t Use Object
Object Solution

• Don’t Use Object
• Ensure casts aren’t null
Object Solution

• Don’t Use Object
• Ensure casts aren’t null
• Same for Dynamic & Interface
Dictionary
Dictionary

• Easier lookups vs. ByteArray
Dictionary

• Easier lookups vs. ByteArray
• Strict Equality on Keys
Dictionary Solution
Dictionary Solution


• Wrap
Star
Star


•*
Star Solution
Star Solution

• Don’t Use It
Star Solution

• Don’t Use It
• Log It
Star Solution

• Don’t Use It
• Log It
• Ensure Consumers Guard
External Data
External Data

• Factories
External Data

• Factories
• Value Object / Data Transfer Object
External Data

• Factories
• Value Object / Data Transfer Object
• Parsing
Parsing
Parsing

• Poison Entire System
Parsing

• Poison Entire System
• When in doubt, return null
Parsing

• Poison Entire System
• When in doubt, return null
• Proactive: throw meaningful error
Parsing

• Poison Entire System
• When in doubt, return null
• Proactive: throw meaningful error
• Uber Proactive: Unit Test
Parsing
Parsing


• Holy S$*(%&: Null Pattern
Architecture
Architecture

• Encapsulation
Architecture

• Encapsulation
• Testability
Encapsulation
Encapsulation

• Black Box
Encapsulation

• Black Box
• Manages its own internal state
Bad Encapsulation
Bad Encapsulation

• Global Variables / Singletons
Bad Encapsulation

• Global Variables / Singletons
• No Accessors/API for Data Models
Bad Encapsulation

• Global Variables / Singletons
• No Accessors/API for Data Models
• No API so you dig
Testability
Testability

• Easy to test
Testability

• Easy to test
• not welded together
Testability

• Easy to test
• not welded together
• not spaghetti code
Services
Services

• Service Inside the Proxy
Services

• Service Inside the Proxy
• Not a service, just a loader
Services

• Service Inside the Proxy
• Not a service, just a loader
• No centralized error reporting
Service Solutions
Service Solutions

• Create a base class
Service Solutions

• Create a base class
• log all errors
Service Solutions

• Create a base class
• log all errors
• create an integration suite
Big Ole’ Commands
Big Ole’ Commands


• switch
Refactoring Paths
Refactoring Paths

• What do you build now?
Refactoring Paths

• What do you build now?
• What do you change to later?
Refactoring Paths

• What do you build now?
• What do you change to later?
• When?
Refactoring Paths

• What do you build now?
• What do you change to later?
• When?
• Not Architecting
Refactoring Path
Refactoring Path

Ability to code now, satisfy non-programmers
for trust earning, with assurance you haven’t
coded yourself into a corner.
Marriage
Marriage


Compromise
Good Book
It’s Ok. It’ll Be Ok.
It’s Ok. It’ll Be Ok.

• Lose some battles...
It’s Ok. It’ll Be Ok.

• Lose some battles...
• ...as long as you win the war.
Detractors
Detractors

• Don’t have their Poetic License
Detractors

• Don’t have their Poetic License
• Fear
Detractors

• Don’t have their Poetic License
• Fear
• Understand the Rules & Ramifications
Detractors
Detractors

• Ivory Zealots
Detractors

• Ivory Zealots
• Scars
Detractors

• Ivory Zealots
• Scars
• Don’t Believe in their Refactoring Ability
Detractors

• Ivory Zealots
• Scars
• Don’t Believe in their Refactoring Ability
• or Yours
Refactoring Paths
Refactoring Paths

• Refactoring is Temporal
Refactoring Paths

• Refactoring is Temporal
• Architecture is not
Refactoring Paths

• Refactoring is Temporal
• Architecture is not
• Architecture is Plan
Refactoring Paths

• Refactoring is Temporal
• Architecture is not
• Architecture is Plan
• Refactoring is a Strategy
Refactoring Path
Refactoring Path

• Know the rule(s) ur breaking
Refactoring Path

• Know the rule(s) ur breaking
• do it
Refactoring Path

• Know the rule(s) ur breaking
• do it
• document what needs to change
Refactoring Path

• Know the rule(s) ur breaking
• do it
• document what needs to change
• when you have time, fix it
Refactoring Paths
Refactoring Paths

• Use a *
Refactoring Paths

• Use a *
• Cast It
Refactoring Paths
Refactoring Paths

• Make an Object
Refactoring Paths

• Make an Object
• Make a ValueObject
Refactoring Path
Refactoring Path


• Event with public var data:*;
Refactoring Path
Refactoring Path

• Scouting
Refactoring Path

• Scouting
• Bear Bait
Refactoring Path

• Scouting
• Bear Bait
• Intentional Parsing Throws
Refactoring Path

• Scouting
• Bear Bait
• Intentional Parsing Throws
• Intentional Grenades
Refactoring Path
Refactoring Path
• if if if if if if
Refactoring Path
• if if if if if if
• then then then then
Refactoring Path
• if if if if if if
• then then then then
• badger badger badger badger
Refactoring Path
• if if if if if if
• then then then then
• badger badger badger badger
• make a switch
Refactoring Path
• if if if if if if
• then then then then
• badger badger badger badger
• make a switch
• make functions
Refactoring Paths
Refactoring Paths

• <s:Component> vs Item Renderer
Refactoring Paths

• <s:Component> vs Item Renderer
• Passive
Priority Pyramid
Priority Pyramid
1. Report
Priority Pyramid
1. Report
2. Understanding
Priority Pyramid
1. Report
2. Understanding
3. Trust
Priority Pyramid
1. Report
2. Understanding
3. Trust
4. Lead
Priority Pyramid
Priority Pyramid
5. Build
Priority Pyramid
5. Build
6. Explosions
Priority Pyramid
5. Build
6. Explosions
7. Diagnostics
Priority Pyramid
5. Build
6. Explosions
7. Diagnostics
8. Architecture
Priority Pyramid
5. Build
6. Explosions
7. Diagnostics
8. Architecture
9. Workflow
Pyramid: Report
Pyramid: Report

• Who is my boss?
Pyramid: Report

• Who is my boss?
• What will make you happy when I leave?
Pyramid: Understanding
Pyramid: Understanding

• Listen
Pyramid: Understanding

• Listen
• What’s the True Goal?
Pyramid: Understanding

• Listen
• What’s the True Goal?
• What are the problems?
Pyramid: Understanding

• Listen
• What’s the True Goal?
• What are the problems?
• What are the challenges?
Pyramid: Understanding
Pyramid: Understanding

• Explore & Document
Pyramid: Understanding

• Explore & Document
 • Learn Data Model
Pyramid: Understanding

• Explore & Document
 • Learn Data Model
 • Learn Framework
Pyramid: Understanding

• Explore & Document
 • Learn Data Model
 • Learn Framework
 • Understanding the Story
Pyramid: Understanding
Pyramid: Understanding


 • Looking for Red Flags
Pyramid: Understanding


 • Looking for Red Flags
 • Looking for Mines
Pyramid: Understanding


 • Looking for Red Flags
 • Looking for Mines
 • Looking for Validation
Pyramid: Understanding
Pyramid: Understanding


 • Dissect People
Pyramid: Understanding


 • Dissect People
 • What makes them tick?
Pyramid: Understanding


 • Dissect People
 • What makes them tick?
 • Who listens to who?
Pyramid: Trust
Pyramid: Trust

• Make Friends
Pyramid: Trust

• Make Friends
• Provide Immediate Value
Pyramid: Trust
Pyramid: Trust

• Check in code into source control 1st week
Pyramid: Trust

• Check in code into source control 1st week
• fix a problem
Pyramid: Trust

• Check in code into source control 1st week
• fix a problem
• Only get 1 change at 1st impression
Pyramid: Trust

• Check in code into source control 1st week
• fix a problem
• Only get 1 change at 1st impression
• Under Promise, Over Deliver
Pyramid: Trust
Pyramid: Trust

• Stop Fire Drills
Pyramid: Trust

• Stop Fire Drills
• Empower Through Diagnostic Tools
Pyramid: Trust

• Stop Fire Drills
• Empower Through Diagnostic Tools
• Easy to use, visible logger
Pyramid: Trust

• Stop Fire Drills
• Empower Through Diagnostic Tools
• Easy to use, visible logger
• Easy to use, visible environment info
Pyramid: Trust
Pyramid: Trust

• Update on Direction
Pyramid: Trust

• Update on Direction
• Provide Transparency
Pyramid: Trust

• Update on Direction
• Provide Transparency
• What, why, and when
Pyramid: Trust

• Update on Direction
• Provide Transparency
• What, why, and when
• Plan A, Plan B
Pyramid: Lead
Pyramid: Lead

• Be Positive
Pyramid: Lead

• Be Positive
• Short Term Goals
Pyramid: Lead

• Be Positive
• Short Term Goals
• Long Term Goals
Pyramid: Lead
Pyramid: Lead

• Plan
Pyramid: Lead

• Plan
• 1 thing at a time
Pyramid: Lead

• Plan
• 1 thing at a time
• Assess Problems
Pyramid: Lead

• Plan
• 1 thing at a time
• Assess Problems
• Document
Pyramid: Lead
Pyramid: Lead


• Re-prioritize as needed
Pyramid: Lead
Pyramid: Lead

• Delegate
Pyramid: Lead

• Delegate
• Help
Pyramid: Lead

• Delegate
• Help
• Divide & Conquer
Pyramid: Lead

• Delegate
• Help
• Divide & Conquer
• Short Term Branches: 3 days
Experiences
Hearts & Minds
Fight Only to Win
People on Pedestals
Idle Hands
Winston Wolfe
    [show video]
      [dissect]
Conclusions
Conclusions

• Exceptions: Catch & Log
Conclusions

• Exceptions: Catch & Log
• Refactoring: Remember The Paths
Conclusions

• Exceptions: Catch & Log
• Refactoring: Remember The Paths
• Listen, Build Trust, and Lead
Thank You! Questions?
Thank You! Questions?

 Jesse Warden
Thank You! Questions?

 Jesse Warden
 webappsolution.com
Thank You! Questions?

 Jesse Warden
 webappsolution.com
 jessewarden.com
Thank You! Questions?

 Jesse Warden
 webappsolution.com
 jessewarden.com
 @jesterxl

More Related Content

What's hot

Becoming a more productive Rails Developer
Becoming a more productive Rails DeveloperBecoming a more productive Rails Developer
Becoming a more productive Rails DeveloperJohn McCaffrey
 
LEMON - On Drupal diseases and cures
LEMON - On Drupal diseases and curesLEMON - On Drupal diseases and cures
LEMON - On Drupal diseases and curesjhamiltoorion
 
Different ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykDifferent ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykRuby Meditation
 
LeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than developmentLeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than developmentJohn McCaffrey
 
Interconnected gear pieces smart arts process 6 stages style 1 powerpoint pr...
Interconnected gear pieces  smart arts process 6 stages style 1 powerpoint pr...Interconnected gear pieces  smart arts process 6 stages style 1 powerpoint pr...
Interconnected gear pieces smart arts process 6 stages style 1 powerpoint pr...SlideTeam.net
 
Doing cool stuff with WordPress
Doing cool stuff with WordPressDoing cool stuff with WordPress
Doing cool stuff with WordPressPeter Baylies
 
Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017Adrian Roselli
 
Becoming a more Productive Rails Developer
Becoming a more Productive Rails DeveloperBecoming a more Productive Rails Developer
Becoming a more Productive Rails DeveloperJohn McCaffrey
 
Japanese CloudSearch Use-Cases and Tech Deep Dive
Japanese CloudSearch Use-Cases and Tech Deep DiveJapanese CloudSearch Use-Cases and Tech Deep Dive
Japanese CloudSearch Use-Cases and Tech Deep DiveEiji Shinohara
 
prdc10-tdd-patterns
prdc10-tdd-patternsprdc10-tdd-patterns
prdc10-tdd-patternsAmir Barylko
 
CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2Amir Barylko
 
PRDC-ror-trilogy-part1
PRDC-ror-trilogy-part1PRDC-ror-trilogy-part1
PRDC-ror-trilogy-part1Amir Barylko
 
Ruby Masters 2011
Ruby Masters 2011Ruby Masters 2011
Ruby Masters 2011Fabio Akita
 
Developing With Django
Developing With DjangoDeveloping With Django
Developing With DjangoDaniel Ryan
 

What's hot (15)

Becoming a more productive Rails Developer
Becoming a more productive Rails DeveloperBecoming a more productive Rails Developer
Becoming a more productive Rails Developer
 
LEMON - On Drupal diseases and cures
LEMON - On Drupal diseases and curesLEMON - On Drupal diseases and cures
LEMON - On Drupal diseases and cures
 
Different ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail BortnykDifferent ways of integrating React into Rails - Mikhail Bortnyk
Different ways of integrating React into Rails - Mikhail Bortnyk
 
LeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than developmentLeanStartup:Research is cheaper than development
LeanStartup:Research is cheaper than development
 
Interconnected gear pieces smart arts process 6 stages style 1 powerpoint pr...
Interconnected gear pieces  smart arts process 6 stages style 1 powerpoint pr...Interconnected gear pieces  smart arts process 6 stages style 1 powerpoint pr...
Interconnected gear pieces smart arts process 6 stages style 1 powerpoint pr...
 
Doing cool stuff with WordPress
Doing cool stuff with WordPressDoing cool stuff with WordPress
Doing cool stuff with WordPress
 
Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017Selfish Accessibility — WordCamp Europe 2017
Selfish Accessibility — WordCamp Europe 2017
 
Becoming a more Productive Rails Developer
Becoming a more Productive Rails DeveloperBecoming a more Productive Rails Developer
Becoming a more Productive Rails Developer
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Japanese CloudSearch Use-Cases and Tech Deep Dive
Japanese CloudSearch Use-Cases and Tech Deep DiveJapanese CloudSearch Use-Cases and Tech Deep Dive
Japanese CloudSearch Use-Cases and Tech Deep Dive
 
prdc10-tdd-patterns
prdc10-tdd-patternsprdc10-tdd-patterns
prdc10-tdd-patterns
 
CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2
 
PRDC-ror-trilogy-part1
PRDC-ror-trilogy-part1PRDC-ror-trilogy-part1
PRDC-ror-trilogy-part1
 
Ruby Masters 2011
Ruby Masters 2011Ruby Masters 2011
Ruby Masters 2011
 
Developing With Django
Developing With DjangoDeveloping With Django
Developing With Django
 

Viewers also liked

Webcast: Asynchronous Programming Demystified
Webcast: Asynchronous Programming DemystifiedWebcast: Asynchronous Programming Demystified
Webcast: Asynchronous Programming DemystifiedSerge Baranovsky
 
Asynchronous programming
Asynchronous programmingAsynchronous programming
Asynchronous programmingChester Hartin
 
Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Codemotion
 
Refactoring 101
Refactoring 101Refactoring 101
Refactoring 101Adam Culp
 
Refactoring - An Introduction
Refactoring - An IntroductionRefactoring - An Introduction
Refactoring - An IntroductionGiorgio Vespucci
 
Refactoring Tips by Martin Fowler
Refactoring Tips by Martin FowlerRefactoring Tips by Martin Fowler
Refactoring Tips by Martin FowlerIgor Crvenov
 
Refactoring: Improve the design of existing code
Refactoring: Improve the design of existing codeRefactoring: Improve the design of existing code
Refactoring: Improve the design of existing codeValerio Maggio
 

Viewers also liked (8)

Webcast: Asynchronous Programming Demystified
Webcast: Asynchronous Programming DemystifiedWebcast: Asynchronous Programming Demystified
Webcast: Asynchronous Programming Demystified
 
Asynchronous programming
Asynchronous programmingAsynchronous programming
Asynchronous programming
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 
Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...
 
Refactoring 101
Refactoring 101Refactoring 101
Refactoring 101
 
Refactoring - An Introduction
Refactoring - An IntroductionRefactoring - An Introduction
Refactoring - An Introduction
 
Refactoring Tips by Martin Fowler
Refactoring Tips by Martin FowlerRefactoring Tips by Martin Fowler
Refactoring Tips by Martin Fowler
 
Refactoring: Improve the design of existing code
Refactoring: Improve the design of existing codeRefactoring: Improve the design of existing code
Refactoring: Improve the design of existing code
 

Similar to Refactoring RIA Unleashed 2011

No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes
No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural ProcessesNo Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes
No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural ProcessesNo Show Conference
 
WebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D EngineWebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D Engineaerotwist
 
Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06jimbojsb
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing codeZivtech, LLC
 
My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicApollo Clark
 
Tackling Testing Telephony
Tackling Testing Telephony Tackling Testing Telephony
Tackling Testing Telephony Mojo Lingo
 
Trending with Purpose
Trending with PurposeTrending with Purpose
Trending with PurposeJason Dixon
 
'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam KnightTEST Huddle
 
Cloud conference - mongodb
Cloud conference - mongodbCloud conference - mongodb
Cloud conference - mongodbMitch Pirtle
 
In-house web automation?
In-house web automation?In-house web automation?
In-house web automation?Adam Christian
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Alan Christensen
 
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o MalTDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o Maltdc-globalcode
 
My Parents Configured Their Living Room
My Parents Configured Their Living RoomMy Parents Configured Their Living Room
My Parents Configured Their Living RoomMichael Goetz
 
6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friendForrest Chang
 

Similar to Refactoring RIA Unleashed 2011 (20)

No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes
No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural ProcessesNo Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes
No Show 2012 - Heather Decker-Davis and Luke Dicken - Procedural Processes
 
WebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D EngineWebGL Camp 4 - A3 3D Engine
WebGL Camp 4 - A3 3D Engine
 
Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06Austin NoSQL 2011-07-06
Austin NoSQL 2011-07-06
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is Magic
 
Why puppet? Why now?
Why puppet? Why now?Why puppet? Why now?
Why puppet? Why now?
 
Tackling Testing Telephony
Tackling Testing Telephony Tackling Testing Telephony
Tackling Testing Telephony
 
Functional Ruby
Functional RubyFunctional Ruby
Functional Ruby
 
Trending with Purpose
Trending with PurposeTrending with Purpose
Trending with Purpose
 
3 years with Clojure
3 years with Clojure3 years with Clojure
3 years with Clojure
 
'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight'An Evolution Into Specification By Example' by Adam Knight
'An Evolution Into Specification By Example' by Adam Knight
 
Cloud conference - mongodb
Cloud conference - mongodbCloud conference - mongodb
Cloud conference - mongodb
 
In-house web automation?
In-house web automation?In-house web automation?
In-house web automation?
 
Xtext Best Practices
Xtext Best PracticesXtext Best Practices
Xtext Best Practices
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
Tweakers Anonymous
Tweakers AnonymousTweakers Anonymous
Tweakers Anonymous
 
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o MalTDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
TDC2016SP - Otimização Prematura: a Raíz de Todo o Mal
 
My Parents Configured Their Living Room
My Parents Configured Their Living RoomMy Parents Configured Their Living Room
My Parents Configured Their Living Room
 
onGameStart
onGameStartonGameStart
onGameStart
 
6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend
 

More from Jesse Warden

System webpack-jspm
System webpack-jspmSystem webpack-jspm
System webpack-jspmJesse Warden
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overviewJesse Warden
 
Technical debt in space jesse warden - 100yss 2015
Technical debt in space   jesse warden - 100yss 2015Technical debt in space   jesse warden - 100yss 2015
Technical debt in space jesse warden - 100yss 2015Jesse Warden
 
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011Jesse Warden
 
Getting Complex Designs into Flex - FITC 2011
Getting Complex Designs into Flex - FITC 2011Getting Complex Designs into Flex - FITC 2011
Getting Complex Designs into Flex - FITC 2011Jesse Warden
 
How to Launch a Small Software Product
How to Launch a Small Software ProductHow to Launch a Small Software Product
How to Launch a Small Software ProductJesse Warden
 
Robotlegs on Top of Gaia
Robotlegs on Top of GaiaRobotlegs on Top of Gaia
Robotlegs on Top of GaiaJesse Warden
 

More from Jesse Warden (7)

System webpack-jspm
System webpack-jspmSystem webpack-jspm
System webpack-jspm
 
Angular 2 overview
Angular 2 overviewAngular 2 overview
Angular 2 overview
 
Technical debt in space jesse warden - 100yss 2015
Technical debt in space   jesse warden - 100yss 2015Technical debt in space   jesse warden - 100yss 2015
Technical debt in space jesse warden - 100yss 2015
 
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
Mobile Gaming: Corona SDK & Adobe AIR RIA Unleashed 2011
 
Getting Complex Designs into Flex - FITC 2011
Getting Complex Designs into Flex - FITC 2011Getting Complex Designs into Flex - FITC 2011
Getting Complex Designs into Flex - FITC 2011
 
How to Launch a Small Software Product
How to Launch a Small Software ProductHow to Launch a Small Software Product
How to Launch a Small Software Product
 
Robotlegs on Top of Gaia
Robotlegs on Top of GaiaRobotlegs on Top of Gaia
Robotlegs on Top of Gaia
 

Recently uploaded

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 

Refactoring RIA Unleashed 2011

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n
  146. \n
  147. \n
  148. \n
  149. \n
  150. \n
  151. \n
  152. \n
  153. \n
  154. \n
  155. \n
  156. \n
  157. \n
  158. \n
  159. \n
  160. \n
  161. \n
  162. \n
  163. \n
  164. \n
  165. \n
  166. \n
  167. \n
  168. \n
  169. \n
  170. \n
  171. \n
  172. \n
  173. \n
  174. \n
  175. \n
  176. \n
  177. \n
  178. \n
  179. \n
  180. \n
  181. \n
  182. \n
  183. \n
  184. \n
  185. \n
  186. \n
  187. \n
  188. \n
  189. \n
  190. \n
  191. \n
  192. \n
  193. \n
  194. \n
  195. \n
  196. \n