Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Mocking and Stubbing FTW! Wait, was it WTF instead?

This is why mocking and stubbing sucks:
http://cardarella.blogspot.com/2008/12/case-against-mocking-and-stubbing.html

This is why mocking and stubbing is awesome:
http://blog.davidchelimsky.net/2008/12/11/a-case-against-a-case-against-mocking-and-stubbing

And, this is what the godfather says about this:
http://martinfowler.com/articles/mocksArentStubs.html

Who else is confused? I think the TDD/BDD community needs to start explaining themselves more regarding the principles of testing. We need a "pattern" for TDD/BDD testing for Ruby and Rails (Merb) projects.

I have had many conversations/debates regarding this very issue. And, every time I read one of these articles, I go from one side to the other.

So far, here are my conclusions regarding testing:

* TDD/BDD is hard.
* TDD/BDD is necessary.
* 100% coverage is unrealistic.
* Doing "red, green, refactor" all the time almost never happens in the real world.
* Someone needs to write an up-to-date and definitive book regarding this subject matter, and end the debate.

Posted at on 12/11/08 by | 0 comments | Filed under: , , ,

Ruby: Enumerable#inject links

Great Enumerable#inject tutorial and introduction: http://blog.jayfields.com/2008/03/ruby-inject.html

Thinking out of the box with Enumerable#inject: http://advent2008.hackruby.com/past/2008/12/11/thinking_out_of_the_box_with_enumerableinject/

Posted at on by | 0 comments | Filed under: ,

Project Patterns

This is a discussion my team had regarding some lessons learned during one of our recent projects.

Project Patterns
View SlideShare presentation or Upload your own. (tags: projects management)

Posted at on 10/24/08 by | 2 comments | Filed under: , ,

Top 5 Rails Misconceptions

I have been working with Rails for almost 3 years now in a professional setting. During that time, I have had to convince many people of the merits of Rails. Here are the Top 5 Rails Misconceptions I have come across.

5. Rails is some sort of WYSIWYG editor for web pages.


This one has always baffled me. But, it is true. Every once in a while, I will meet someone that thinks Rails is like Dreamweaver. Huh? My best guess is that they read some buzz article about how "Rails makes building websites easy". Notice I said "websites". There really is no way to combat this misconception other than to just educate this person.

However, do not discount the fact that to many technology people the following is true.

web sites == web pages == GUI == web applications

In other words . . .

index.html == web page
amazon.com also == web page

And, it was probably developed with Dreamweaver.


4. Rails is AJAX.


Web 2.0 is AJAX. And, Rails is AJAX. So, make it AJAX'y. Maybe, this is because Rails started to get popular around the same time AJAX started getting popular. There might be some direct relationship between the two. But, regardless, I hear this one all the time.

Again, you really can't do anything about this except to try and educate. Usually, I try to explain that AJAX is a way to enhance the user's experience, and can be implemented with any number of web frameworks.

Hmmm . . . but, that explaination might be too "Web 2.0".


3. Rails can't scale.


You might be surprised to see that this is not #1. In all honesty, I almost never hear this argument from the people who matter to me (customers, clients and my bosses). I alway hear it from the IT/Ops team, or the DBA's, or the old school Perl/Java/C/C++/insert_whatever_lang_here programmer that sits down the hall.

How this is still an issue is beyond me. In any case, these are the arguments I usually use:

* There are really large Rails sites in production. Twitter (although be ready for the Twitter can't scale arguments), yellowpages.com, scribd.com, all the 37signals products.

* Scaling is usually a much larger architectural issue than just the web framework. Scaling involves hardware, OS's, caching, DB's, proxies, etc. Usually, the language matters very little in scaling.

* And, this is my favorite . . . every (I really mean EVERY) enterprise Java based web application I have ever worked on or implemented was slow as hell. Anyone want to back me on this one? So, what's the argument?


2. You don't need to learn Ruby to do Rails.

I think this early screencast of Rails almost did more harm than good.

http://media.rubyonrails.org/video/rails_take2_with_sound.mov

So, in this screencast, you see a young DHH creating a blog application in 15 minutes with Rails. Lot's of scaffolding and stuff.

Don't get me wrong. This screencast was one of the reasons I got into Rails. But, I thought the same thing. I just need to learn Rails. This is so false. Maybe, if you are creating a 15 minute Blog application, you just need to learn Rails.

This misconception is directly related to my #1 Rails misconception.


1. Rails is not programming.


This is definitely my #1 Rails misconception. I hate this one! Everyday, I have to fight this one.

So, how do I fight these misconceptions?

* Credibility. Be really good at what you do. As a Rails developer, don't be that person who just read the "Agile" book and thinks they can deliver. Read the "Agile" book. Then, you have to do much more . . . usually, this is in your free time.

* Productivity. Deliver quality faster than anyone else. Rails is great for this.

* Adaptability. Sometimes, you just have to make it work. So what if your company's legacy database is SQL Server with some jacked up composite-non-surragate primary keys? Make it work.

* Be nice. This one works all the time. Ruby, and Rails is threat to people. Don't come on like a threat.




Posted at on 9/24/08 by | 0 comments | Filed under: , , ,

Story Card Template for Agile Programming

Here is a story card template that my team will be implementing into our Agile Programming practices.  Feel free to use.

http://www.scribd.com/doc/5968484/Story-Card-Template

BTW:  Scribd renders the page weird in their Flash viewer.  If you download it, it looks fine.

Posted at on 9/12/08 by | 0 comments | Filed under: , , ,