Статьи

Шаблоны проектирования в динамическом программировании

Через Reddit (отличный сайт, если вы страдаете от недостатка внимания): разработка шаблонов в динамическом программировании Питером Норвигом (директор по исследованиям в Google).

В форме слайда довольно сложно извлечь что-то большее, чем суть сказанного, но здесь есть кое-что действительно интересное. Возможно, это легче всего понять в контексте этого старого, но (необычно) проницательного поста на / .;

Грязный непризнанный секрет шаблонов проектирования заключается в том, что они тесно связаны с языком. Например, переключение со статически типизированного языка, такого как Java, на динамический язык с пересылкой существенно меняет подход к Factory, Proxy, Singleton, Observer и другим. На самом деле, они часто оказываются тривиальными.

Это первая серьезная попытка определить шаблоны, характерные для динамических языков, и я кивнул. Например, Частичная оценка [слайд 1] и слайд 2 ;

Намерение: написать грамотный код, скомпилировать в эффективный код

Ярким примером этого в PHP могут быть компоненты шаблона WACT, которые превращают декларативные теги шаблона в спагетти PHP «во время выполнения» (о которых вам не нужно заботиться). Поверьте, это также большой аргумент в пользу Rails , который хорошо использовал возможности макросов Ruby для таких вещей, как определение объектных отношений в активных записях — для сравнения, возможно, ближайший PHP может это показать, что иллюстрирует EZPDO , который Поместите ли вы эти операторы в комментарии PHP вместе с вашим кодом, который извлекает EZPDO.

Тем не менее, не весь этот разговор хорошо подходит для PHP, который не утверждает, что «все является объектом»; функции, например, не являются объектами, и поддержка программного изменения класса во время выполнения, по существу, отсутствует. Здесь есть что-то вроде горькой пилюли — во время разработки объектной модели PHP5, у Java был ООП, и PHP5 сделал шаг в этом направлении. С такими языками, как Ruby, Python и Javascript ( Lisp in C’s Clothing ), попадающими в мейнстрим, вы можете спросить: «Достаточно ли динамичен PHP?»