[Moscow.pm] Динамические возможности Perl :: помощь коллективного разума
Akzhan Abdulin
akzhan.abdulin на gmail.com
Вс Май 2 06:22:02 PDT 2010
Вообще-то я тут вижу не сложность, а наоборот, простоту. Очень удобно
определять, переопределять и использовать что-либо, когда удобно, и без
всяких хаков.
Как верно заметил Егор, основной смысл - для создания языков любой
предметной области на основе Ruby.
Синтаксис ActiveRecord (одна из ORM):
class Event < ActiveRecord::Base
validates_format_of :email, :regexp => /^\w+\@\w(?:\.\w+)*$/ # это пример
after_update :rework_self
after_update :notify_people
def rework_self
# work
end
def notify_people
# work
end
end
Синтаксис Rake (замена make etc.):
task :compile => [:submodule_init, :configure] do
...
end
Синтаксис Chef (замена Puppet, CFusion):
package "libcurl" do
action :upgrade
notifies :restart, resources(:service => :our_uploader)
end
directory "/etc/brix" do
mode 0770
owner "root"
end
Синтаксис Bluepill:
Bluepill.application("app_name") do |app|
app.process("process_name") do |process|
process.start_command = "/usr/bin/some_start_command"
process.pid_file = "/tmp/some_pid_file.pid"
process.uid = "deploy"
process.gid = "deploy"
process.checks :cpu_usage, :every => 10.seconds, :below => 5,
:times => 3
process.checks :mem_usage, :every => 10.seconds, :below =>
100.megabytes, :times => [3,5]
end
end
И так далее...
2 мая 2010 г. 10:01 пользователь Alexander Lourier <aml на rulezz.ru> написал:
> В сообщении от Пятница 30 апреля 2010 18:33:40 автор Akzhan Abdulin
> написал:
>
> > К сожалению, сам постулат неверен. До возможностей метапрограммирования в
> > Ruby далековато пока.
> >
> > Ведь само описание класса в Ruby является объектом и уже исполняется, со
> > всеми вытекающими.
>
> А скажите, пожалуйста, не флейма ради, есть ли практическая выгода от
> использования таких сложных возможностей языка? Зачем может потребоваться
> наследование от объекта с переопределёнными методами? Сможет, скажем,
> программист сопровождения найти ошибки в этом коде (и сколько у него
> времени
> на это уйдет), если разработчик к тому времени будет недоступен?
>
> В перле использование всякой экзотики обычно ограничивается хаками, которые
> полностью скрываются интерфейсом модуля. Никого особо не интересует, как
> внутри устроен профайлер, хотя там бывает страшно и вообще write-only.
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20100502/716d71b1/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm