SlideShare ist ein Scribd-Unternehmen logo
1 von 80
Object Oriented Programming What does OOP stand for? Colin Riley @domipheus
Me ,[object Object],[object Object],[object Object],[object Object]
Coding talks ,[object Object],[object Object],[object Object],[object Object]
To begin, a question. ,[object Object],[object Object],[object Object],[object Object],[object Object]
My view ,[object Object],[object Object],[object Object],[object Object]
A quick link back ,[object Object],[object Object],[object Object]
For me, it plays a part. ,[object Object],[object Object],[object Object],[object Object]
So what can OOP stand for? O OP  O bfuscates  P roductivity OOP
Ehh? What you smoking? ,[object Object],[object Object],[object Object]
[object Object]
WTF
 
WTF
 
WTF
 
 
WTF
 
WTF
 
WTF
 
SOFTWARE IS A PLATFORM? ,[object Object],[object Object],[object Object],[object Object],See ‘Three Big Lies’ by Mike Acton
[object Object],[object Object],[object Object]
More examples I retweeted a talk that Jonathan Blow of Braid fame gave to Berkeleys compsci group. He mentioned that he now does pretty much everything in simple flat arrays, no complicated data structures.
Productivity ,[object Object]
LittleBigPlanet ,[object Object],[object Object],[object Object],[object Object],[object Object]
Need a system for handling the states of your things?
That  does not mean  you need a massive component system that is scalable and can handle any matter of things and things v2.0 and things v3.0
[object Object],[object Object],[object Object],[object Object]
But what about the future? ,[object Object],[object Object],[object Object]
So… ,[object Object],[object Object],[object Object],[object Object]
Hrm… ,[object Object],[object Object],[object Object]
The beginning. ,[object Object],[object Object],[object Object]
 
 
 
Why is that? ,[object Object]
 
 
 
 
 
How do we get the data up to the code?
 
 
 
And here where OOP falls flat ,[object Object],[object Object]
So what can OOP stand for? O OP  O bliterates  P erformance OOP (in high data throughput cases, which there are many in games) is basically
An example ,[object Object],[object Object],[object Object],[object Object],[object Object]
struct  Details  { int numShots; int numDeaths; int numTargets; int lifetime; int state; int priority; int health; int ammo;  int friendThings[4]; }; // 48 bytes class  Thing  { Vector3  mPosition; Quat   mOrientation; Colour  mColour; Vector3  mVelocity; float  mDecay; Details   mDetails; }; // 96 bytes
OOP ish class  ThingSystem  { String  mName; std::vector<Thing>  mThings; .... }; void  Thing :: UpdatePosition () { mPosition += mVelocity; mVelocity *= mDecay; } void  ThingSystem :: UpdateThingPositions () { for( vector <int>:: iterator  iter = mThings. begin ();    iter != mThings. end (); iter++) { *iter. UpdatePosition (); } }
Now… ,[object Object],[object Object],[object Object],[object Object],[object Object]
OOP fits 4 things.
 
Not great is it?
Enter DOD ,[object Object],[object Object],[object Object]
Enter DOD ,[object Object],[object Object]
DOD ish class  ThingSystem  { Vector3  mThingPosition[MAX_THINGS]; Quat  mThingOrientation[MAX_THINGS]; Colour  mThingColour[MAX_THINGS]; Vector3  mThingVelocity[MAX_THINGS]; float  mThingDecay[MAX_THINGS]; Details mThingDetails[MAX_THINGS]; int  mNumThings; .... }; void  ThingSystem :: UpdateThingPositions () { for(int i = 0; i< mNumThings; i++) { mThingPosition[i] += mThingVelocity[i]; mThingVelocity[i] *= mThingDecay[i]; } }
Doesn’t look that different? ,[object Object],[object Object],[object Object],[object Object]
DOD fits  16  things.
 
So what keeps the OOP version lower on the performance scale?
Costs ,[object Object],[object Object],[object Object]
 
