Подтвердить что ты не робот

Как я могу ускорить работу над объектно-ориентированными возможностями Perl?

Я не делал Perl около 8 лет, и теперь я вхожу в проект, который сильно использует объектно-ориентированный Perl, поэтому мне нужно пересмотреть свои навыки Perl и сделать это быстро. В течение последних лет я в основном делал все виды разработки Java и некоторые PHP. Я очень хорош в OO, и я не начинающий программист в любой отдаленной степени.

Итак, возникает вопрос: каковы лучшие ресурсы/сайты/практики/способы/книги, которые вы, ребята, можете порекомендовать, чтобы забрать мои ржавые навыки Perl и узнать Perl "новый способ"? Ваши предложения будут высоко оценены.

P.S. Я изучил некоторые предыдущие ответы. Я хочу подчеркнуть, что я не ищу новичковую книгу/ресурс (синтаксис, основные принципы и т.д.), Но особенно те, которые охватывают возможности ООП, которых не было, когда я программировал на Perl (или я мог упустить это в то время )

P.P.S. Спасибо всем за их предложения и советы. После некоторого рассмотрения я пошел с ответом @MBO, так как он впервые упомянул Moose, который мне действительно очень нравится.

4b9b3361

Ответ 1

В настоящее время я не пишу код Perl (в настоящее время я работаю на других языках), но время от времени я читал этот сайт: http://www.modernperlbooks.com/mt/. Также проверьте Moose для нового способа определения объектов в Perl

Ответ 3

Ну, в первую очередь Perl более высокого порядка действительно хорош, но это касается функционального программирования, а не объектов.

Perl Best Practices - отличная книга, но у нее есть ограничения, и один из них - это то, что Конвей рекомендует использовать свой собственный Class::Std, чтобы сделать объекты с наименьшим из объектов, и общий консенсус, как представляется, (1) заключается в том, что если вы собираетесь делать наизнанку объекты, Object::InsideOut и Class::InsideOut лучше способы сделать это (2) и так или иначе, использование объектов на основе "Муха" - лучший способ пойти.

Это иллюстрирует, что, вероятно, является главным отличием между Java и Perl: редко существует один стандартный способ сделать что-либо с Perl. Начиная как кто-то, кто чувствует себя комфортно с объектами на другом языке, я бы предположил, что самое интересное в Conway теперь слегка устарело Object Oriented Perl. он постепенно разрабатывает различные способы добавления функций ООП, которые вы принимаете как должное.

Мне нравится основной стиль блаженства хэша Perl OOP, но вам нужно понять, что он инкапсуляция действительно слаба и что, хотя метод-наследование работает, обычно нет наследования данных. Есть также некоторые довольно простые хитрости в широком использовании, такие как автоматическое создание аксессуаров с использованием процедуры AUTOLOAD.

Что касается того, что вы можете прочитать по этому вопросу, не пренебрегайте онлайновой документацией, которая поставляется с Perl: perldoc, Обратите внимание на раздел "Учебники" вверху. Если вы ржавы на ссылках и структурах Perl, прочитайте первые два: perldoc perlreftut и perldoc perldsc. Немного вниз по списку, вы увидите несколько обучающих программ ООП. Это в основном о простых объектах, основанных на href, хотя есть некоторые серьезные странности, такие как схема Tom Christiansen для объектов, основанных на закрытии, внизу: perldoc perltoot

Если вы заинтересованы в некоторых новых способах, которые люди делают, вы можете начать с Moose, который предполагается чтобы быть ближе, вы можете добраться до perl6 объектов, продолжая писать perl5-код. Кстати: игнорируйте слово "постмодерн", это глупая шутка, которая не имеет никакого смысла.

Если вам интересны объекты с наименьшим из объектов (у которых есть инкапсуляция с доказательством пули, но, возможно, это немного раздражает для отладки - вы не можете просто использовать Data::Dumper на объекте, чтобы получить его статус), я бы предложил начать с этой perl5 wiki page.

Ответ 4

Отъезд:

  • Perl Best Practices - хорошая коллекция рекомендуемых лучших практик. Даже если вы их не примете, обсуждение аргументов по поводу предложений является ценным.

  • Perl Testing: ноутбук для разработчиков - обеспечивает превосходный охват возможностей тестирования Perl.

  • Объектно ориентированный Perl - Отличная книга о том, как использовать и злоупотреблять объектной системой Perl. Эта книга немного устарела. Это предшествовало наизнанку объектов (чье время пришло и ушло) и Муз, оба важных события в ООП. Если у вас есть большое количество старых OO Perl для поддержки, эта книга может пригодиться.

  • PerlMonks - Очень удобный веб-сайт с Perl с очень щедрым и коллегиальным тоном. Хорошее место для помощи и обратной связи. Он был в эксплуатации в течение многих лет, поэтому имеется также массивный архив сообщений.