OK, so I have been working with Rails for a few months now. I have a long ways to go yet but I am getting a pretty good grip on things. As of yet I do NOT have a live app out there to share but I am working on an app of my own and collaborating on a couple of other apps. I have a lot better understanding than I have knowledge but I am working on that.
Why do I love Rails? First off, the Ruby on Rails community in Phoenix is rock solid. The Ruby::AZ group is fantastic here in Phoenix. Every month there is a pretty good turn out and always plenty of people volunteering to present. Another fantastic group in Phoenix is the Phoenix Night Owls where there are plenty of people to help you out on your projects. I have said this before and I will say it again, the Ruby on Rails community is so supportive and it amazes me how many Rails developers are willing to help you learn and willing to take the time to teach you. I have been fortunate to meet the guys at RebelHold who have taken me under their wing to teach me better practices in Rails development. What is great about these guys is that they FORCE me to become a better coder. I have learned so much from @m3talsmith and @fzf in just a few months.
What have I learned? Well I must say that I think NOSQL is the way to go. Preferably mongoDB. Just today I went thru the Hell of installing postgresql. What a pain in the ASS. With mongoDB there is no migrating to add a field. There is just an easy install of mongoDB. Want to add a field to a table? Put in the model. I can say that I didn’t have that hard of a time with sqlite3 but still I think mongodb is the way to go. Afraid that mongodb cannot handle large amounts of data? Just a few small companies like Disney, craigslist, and foursquare. It is not like those guys have a lot of data.
What else do I like to use? I have recently started to use Omniauth for registering as a user on my app. Devise (sorry @m3talsmith) for authentication when not using Omniauth. RVM is a definite must for version control. Where do I go to learn? I would hate myself if I were to forget to mention Railscasts.com and the man behind Railscasts @rbates who amazes me that he not only has the time but also takes the time to record awesome Rails tutorials EVERY week! And they are free to watch. Another example of the greatness of the Rails community.
BDD. I have totally gotten into the world of Behavior Driven Development. In fact this month I am giving a presentation on BDD and Rspec / capaybara. I now know that “if you are not testing your rails app, you are not developing, you are guessing.” Take the time to learn how to write and use request specs. It takes longer up front but saves time in the long run. Learn to write stories in pivotal tracker and transpose those to your tests. You will learn a lot more by testing and write less and cleaner code.
Another thing I was forced into (LOL) was NOT using scaffolding. Since I stopped using scaffolding I write more code but I understand what I write better. While I might be actually typing more code, in the end I have fewer lines of code.
I will add my BDD/Capybara presentation on here after I have it finished. I will also start blogging more about my experiences with BDD and show some code in the near future.