Я соглашаюсь с Книжной ссылкой Дракона; IMO, это - полное руководство к конструкции компилятора. Подготовьтесь к некоторой жесткой теории, все же.
, Если Вы хотите книгу, которая легче на теории, , Игровое Мастерство Сценариев могло бы быть лучшей книгой для Вас. Если Вы - общий новичок в теории компилятора, она обеспечивает более нежное введение. Это не покрывает более практические методы парсинга (выбирающий непрогнозирующий рекурсивный спуск, не обсуждая LL или LR-анализ), и как я вспоминаю, это даже не обсуждает вида теории оптимизации. Плюс, вместо того, чтобы компилировать в машинный код, это компилирует в байт-код, который, как предполагается, работает на VM, который Вы также пишете.
Это - все еще достойное чтение, особенно если можно взять его для дешевого на Amazon. Если Вы только хотите легкое введение в компиляторы, Игровое Мастерство Сценариев не является плохим способом пойти. Если Вы хотите пойти хардкор впереди, то необходимо согласиться на не что иное как Книгу Дракона.
Роли позволяют вам писать задачи capistrano, которые применяются только к определенным серверам. На самом деле это применимо только к многосерверным развертываниям. Роли по умолчанию «app», «web» и «db» также используются внутри компании, поэтому их присутствие не является обязательным (AFAIK)
В предоставленном вами примере нет функциональной разницы.
" : primary => true "- это атрибут, который позволяет более детально определять серверы в настраиваемых задачах.
Вот пример указания роли в определении задачи:
task :migrate, :roles => :db, :only => { :primary => true } do
# ...
end
См. веб-сайт capistrano @ https: / /github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role для более подробного объяснения.
На самом деле это применимо только к многосерверным развертываниям. Роли по умолчанию «app», «web» и «db» также используются внутри компании, поэтому их присутствие не является обязательным (AFAIK)В предоставленном вами примере нет функциональной разницы.
" : primary => true "- это атрибут, который позволяет более детально определять серверы в настраиваемых задачах.
Вот пример указания роли в определении задачи:
task :migrate, :roles => :db, :only => { :primary => true } do
# ...
end
См. веб-сайт capistrano @ https: / /github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role для более подробного объяснения.
На самом деле это применимо только к многосерверным развертываниям. Роли по умолчанию «app», «web» и «db» также используются внутри компании, поэтому их присутствие не является обязательным (AFAIK)В приведенном вами примере нет функциональной разницы.
" : primary => true "- это атрибут, который позволяет более детально определять серверы в настраиваемых задачах.
Вот пример указания роли в определении задачи:
task :migrate, :roles => :db, :only => { :primary => true } do
# ...
end
См. веб-сайт capistrano @ https: / /github.com/capistrano/capistrano/wiki/2.x-DSL-Configuration-Roles-Role для более подробного объяснения.