Wednesday, December 9, 2009

SSH identity

В настоящее время для работы использую линукс и private_key identity. Для удаленых комманд git постоянно запрашивал пароль для моего ключа. Это очень неудобно.
Решение оказалось очень простым. Каким то чудным образом у меня появилось два приватных ключа и система при загрузке и попытке добавить мой identity ключ обламывалась и ничего не добавляла. Просто нужно удалить второй приватный ключ и перезагрузить комп

Tuesday, June 30, 2009

Советы по RoR => 2 часть

Сделал блог с учетом всех требований из 1 части. Имеется еще ряд ц.у.

  1. Для форматирования использовать 2 пробела, а не табуляцию
  2. Максимально ни использовать наследование. У меня в примере 3 контроллера вызывали один набор фильтров. Для избавления от дублирования, я создал для них базовый контроллер, в котором вызывал общие фильтры. Вместо этого следовало отказаться от наследования, вынести общие фильтры в один фильтр более высокого уровня и его вызывать во всех контроллерах.
  3. Вместо методов ресурса использовать параметры запроса. Поясню. Есть Топик с стандартным набором КРУД. Требуется добавить возможность закрыть\открыть топик. Я добавил вложенный ресурс Состояние к Топику и два метода create( открыть топик) и destroy(закрыть топик). Нужно делать по другому: добавить один метод update и передавать параметром запроса открыть топик или закрыть
  4. Использовать для методов ЧЕЛОВЕЧЕСКИЕ имена
  5. Вызов пагинатора в конторллере вынести в метод модели
  6. Если в вызове метода один аргумент- скобки не пишуться
  7. Если в строке нет подстановки- использовать одинарные ковычки
  8. В файлах разбивать группы- асоциации и валидации
  9. Использовать partial
  10. Добавить тесты

Wednesday, June 24, 2009

Советы по RoR

Ответственность за нарушения правил
Пусть те несут, кто их составил


Ходил на одну фирму показывать тестовое задание на РоР. Получил массу ц.у.

  1. Запятая идет сразу после слова.
  2. Единый стиль выравнивания в коде
  3. Максимально использовать Рест архитектуру
  4. Simple responsibility rool -- один контроллер несет минимальное количество действий
  5. Т.к. действия в контроллерах открыты по умолчанию, то все методы, которые не являются действиями делать приватными
  6. Названия методов:
    1. если метод возвращает Boolean => заканчивать название ? (editable?)
    2. не использовать get_, set_, is_ в названиях
  7. Контроллер должен быть максимально легким за счет утяжеления модели
  8. Максимально использовать плагины. Restful_auth— аусентикация, will_paginate- пэйджер
  9. Постоянно изучать ХОРОШИЙ чужой код. Повторяю: ХОРОШИЙ (http://github.com)
  10. Любая строка в коде забирает время на ее прочтение, истолкования. Поэтому:
    1. удалять все комментарии
    2. удалять все неиспользующиеся строки кода
    3. удалять все строки, без которых код может работать
  11. Изменяя вложенные ресурсы используй build и merge (Topic à Post)
  12. Для Рест использовать сгенерированные урлы
  13. Не писать слишком длинные методы
  14. Основная задача— все задачи сводить к использованию Рест архитектуры
  15. Использовать миксин
  16. Для вставки тестовых данных на staging использовать rake tasks
  17. Для salt в хэшировании использовать случайную последовательность и сохранять в базе
  18. rake db:create – создает базу по конфигурации
  19. При использовании рест подхода не возникает необходимости использовать одно действие для get и post запросов
  20. В Руби любой метод по умолчанию начинается с begin. Поэтому если метод бросает в конце исключение, то begin можно не писать
  21. Использовать save!. Тк бросает исключение. Просто save использовать в if save (те когда происходит обработка результата)
  22. В Рест подходе не использовать member и тд. Добавлять дополнительные методы как вложенные ресурсы. В результате тонкие контроллеры

Monday, January 15, 2007