SlideShare a Scribd company logo
Better Code,
               Littler Classes
• While you wait, install the sample code from the USB drive:
   Code/flatwiki-example/
    choose java, csharp, or ruby; we’ll be demonstrating in Java

• Import into your environment of choice:
   We’ve included configuration for
    Maven, Ant, IntelliJ, Eclipse, Visual Studio, and Rake

• Run your tests -- they should all pass!
   Java: “ant build”, “mvn test”, or IDE test runner
   Ruby: “rake test”
   C#: Run tests in Visual Studio

• If you don’t have a development environment,
    install VirtualBox and open BetterCodeVM.ova
Better Code,
Littler Classes
Who are we?
       Moss Collum
mcollum@cyrusinnovation.com
         @moss


       Laura Dean
lgdean@cyrusinnovation.com
        @lgdean
Format
Raise your hands
Why this workshop?
Environment Setup
Setup Instructions
• Sample code is on the USB drive
   Code/flatwiki-example/java, csharp, and ruby directories

• Import into your environment of choice
   We’ve included configuration for
   Maven, Ant, IntelliJ, Eclipse, Visual Studio, and Rake

• Run your tests -- they should all pass!
   Java: “ant build”, “mvn test”, IDE test runner
   Ruby: “rake test”
   C#: Run tests in Visual Studio

• If you don’t have a development environment,
  install VirtualBox and open BetterCodeVM.ova
Extract Delegate
Extract Method Object
Replace Value
With Value Object
Introduce
Parameter Object
Retrospective
Further Practice
• Code Katas

• Object Calisthenics

• Architectural Design Challenge

• Re-use our sample project!

• More at BetterCodeLittlerClasses.com
References
• Refactoring, by Martin Fowler

• Arguments and Results, by James Noble

• Working Effectively with Legacy Code, by Michael
  Feathers

• Growing Object Oriented Software, by Steve
  Freeman and Nat Pryce

• More at BetterCodeLittlerClasses.com
Feedback?
Where to find us
        Moss Collum
 mcollum@cyrusinnovation.com
          @moss


        Laura Dean
 lgdean@cyrusinnovation.com
         @lgdean

More Related Content

PPTX
Cypress Automation
PPTX
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
PDF
Pietro Di Bello, Paolo D'Incau - Continuous Delivery su progetti Java: cosa a...
PPTX
Cypress report
PDF
e2e testing with cypress
PDF
Testing the way it should be
PDF
Cypress e2e automation testing - day1 intor by: Hassan Hameed
PDF
Cypress testing
Cypress Automation
LONDON SDET MEETUP - Difference between Selenium and Cypress presentation
Pietro Di Bello, Paolo D'Incau - Continuous Delivery su progetti Java: cosa a...
Cypress report
e2e testing with cypress
Testing the way it should be
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress testing

What's hot (20)

PDF
Completely Test-Driven
PPTX
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
PDF
Configuration as Code in Bamboo
PPTX
Dev ops for mobile apps at microsoft teams
PPTX
Welcome to Azure DevOps
PDF
Component testing with cypress
PDF
Discovery delivery 中国软件技术大会2011
PDF
Continuous Delivery in Java
PDF
Introduction to Infrastructure as Code & Automation / Introduction to Chef
PDF
Future of Java
PDF
Keep your projects up-to-date
PDF
Spinnaker Microsrvices
PDF
10 Deployments a day - A brief on extreme release protocols
PPTX
Sam Guckenheimer - Moving to One Engineering System
PDF
Webinar: Continuous Deployment with MongoDB at Kitchensurfing
PPTX
Hacking AMD MIOpen to run anywhere
KEY
Continuous Integration, the minimum viable product
ODP
Testing JSF with Arquillian and Selenium
PPTX
Infrastructure as Code (BBWorld/DevCon13)
PDF
Aws, play! couch db scaling soa in the cloud
Completely Test-Driven
Michigan IT Symposium 2017 - CI/CD Workflow Tutorial
Configuration as Code in Bamboo
Dev ops for mobile apps at microsoft teams
Welcome to Azure DevOps
Component testing with cypress
Discovery delivery 中国软件技术大会2011
Continuous Delivery in Java
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Future of Java
Keep your projects up-to-date
Spinnaker Microsrvices
10 Deployments a day - A brief on extreme release protocols
Sam Guckenheimer - Moving to One Engineering System
Webinar: Continuous Deployment with MongoDB at Kitchensurfing
Hacking AMD MIOpen to run anywhere
Continuous Integration, the minimum viable product
Testing JSF with Arquillian and Selenium
Infrastructure as Code (BBWorld/DevCon13)
Aws, play! couch db scaling soa in the cloud
Ad

Viewers also liked (18)

PDF
Ieee psaddington-agile2012-v2 0
PPT
Lake2 企业安全应急响应新思路
PDF
Is it worth it agile2012 0
PDF
Meet scrum抯 big brother, dynamic governance v3
PDF
Asset 1 security-in-the-cloud
PDF
Cloudsecurity
PDF
Taobao 100702070730-phpapp01
PDF
云安全的意义
PDF
Precor agile alliance presentation 1208
PDF
Making animpact
PDF
大型网站架构的发展
PDF
Overcoming traditional project release reporting with an agile approach focus...
PDF
移动互联网的未来
PPT
流量清洗产品概述和关键技术介绍
PDF
How to brainstorm
PPTX
Pptv lb日志实时分析平台
PDF
Pinterest arch summit august 2012 - scaling pinterest
PDF
4+1view architecture
Ieee psaddington-agile2012-v2 0
Lake2 企业安全应急响应新思路
Is it worth it agile2012 0
Meet scrum抯 big brother, dynamic governance v3
Asset 1 security-in-the-cloud
Cloudsecurity
Taobao 100702070730-phpapp01
云安全的意义
Precor agile alliance presentation 1208
Making animpact
大型网站架构的发展
Overcoming traditional project release reporting with an agile approach focus...
移动互联网的未来
流量清洗产品概述和关键技术介绍
How to brainstorm
Pptv lb日志实时分析平台
Pinterest arch summit august 2012 - scaling pinterest
4+1view architecture
Ad

