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

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 

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