Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Not at all because programming languages like Ruby parameter names don't tell the full story:

if you have def find(name) what kind of type could be name? String "Steve"?? Symbol :Steve? Hash {:first => "Steve", :last => "Jobs"} ??



That just means that 'name' is a poor name for the parameter. Have 'first_name, last_name' or 'full_name' or 'names,' for example.

In addition, I think it's a good practice to get into to try and validate parameters at the top of any method. If the values don't fit your use for them, raise an exception.


That strikes me as very Pythonic attitude. If you're going to fail, fail early. But, I know Python way better than Ruby, so it might very well be a Ruby thing too.


I'm not sure if it's Pythonic as I've never written Python. It's a habit I carried over from the .NET world, actually.


Wouldn't the Pythonic thing be to only fail after you've tried, instead of validating your parameters in advance?


Yes. It's easier to beg for forgiveness than to look before you leap. You just use your parameters regardless of types and let the exceptions fly.


Is that really Pythonic? Isn't that just general best practice in programming?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: