[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 было извлечено&hellip;
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20100502/716d71b1/attachment-0001.html>


Подробная информация о списке рассылки Moscow-pm