Search
-
Recent Posts
@carbonfive
- Outside-in development with #rails, #cucumber and #rspec. Jared drops some skills on us. http://t.co/Th1g5CKU 1 week ago
- New #OSS gem from @carbonfive alum @mperham. #Resque-killer! https://t.co/xu4l19Bt 2 weeks ago
- Thanks to all who came to @carbonfive hack night #LA tonight! Great #nodejs talk by @rudy and @sivoh. Probably 25 folks still hacking... 3 weeks ago
Jared Carroll
The RSpec Book defines outside-in Rails development as starting with views and working your way in toward the models. By developing from the outside in, you are always taking a client perspective at each layer of the application. The end … Continue reading
Sometimes during domain modeling you come across something that isn’t a thing. These operations that don’t quite belong to an object are called services. Services often live in a separate, service layer. The service layer lies between controllers and models, … Continue reading
Backbone.js continues to gain popularity in the JavaScript MVC community. I decided to give it a try by creating a simple, single-page app to CRUD a single domain model. While it wasn’t as trivial as a traditional server-side implementation in … Continue reading
Last month, cucumber-rails 1.1 was released. This release removed web_steps.rb, a collection of step definitions for interacting with a web app. For months, web_steps.rb contained a warning of its negative effects on feature maintenance. Like most developers, I ignored the … Continue reading
The daily standup is the “Hello World” of agile development. It’s a daily, 15-minute meeting, about the current status of a project. Each participant answers three questions: what did I do yesterday, what am I doing today, what is in … Continue reading
To edit efficiently in Vim, you have to edit beyond individual characters. Instead, edit by word, sentence, and paragraph. In Vim, these higher-level contexts are called text objects. Vim provides text objects for both plaintext and common programming language constructs. … Continue reading
A commit, like a well-designed function or class, should represent a single concept. A distinct, cohesive commit is easy to understand, review, and, if necessary, revert. Git’s powerful staging area allows you to finely craft your commits. You decide which … Continue reading
CoffeeScript supports a subset of pattern matching called destructuring assignment. Destructuring assignment uses patterns to extract out the parts of an object during assignment. It’s a simple and elegant technique but when overused can have unintended consequences on a codebase. … Continue reading
Posted in Design
13 Comments
The Ruby community’s obsession with testing is unrivaled. Over the years, Rubyists have gone from old school TDD using test/unit, to modern BDD with RSpec and finally to comprehensive integration testing, including JavaScript support, via Cucumber. The goal was tests … Continue reading
Posted in Design, Process
33 Comments
In a typical agile project the test suite grows roughly twice as fast as the non-test code. As developers, our goal should be the minimum amount of test code that specifies the behavior of the app. This often leads to … Continue reading
Posted in Design
2 Comments