Как-то в последнее время, немножко задумался о качестве кода, который я пишу, и поэтому быстро конспектирую ряд фишек которые можно и нужно использовать в своем коде:
Комментарии
# Это большой и длинный комментарий
# который рассказывает ни о чем
# да и читать его вряд ли кто станет
# хотя писать его было нужно и муторно
Знакомо? А ведь можно было сделать это красиво:
=begin
Элегантный комментарий, который занимает несколько строк
и который не нужно мучаться отслеживая, где вдруг потерялся
этот долбанный символ решетки "#"
=end
## Форматированный вывод
puts "INSERT INTO pairs VALUES ( " + i.to_s + ", '"+item[i]["history"].to_s+"' );"
Плохо, Саша. Надо делать так:
puts "INSERT INTO pairs VALUES ( %i, '%s' );" % [ i, item[i]["history"] ]
## Меньше строчек в присвоении
a = 1
b = 2
x = 11.2
Забудь и делай проще
a, b, c = 1, 2, 11.2
кстати, отсюда менять местами элементы в массиве очень просто
My = [1,2,3,4] # => [1,2,3,4]
My[1], My[3] = My[3], My[1] # => [1,4,3,2]
## Скажи нет return false
Если в функции осуществляется логическая проверка условия и функция должна вернуть true или false, не нужно городить return и прочего:
def even?(x)
x % 2 != 1
end
“Меньше строчек в присвоении” – не согласен, что лучше писать на одной строчке. Одно присвоение на строку – нагляднее, да и дебажить или добавлять код проще.
Приветствую, Олег!
Объясняю почему вынес это в отдельный пункт. Я пишу на ruby маленькие утилитки, которые облегчают ежедневную работу, например, создают дерево каталогов идентично дереву категорий в базе продукта. И поэтому зачастую функции передается около 3ех, а то и 5-ти переменных с предустановленными значениями. Ну и если присваивать:
это выглядит элегантнее, чем большой блок на несколько строк, который надо оборачивать комментариями.
Ну в примере вообще лучше использовать хеш, а вообще не все упрошения хороши, часто после такого рода упрощений и оптимизаций, по прошествии времени не то что другие, а и сам с трудом читаешь код.
Насчет первого (пример с комментариями) не согласен. В TextMate выделяешь блок и нажимаешь ⌘+/ и он (TextMate) именно так коментит все строки блока.
2Danil, ну, когда это писалось, я был пользователем ubuntu и в основном использовал vim для работы с исходниками.. Там такой штуки нет, поэтому мне было проще и казалось правильнее использование второй конструкции.
vestel, а сейчас пользователем чего вы являетесь?
@Ilia, сейчас больше всего я использую Eclipse, просто потому что специфика приложений, которые я пишу по работе – нужно постоянно держать под рукой разный код. Хотя, думаю что когда войду в проект и его архитектуру вернусь обратно к VIM-у.