Я предполагаю, что много разработчиков PHP следовало за подобным маршрутом к моему: маленькие сценарии-> процедурный / встроенный код-> возможно взгляд на шаблонную обработку-> ООП-> затем платформа. Я думаю, что разработчику PHP может быть довольно свойственно "вырасти" с PHP, изучив шаблоны разработки для соответствия функциям, доступным текущей версии.
MVC является наиболее часто используемым шаблоном разработки в популярных платформах, используемых сегодня. CakePHP является моей предпочтительной платформой, хотя Симфония и Пехлеви очень популярен также †“, определенно стоит испытать некоторых, и это скоро станет очевидным, с которым Вы чувствуете себя больше всего комфортно.
Для большинства проектов (где быстрая разработка и портативный код являются приоритетами) я использую Пирог, однако для приложений легкого веса (один, я разработал, недавно был Хороший Baad), что Вы хотели бы работать быстро (на низких аппаратных средствах спецификации) и не нуждаетесь в объеме/весе, добавленном функциональностью одной из больших платформ, я рекомендую читать статью Rasmus Lerdorf о его Никакая Платформа платформа PHP MVC .
В основном, если Вы после истинного объектно-ориентированного языка, который поощряет красивый код и лучшие методы дизайна, PHP всегда собирается проиграть подобным Ruby Python и C#. Но, PHP имеет свои преимущества, например, никакую потребность в языке шаблонной обработки (это - одно), PHP может работать очень быстро и дешево и не нуждается в весе большой платформы для всех приложений.
я поощрил бы принимать шаблон разработки, который берет управляемость шаблона разработки как MVC, и объедините его с преимуществами PHP.
Попробуйте следующее:
(let [a [1 2 3 4 5]
b [2 3 5]]
(remove (set b) a))
, который возвращает (1 4)
.
Функция remove
, кстати, принимает предикат и коллекция и возвращает последовательность элементов, не удовлетворяющих предикату (в данном примере набор).
user=> (use 'clojure.set)
nil
user=> (difference (set [1 2 3 4 5]) (set [2 3 5]))
#{1 4}
Ссылка: