[Moscow.pm] Динамические возможности Perl :: помощь коллективного разума
Alexander Lourier
aml на rulezz.ru
Вс Май 2 06:35:45 PDT 2010
В сообщении от Воскресенье 02 мая 2010 17:22:02 автор Akzhan Abdulin написал:
> Вообще-то я тут вижу не сложность, а наоборот, простоту. Очень удобно
> определять, переопределять и использовать что-либо, когда удобно, и без
> всяких хаков.
О, понял. Действительно, интересная возможность. А если ещё какую-нибудь
песочницу соорудить, в которой можно пользоваться ограниченным подмножеством
объектов (наверняка, такое есть в Ruby), то вообще идеально для моей задачи
подойдет.
>
> Как верно заметил Егор, основной смысл - для создания языков любой
> предметной области на основе 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
>
Подробная информация о списке рассылки Moscow-pm