Lets put that into numbers ,[object Object],[object Object],[object Object],[object Object],[object Object]
Lets think a minute. ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thinking again… ,[object Object],[object Object]
More thinking… ,[object Object],[object Object],[object Object]
EVEN MORE THINKING ,[object Object],[object Object],[object Object]
For a real world example… ,[object Object],[object Object],[object Object]
In conclusion ,[object Object],[object Object],[object Object]
Well, thanks. ,[object Object],[object Object],[object Object]
Follow me, @domipheus, on Twitter! ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Questions?
Why twitter is awesome!
Twitter == awesome
Twitter == awesome
Twitter == awesome
Twitter == awesome ,[object Object],[object Object],[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Basics of Object Oriented Programming
Basics of Object Oriented ProgrammingBasics of Object Oriented Programming
Basics of Object Oriented Programming
Abhilash Nair
 

Was ist angesagt? (20)

Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languages
 
Object Oriented Programming : A Brief History and its significance
Object Oriented Programming : A Brief History and its significanceObject Oriented Programming : A Brief History and its significance
Object Oriented Programming : A Brief History and its significance
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
Cs8392 u1-1-oop intro
Cs8392 u1-1-oop introCs8392 u1-1-oop intro
Cs8392 u1-1-oop intro
 
Improving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design PrinciplesImproving Software Quality Using Object Oriented Design Principles
Improving Software Quality Using Object Oriented Design Principles
 
Java Programming Paradigms Chapter 1
Java Programming Paradigms Chapter 1 Java Programming Paradigms Chapter 1
Java Programming Paradigms Chapter 1
 
Object Oriented Programming in Java _lecture 1
Object Oriented Programming in Java _lecture 1Object Oriented Programming in Java _lecture 1
Object Oriented Programming in Java _lecture 1
 
Programming Fundamentals With OOPs Concepts (Java Examples Based)
Programming Fundamentals With OOPs Concepts (Java Examples Based)Programming Fundamentals With OOPs Concepts (Java Examples Based)
Programming Fundamentals With OOPs Concepts (Java Examples Based)
 
OOPs in Java
OOPs in JavaOOPs in Java
OOPs in Java
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
 
Oop
OopOop
Oop
 
Java oops and fundamentals
Java oops and fundamentalsJava oops and fundamentals
Java oops and fundamentals
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Java
 
Object Oriented Programming Principles
Object Oriented Programming PrinciplesObject Oriented Programming Principles
Object Oriented Programming Principles
 
Basic concept of OOP's
Basic concept of OOP'sBasic concept of OOP's
Basic concept of OOP's
 
Basics of Object Oriented Programming
Basics of Object Oriented ProgrammingBasics of Object Oriented Programming
Basics of Object Oriented Programming
 
Java Object Oriented Programming
Java Object Oriented Programming Java Object Oriented Programming
Java Object Oriented Programming
 
Oop lec 2
Oop lec 2Oop lec 2
Oop lec 2
 
OOPs Concepts - Android Programming
OOPs Concepts - Android ProgrammingOOPs Concepts - Android Programming
OOPs Concepts - Android Programming
 

Andere mochten auch

Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
thinkphp
 
"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy
"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy
"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy
MelissaLoschy
 
Innovations in marketing strategies aacs1
Innovations in marketing strategies aacs1Innovations in marketing strategies aacs1
Innovations in marketing strategies aacs1
MelissaLoschy
 

Andere mochten auch (20)

Object-oriented concepts
Object-oriented conceptsObject-oriented concepts
Object-oriented concepts
 
Introduction to Object Oriented Programming
Introduction to Object Oriented ProgrammingIntroduction to Object Oriented Programming
Introduction to Object Oriented Programming
 
Oops ppt
Oops pptOops ppt
Oops ppt
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
 
OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017OOP Is More Then Cars and Dogs - Midwest PHP 2017
OOP Is More Then Cars and Dogs - Midwest PHP 2017
 
Object-Oriented Programming Concepts
Object-Oriented Programming ConceptsObject-Oriented Programming Concepts
Object-Oriented Programming Concepts
 
Object oriented programming (oop) cs304 power point slides lecture 01
Object oriented programming (oop)   cs304 power point slides lecture 01Object oriented programming (oop)   cs304 power point slides lecture 01
Object oriented programming (oop) cs304 power point slides lecture 01
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
What I Done on my Holidays
What I Done on my HolidaysWhat I Done on my Holidays
What I Done on my Holidays
 
Story
StoryStory
Story
 
Chris Wright: Games Analytics
Chris Wright: Games AnalyticsChris Wright: Games Analytics
Chris Wright: Games Analytics
 
Unusual C# - OOP
Unusual C# - OOPUnusual C# - OOP
Unusual C# - OOP
 
Java basic understand OOP
Java basic understand OOPJava basic understand OOP
Java basic understand OOP
 
Java OO Revisited
Java OO RevisitedJava OO Revisited
Java OO Revisited
 
Applying OO Concepts
Applying OO ConceptsApplying OO Concepts
Applying OO Concepts
 
Design Pattern lecture 1
Design Pattern lecture 1Design Pattern lecture 1
Design Pattern lecture 1
 
"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy
"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy
"When the Boss is Away, Does the Staff Stay and Play" -Hays Academy
 
Reading
ReadingReading
Reading
 
Innovations in marketing strategies aacs1
Innovations in marketing strategies aacs1Innovations in marketing strategies aacs1
Innovations in marketing strategies aacs1
 
Vitodens 01
Vitodens 01Vitodens 01
Vitodens 01
 

Ähnlich wie What does OOP stand for?

Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
ice799
 
Designing A Project Using Java Programming
Designing A Project Using Java ProgrammingDesigning A Project Using Java Programming
Designing A Project Using Java Programming
Katy Allen
 
Creating your own Abstract Processor
Creating your own Abstract ProcessorCreating your own Abstract Processor
Creating your own Abstract Processor
Aodrulez
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
daniil3
 
Boost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In BanglaBoost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In Bangla
Stack Learner
 

Ähnlich wie What does OOP stand for? (20)

The GAME that never was
The GAME that never wasThe GAME that never was
The GAME that never was
 
Confoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data scienceConfoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data science
 
Breaking first-normal form with Hive
Breaking first-normal form with HiveBreaking first-normal form with Hive
Breaking first-normal form with Hive
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
 
All of Javascript
All of JavascriptAll of Javascript
All of Javascript
 
Python enterprise vento di liberta
Python enterprise vento di libertaPython enterprise vento di liberta
Python enterprise vento di liberta
 
Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2Infrastructure as code might be literally impossible part 2
Infrastructure as code might be literally impossible part 2
 
Designing A Project Using Java Programming
Designing A Project Using Java ProgrammingDesigning A Project Using Java Programming
Designing A Project Using Java Programming
 
Big Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache SparkBig Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache Spark
 
Creating your own Abstract Processor
Creating your own Abstract ProcessorCreating your own Abstract Processor
Creating your own Abstract Processor
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
 
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
All in AI: LLM Landscape & RAG in 2024 with Mark Ryan (Google) & Jerry Liu (L...
 
Boost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In BanglaBoost Your Base Bootcamp - [Online & Offline] In Bangla
Boost Your Base Bootcamp - [Online & Offline] In Bangla
 
Going open source with small teams
Going open source with small teamsGoing open source with small teams
Going open source with small teams
 
All of javascript
All of javascriptAll of javascript
All of javascript
 
Object Oriented Programming -- Dr Robert Harle
Object Oriented Programming -- Dr Robert HarleObject Oriented Programming -- Dr Robert Harle
Object Oriented Programming -- Dr Robert Harle
 
Oop
OopOop
Oop
 
DataDay 2023 Presentation - Notes
DataDay 2023 Presentation - NotesDataDay 2023 Presentation - Notes
DataDay 2023 Presentation - Notes
 
Mind Control to Major Tom: Is It Time to Put Your EEG Headset On?
Mind Control to Major Tom: Is It Time to Put Your EEG Headset On? Mind Control to Major Tom: Is It Time to Put Your EEG Headset On?
Mind Control to Major Tom: Is It Time to Put Your EEG Headset On?
 
Big data made easy with a Spark
Big data made easy with a SparkBig data made easy with a Spark
Big data made easy with a Spark
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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 - 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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

What does OOP stand for?

  • 1. Object Oriented Programming What does OOP stand for? Colin Riley @domipheus
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. So what can OOP stand for? O OP O bfuscates P roductivity OOP
  • 9.
  • 10.
  • 11. WTF
  • 12.  
  • 13. WTF
  • 14.  
  • 15. WTF
  • 16.  
  • 17.  
  • 18. WTF
  • 19.  
  • 20. WTF
  • 21.  
  • 22. WTF
  • 23.  
  • 24.
  • 25.
  • 26. More examples I retweeted a talk that Jonathan Blow of Braid fame gave to Berkeleys compsci group. He mentioned that he now does pretty much everything in simple flat arrays, no complicated data structures.
  • 27.
  • 28.
  • 29. Need a system for handling the states of your things?
  • 30. That does not mean you need a massive component system that is scalable and can handle any matter of things and things v2.0 and things v3.0
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.  
  • 37.  
  • 38.  
  • 39.
  • 40.  
  • 41.  
  • 42.  
  • 43.  
  • 44.  
  • 45. How do we get the data up to the code?
  • 46.  
  • 47.  
  • 48.  
  • 49.
  • 50. So what can OOP stand for? O OP O bliterates P erformance OOP (in high data throughput cases, which there are many in games) is basically
  • 51.
  • 52. struct Details { int numShots; int numDeaths; int numTargets; int lifetime; int state; int priority; int health; int ammo; int friendThings[4]; }; // 48 bytes class Thing { Vector3 mPosition; Quat mOrientation; Colour mColour; Vector3 mVelocity; float mDecay; Details mDetails; }; // 96 bytes
  • 53. OOP ish class ThingSystem { String mName; std::vector<Thing> mThings; .... }; void Thing :: UpdatePosition () { mPosition += mVelocity; mVelocity *= mDecay; } void ThingSystem :: UpdateThingPositions () { for( vector <int>:: iterator iter = mThings. begin (); iter != mThings. end (); iter++) { *iter. UpdatePosition (); } }
  • 54.
  • 55. OOP fits 4 things.
  • 56.  
  • 58.
  • 59.
  • 60. DOD ish class ThingSystem { Vector3 mThingPosition[MAX_THINGS]; Quat mThingOrientation[MAX_THINGS]; Colour mThingColour[MAX_THINGS]; Vector3 mThingVelocity[MAX_THINGS]; float mThingDecay[MAX_THINGS]; Details mThingDetails[MAX_THINGS]; int mNumThings; .... }; void ThingSystem :: UpdateThingPositions () { for(int i = 0; i< mNumThings; i++) { mThingPosition[i] += mThingVelocity[i]; mThingVelocity[i] *= mThingDecay[i]; } }
  • 61.
  • 62. DOD fits 16 things.
  • 63.  
  • 64. So what keeps the OOP version lower on the performance scale?
  • 65.
  • 66.  
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76. Why twitter is awesome!
  • 80.

Hinweis der Redaktion

  1. ALTDEVBLOGADAY ROUTE 2 INDUSTRY – MODS, PERSONAL PROJECTS &amp; GAMES HARDWARE BASED UNI PROJECT
  2. METHODS SIMPLIFIED FOR EASE
  3. Go to next slide
  4. Go to next slide
  5. Go to next slide
  6. Go to next slide
  7. Go to next slide
  8. Go to next slide
  9. It even has an IsSingleton()!
  10. Go to next slide
  11. Go to next slide
  12. Go to next slide
  13. Go to next slide
  14. Go to next slide
  15. Go to next slide
  16. Jonathan: “Data Structures are Optimization”
  17. Extra example: ProjectRaceway xna entity system Deleted it after a year Track cells now have a typed, flat list of entities within it So much simpler to debug and keep track of.
  18. This is basically what is taught.
  19. Code data transform
  20. encapsulation
  21. Old diagram Possibly seen before.
  22. STACK THE DATA
  23. SIMD
  24. Perf difference
  25. Ideal example; cache already fetching ‘next’ block of 512 bytes. Void is idle cpu.
  26. Don’t over engineer your code. Know the problem areas. [Edit: I forgot to remove the swearing from this slide in the given talk!]
  27. Profiling important
  28. You can make an ‘OOP looking’ codebase but behind the scenes it uses nice flat data structures, if OOP is essential.
  29. [Edit: completely failed at trying to start this, had more luck before the talk was given! Twitter being awesome still stands, though]