Комментарии: Что такое метаклассы в perl? Использование Class::MOP http://dev-lab.info/2013/01/%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d0%b5%d1%82%d0%b0%d0%ba%d0%bb%d0%b0%d1%81%d1%81%d1%8b-%d0%b2-perl-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8/ Профессиональное развитие программиста. Руководства, документация. Изучение и разработка нагруженных проектов Wed, 18 Dec 2013 08:00:04 +0000 hourly 1 http://wordpress.org/?v=3.6.1 Автор: www2 http://dev-lab.info/2013/01/%d1%87%d1%82%d0%be-%d1%82%d0%b0%d0%ba%d0%be%d0%b5-%d0%bc%d0%b5%d1%82%d0%b0%d0%ba%d0%bb%d0%b0%d1%81%d1%81%d1%8b-%d0%b2-perl-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8/#comment-4932 www2 Sun, 12 May 2013 15:30:26 +0000 http://dev-lab.info/?p=691#comment-4932 На мой взгляд, одна из целей всяких дополнительных реализаций объектных систем в Perl — это получение большего контроля над большой системой. Можно запретить программистам изменять некий аттрибут или допускать хранение в этом аттрибуте только чисел и т.п. Если в процессе работы программы произойдёт попытка сделать недопустимое — об это узнают до того, как проблема проявится где-то позже и более сложным образом.

Другая цель — это придание программе возможности к саморефлексии. Дать программе возможность получать информацию о каком-то объекте — поддерживается ли определённый метод, какие методы есть, можно ли в них писать и т.п. Это позволяет делать программы более динамичными и гибкими, т.к. благодаря этому становится меньше хардкода. В маленьких программах это может быть не столь важно, потому что программист может удержать в голове все эти знания и при необходимости перепроектировать программу, в больших — приобретает важность.

]]>