Hacker News new | ask | show | jobs
by getsat 5660 days ago
"rails new blog" doesn't create a blog, it creates an empty Rails 3 project using a SQLite database backend called... "blog".

> I remember back when ruby first came out

I think you meant Rails here (not sure if you can edit HN posts). Ruby's been around since the mid-90s.

> I remember thinking to myself, "but I'm not building a blog" and then I went back to my PHP

This makes me think that you're not using a MVC framework. PLEASE, please spend 30 minutes researching MVC and conceptualising the models behind your application talking to each other.

In plain PHP, you would run a SQL query to see if a user can reply to a blog post. In a MVC framework (such as Rails), you would ask the user itself in a higher-level manner:

if @user.can_reply_to? @post

This helps keep your views clean and all your business logic separated out. Views should contain no logic, controllers should contain as little code as possible to grab model data and anything else needed to show in the view, models should be where all the magic happens.

1 comments

"Views should contain no logic, controllers should contain as little code as possible to grab model data and anything else needed to show in the view, models should be where all the magic happens."

This is exactly right, and diametrically opposed to J2EE "best practices," where pretty much every model "object" ends up as a Java Bean with a no-args constructor, public accessors for every field, and no business logic whatsoever. And to think they have the nerve to still call this "object oriented programming."

I have no Java experience aside from playing Minecraft and running OpenOffice, but I feel like I dodged a bullet by avoiding it as a programming language/platform. Everything I've ever read about it makes it feel extremely overwrought and bloated.

I'm perfectly content with the Smalltalk-inspired object model Ruby uses. :)