The document discusses strategies for developing apps and mobile sites for the digital world. It notes that there are now over 4 billion mobile phones and 1 billion smartphones in use. By 2014, mobile internet usage will surpass desktop usage. The main mobile platforms are iOS and Android. The document outlines four main strategies for a mobile presence: mobile websites, responsive design, native apps, and cross-platform apps. Each option has advantages and disadvantages to consider depending on needs and goals.
This document provides an introduction to the Ruby programming language. It discusses that Ruby is a dynamic, object-oriented scripting language with features like duck typing, open classes, literal syntax for arrays and hashes, mixins, closures, and operator overloading. It also covers Ruby concepts like dynamic and static typing, using Ruby in scripting, Ruby's terse syntax, and how the interactive REPL environment works.
JRuby is an implementation of Ruby that runs on the Java Virtual Machine (JVM) and allows Ruby code to use Java classes. It supports embedding Ruby code into Java applications and using Ruby testing tools like RSpec and Cucumber to test Java code. Ruby on Rails is a highly productive web framework that is commonly used to build Software as a Service applications. JRuby allows running Rails applications on the JVM and deploying them in Java application servers. The document discusses strategies for using JRuby and Rails in both new "greenfield" projects and existing "brownfield" Java applications.
Writing small code is hard. You know you should, but how do you actually do it? It's so much easier to write a large class. In this talk we'll build up a set of small classes starting from nothing using a set of directed refactorings applied as we build. All while keeping our classes small. We'll identify abstractions yearning to be free of their big object cages. In the process we'll also see how basic patterns such as composition, delegation and dependency injection emerge from using small objects. We'll even write some tests too.
The document discusses different approaches to software testing including Behavior Driven Development (BDD), test-driven development (TDD), and unit testing frameworks. It introduces BDD as a process that focuses on specifying what functionality software should provide from the perspective of end users and domain experts. BDD tools like Cucumber and RSpec are discussed as ways to write automated tests in a readable language that can be understood by non-technical stakeholders. Mocking libraries like Mocha are also presented as a way to isolate layers and collaborations when testing code.
Let's Do Some Upfront Design - WindyCityRails 2014Mark Menard
My talk from WindyCityRails 2014 in Chicago
Sometimes a little time spent upfront on design is worth it. Just because we’re agile doesn’t mean no design upfront. Unfortunately some people have taken “working software over comprehensive documentation” to mean no documentation and no design. In this talk, Mark will present a method for evolving an object oriented design through tests, with a strong separation between collaborator classes and process classes. The emphasis will be on quickly driving toward a tested design before committing to functioning process code to save time commonly spent in the refactoring of operational code and test code. You’ll learn how to write better designed and tested code faster with less refactoring churn.
The document discusses strategies for developing apps and mobile sites for the digital world. It notes that there are now over 4 billion mobile phones and 1 billion smartphones in use. By 2014, mobile internet usage will surpass desktop usage. The main mobile platforms are iOS and Android. The document outlines four main strategies for a mobile presence: mobile websites, responsive design, native apps, and cross-platform apps. Each option has advantages and disadvantages to consider depending on needs and goals.
This document provides an introduction to the Ruby programming language. It discusses that Ruby is a dynamic, object-oriented scripting language with features like duck typing, open classes, literal syntax for arrays and hashes, mixins, closures, and operator overloading. It also covers Ruby concepts like dynamic and static typing, using Ruby in scripting, Ruby's terse syntax, and how the interactive REPL environment works.
JRuby is an implementation of Ruby that runs on the Java Virtual Machine (JVM) and allows Ruby code to use Java classes. It supports embedding Ruby code into Java applications and using Ruby testing tools like RSpec and Cucumber to test Java code. Ruby on Rails is a highly productive web framework that is commonly used to build Software as a Service applications. JRuby allows running Rails applications on the JVM and deploying them in Java application servers. The document discusses strategies for using JRuby and Rails in both new "greenfield" projects and existing "brownfield" Java applications.
Writing small code is hard. You know you should, but how do you actually do it? It's so much easier to write a large class. In this talk we'll build up a set of small classes starting from nothing using a set of directed refactorings applied as we build. All while keeping our classes small. We'll identify abstractions yearning to be free of their big object cages. In the process we'll also see how basic patterns such as composition, delegation and dependency injection emerge from using small objects. We'll even write some tests too.
The document discusses different approaches to software testing including Behavior Driven Development (BDD), test-driven development (TDD), and unit testing frameworks. It introduces BDD as a process that focuses on specifying what functionality software should provide from the perspective of end users and domain experts. BDD tools like Cucumber and RSpec are discussed as ways to write automated tests in a readable language that can be understood by non-technical stakeholders. Mocking libraries like Mocha are also presented as a way to isolate layers and collaborations when testing code.
Let's Do Some Upfront Design - WindyCityRails 2014Mark Menard
My talk from WindyCityRails 2014 in Chicago
Sometimes a little time spent upfront on design is worth it. Just because we’re agile doesn’t mean no design upfront. Unfortunately some people have taken “working software over comprehensive documentation” to mean no documentation and no design. In this talk, Mark will present a method for evolving an object oriented design through tests, with a strong separation between collaborator classes and process classes. The emphasis will be on quickly driving toward a tested design before committing to functioning process code to save time commonly spent in the refactoring of operational code and test code. You’ll learn how to write better designed and tested code faster with less refactoring churn.