Similar to Better code, littler classes (20)

PDF
Practical maven-slides 2
PDF
Polyglot Plugin Programming
PPT
Intro to Maven.ppt
PPT
Introduction to Maven for projects and carrer ppt
PPTX
basic core java up to operator
PPTX
Java script nirvana in netbeans [con5679]
PPTX
End to End Testing with nightwatchjs
PPTX
Nightwatch JS for End to End Tests
PDF
Cassandra Development Nirvana
PDF
Development Nirvana with Cassandra
PPTX
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
PDF
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
PPTX
What Visual Studio Code can do for Java Development
PDF
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
PPTX
Building with Gradle
PDF
Everything-as-code - A polyglot adventure
PDF
Everything-as-code. A polyglot adventure. #DevoxxPL
PDF
Karmasphere Studio for Hadoop
PPT
Testing Storm components with Groovy and Spock
PDF
Blazing Fast Feedback Loops in the Java Universe
Practical maven-slides 2
Polyglot Plugin Programming
Intro to Maven.ppt
Introduction to Maven for projects and carrer ppt
basic core java up to operator
Java script nirvana in netbeans [con5679]
End to End Testing with nightwatchjs
Nightwatch JS for End to End Tests
Cassandra Development Nirvana
Development Nirvana with Cassandra
Using Docker to Develop, Test and Run Maven Projects - Wouter Danes
Extensible dev secops pipelines with Jenkins, Docker, Terraform, and a kitche...
What Visual Studio Code can do for Java Development
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Building with Gradle
Everything-as-code - A polyglot adventure
Everything-as-code. A polyglot adventure. #DevoxxPL
Karmasphere Studio for Hadoop
Testing Storm components with Groovy and Spock
Blazing Fast Feedback Loops in the Java Universe

More from drewz lin (20)

PPTX
Web security-–-everything-we-know-is-wrong-eoin-keary
PDF
Via forensics appsecusa-nov-2013
PPTX
Phu appsec13
PPTX
Owasp2013 johannesullrich
PDF
Owasp advanced mobile-application-code-review-techniques-v0.2
PPTX
I mas appsecusa-nov13-v2
PDF
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
ODP
Csrf not-all-defenses-are-created-equal
PPTX
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
PPTX
Appsec usa roberthansen
PDF
Appsec usa2013 js_libinsecurity_stefanodipaola
PPT
Appsec2013 presentation-dickson final-with_all_final_edits
PPTX
Appsec2013 presentation
PPTX
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
PPTX
Appsec2013 assurance tagging-robert martin
PPTX
Amol scadaowasp
PPTX
Agile sdlc-v1.1-owasp-app sec-usa
PPTX
Vulnex app secusa2013
PDF
基于虚拟化技术的分布式软件测试框架
PPTX
新浪微博稳定性经验谈
Web security-–-everything-we-know-is-wrong-eoin-keary
Via forensics appsecusa-nov-2013
Phu appsec13
Owasp2013 johannesullrich
Owasp advanced mobile-application-code-review-techniques-v0.2
I mas appsecusa-nov13-v2
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Csrf not-all-defenses-are-created-equal
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Appsec usa roberthansen
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec2013 assurance tagging-robert martin
Amol scadaowasp
Agile sdlc-v1.1-owasp-app sec-usa
Vulnex app secusa2013
基于虚拟化技术的分布式软件测试框架
新浪微博稳定性经验谈

Better code, littler classes

  • 1. Better Code, Littler Classes • While you wait, install the sample code from the USB drive: Code/flatwiki-example/ choose java, csharp, or ruby; we’ll be demonstrating in Java • Import into your environment of choice: We’ve included configuration for Maven, Ant, IntelliJ, Eclipse, Visual Studio, and Rake • Run your tests -- they should all pass! Java: “ant build”, “mvn test”, or IDE test runner Ruby: “rake test” C#: Run tests in Visual Studio • If you don’t have a development environment, install VirtualBox and open BetterCodeVM.ova
  • 3. Who are we? Moss Collum mcollum@cyrusinnovation.com @moss Laura Dean lgdean@cyrusinnovation.com @lgdean
  • 8. Setup Instructions • Sample code is on the USB drive Code/flatwiki-example/java, csharp, and ruby directories • Import into your environment of choice We’ve included configuration for Maven, Ant, IntelliJ, Eclipse, Visual Studio, and Rake • Run your tests -- they should all pass! Java: “ant build”, “mvn test”, IDE test runner Ruby: “rake test” C#: Run tests in Visual Studio • If you don’t have a development environment, install VirtualBox and open BetterCodeVM.ova
  • 14. Further Practice • Code Katas • Object Calisthenics • Architectural Design Challenge • Re-use our sample project! • More at BetterCodeLittlerClasses.com
  • 15. References • Refactoring, by Martin Fowler • Arguments and Results, by James Noble • Working Effectively with Legacy Code, by Michael Feathers • Growing Object Oriented Software, by Steve Freeman and Nat Pryce • More at BetterCodeLittlerClasses.com
  • 17. Where to find us Moss Collum mcollum@cyrusinnovation.com @moss Laura Dean lgdean@cyrusinnovation.com @lgdean