Записки программирующего руководителя

ruby, управление, проекты и мечты
Apr 28

Ловить Exception где попало это плохо

Потому что Exception это не только ошибки, но и прерывания - подробнее..

Лучше ловить StandartError, а еще лучше только те исключения, что нужны:

Read the rest of this post »

Apr 11

Простое правило комментирования программного кода

На ruby писать приятно тем, что его текст легко читается и понимается другими программистами. Но это заслуга не столько ruby, сколько пишущего программиста, и к сожалению, так писать получается не всегда.

Поэтому приходится придерживаться правила:

Как только вы встречаете программный код, на понимание которого затратили какое-то время, сэкономьте это время коллегам: или перепишите понятнее или просто прокомментируйте.

В комментарии интересует не столько ЧТО делает код, но КАК он это делает.

Jan 7

Как мы деплоим проекты (vlad в submodule)

Мы деплоим с помощью vlad-а. Написили git-сабмодуль с настроеным деплоем и подключаем его в каждый проект. Смысл:

  • отсутсвие Vlad-а в основном Gemfile проекта (он часто конфиктует с другими гемами)
  • быстрый запуск деплоя, за счет короткого Gemfile модуля, в нем ведь всего 3 гема подключаются.
  • обычные настройки лежат в проекте, а не раскидываются по форкнутым гемам. Хотя форкнутыйе гем тоже есть - https://github.com/dapi/vlad-unicorn и https://github.com/dapi/vlad-git

Собствено git-сабмодуль: https://github.com/dapi/vlad_deploy

Jan 5

Авторизация битриксовых пользователей на рельсах

https://gist.github.com/1562013 разработчик - Дмитрий Максимов

Mar 30

gritter_notice: Всплывающие flash-сообщения из глубин фоновых задач

C flash-сообщениями постояно одни и теже поблемы:

Не понятно где их вводить на странице. Заранее определять блок - жалко место и не ясно что на нем вводить когда сообщений нет. Делать блок раздвижным - не хочется двигать из-за этого все содержимое страницы, да и лайаут не вегда может быть резиновым в этом месте. А еще сообщений может быть много.. А еще нужно заботиться об их стилях, о хелпере вывода.. а еще кто-то все время норовит засунуть сообщение в неизвестный ключ, типа flash[:system]='Траляля'

А еще хочется выводить сообщения не только в текущей сессии, но для конкретного пользователя. Запустил, например, он импорт контактов, ушла задача в delayed_job и не слуху не духу от нее, flash-ками уже не обойдешься.

В итоге родился gritter_notice. Вызовом одного метода во вьхе он выводит все флешки ввиде popup-окошек, а еще позволяет добавить в пользовательскую модель метод .notice с помощью которого можно посылать юзеру любый сообщения, в том числе и с картинками, откуда угодно:

    user.notice 'Вася, мы закончили работу'
    user.notice_warning 'Вася, что-то тут такое странное происходит', :image=>'http://..'

Василий получит эти сообщения при первом-же просмотре сайта как и остальные flash-и.

Для вывода собщений используется  jQuery плагин gritter, пример его работы - http://boedesign.com/demos/gritter/

Подробнее: https://github.com/dapi/gritter_notices