Архитектура очень сложных php приложений?

Phonegap является базирующейся платформой javascript/css/html, которая предназначается для iPhone, Android и Blackberry. Это (на iPhone, по крайней мере) может быть связано как исходное приложение также. Уровень UI для этих приложений обычно создается в html/javascript и может быть медленнее, чем истинное исходное приложение.

phonegap

Реагируют, Собственный компонент позволяет Вам создать события приложения мирового класса в собственных платформах с помощью последовательного опыта разработчика на основе JavaScript и Реагировать. Фокус Реагирует, Собственный компонент находится на эффективности разработчика через все платформы, о которых Вы заботитесь о —, учатся однажды, пишут где угодно. Использование Facebook Реагирует Собственный компонент в нескольких производственных приложениях и продолжит вкладывать капитал в, Реагируют Собственный компонент. UI для Реагирует, Исходные приложения являются собственными средствами управления - таким образом, Ваш UI обычно быстрее, чем чистый подход HTML/javascript для управления GUI.

Реагируют Собственный компонент

, Unity является межплатформенным игровым механизмом, разработанным Unity Technologies и используемым для разработки видеоигр для ПК, консолей, мобильных устройств и веб-сайтов. Unity известна своей способности предназначаться для игр на несколько платформ. Поддерживаемые платформы включают Android, Apple TV, BlackBerry 10, iOS, Linux, строку Nintendo 3DS, OS X, PlayStation 4, PlayStation Vita, веб-Плеер Unity (включая Facebook), Wii, Wii U, Windows Phone 8, Windows, Xbox 360 и Xbox One.

Unity

OpenFL является портом с открытым исходным кодом API Flash на Рабочий стол, Браузер, iOS, Android, Flash, HTML5, и т.д. и является опцией рассмотреть для тех, которые происходят из мира Flash. Это создает к собственным двоичным файлам и предназначается для браузеров также (Flash/HTML5).

openfl

Моноигра является реализацией с открытым исходным кодом Microsoft XNA 4.x Framework. Это облегчает для разработчиков XNA создавать межплатформенные игры с чрезвычайно высоким повторным использованием кода. Это в настоящее время поддерживает iOS, Android, Windows (и OpenGL и DirectX), Mac OS X, Linux, Windows 8 Store, Windows Phone 8, Мобильный PlayStation, и консоль OUYA.

моноигра

Adobe Flash И хотите верьте, хотите нет, Adobe Flash может опубликовать собственные двоичные файлы к iOS, андроиду, рабочему столу и конечно сети. Производительность разумна, но весьма вероятна. Если у Вас была флеш-игра, можно быть в состоянии взять ее к мобильному телефону очень легко. И это не требует никаких плагинов никакого вида. Это на самом деле создает собственный автономный двоичный файл, который работает на каждой платформе.

adobe

6
задан Oguz Bilgic 18 November 2009 в 16:23
поделиться

6 ответов

Я считаю, что часть вашей проблемы может заключаться в том, что создание корпоративных приложений является проблемой на любом языке, а шаблоны проектирования, которые могут быть реализованы, фактически не зависят от языка.

Я бы хотел настоятельно рекомендую вам ознакомиться с «Паттернами архитектуры корпоративных приложений» Мартина Фаулера. Это основополагающая работа для любых других книг, которые вы можете позже почерпнуть и которые охватывают те же концепции в языковом формате, и если вы хотите по-настоящему понять, что требуется для создания надежных, масштабируемых приложений в Интернете, тогда вам понадобится чтобы ознакомиться с этой книгой.

В настоящее время очень распространенной и популярной стратегией проектирования веб-приложений является парадигма модель-представление-контроллер. Это полностью связано с разделением задач в вашем приложении, чтобы вы не смешивали код доступа к базе данных с выводом html.

Для довольно хорошего рассмотрения темы я бы посоветовал вам заглянуть здесь (специфично для Zend Framework, но он хорошо охватывает общую тему) и здесь для обсуждения конкретных моделей . Или, если вы хотите взглянуть на более обобщенное руководство по PHP MVC, у Расмуса Лердорфа есть один .

В дополнение к этому (и снова вы можете узнать это из PofEAA Мартина Фаулера) вам нужно будет изучить об объектно-реляционном отображении, каковы сильные и слабые стороны различных шаблонов проектирования.

К сожалению, есть много хороших способов делать что-то в зависимости от ваших потребностей, но на каждый хороший способ существует около миллиона ужасно неправильных способов.

7
ответ дан 9 December 2019 в 22:36
поделиться

Какие фреймворки вы исследовали? Изучите symfony, Zend Framework и CakePHP, если вы еще этого не сделали. Под изучением я имею в виду создание приложений среднего размера с использованием этих фреймворков. Простого чтения кода часто недостаточно, чтобы понять, как он работает. Вам часто приходится на самом деле использовать его и пытаться изменить.

Вы также можете почитать книгу PHP 5 Objects Patterns and Practice для некоторых идей стратегий проектирования, которые вы можете применить в своем приложении. . Вы также можете немного узнать, изучая фреймворки, написанные на других языках. Например, разработчики многих фреймворков PHP были сильно вдохновлены Ruby on Rails.

2
ответ дан 9 December 2019 в 22:36
поделиться

Если вы еще этого не сделали, вам следует изучить объектно-ориентированное программирование. Здесь есть действительно отличный учебник . Я думаю, что это, пожалуй, самая важная вещь, которую делают большие веб-приложения, которая не обязательно интуитивно понятна для любителя (включая меня). Уловка в фреймворках MVC, таких как Code Igniter, заключается в создании серии классов (или объектов) в виде моделей или библиотек.

1
ответ дан 9 December 2019 в 22:36
поделиться

Это действительно очень абстрактный вопрос, а «очень сложный» не очень конкретный. Когда я слышу, как люди говорят о «сложных» приложениях, я ассоциирую это с

a) Кто-то использует сложную архитектуру для решения простой проблемы. Например, используя все шаблоны проектирования и фреймворки, которые казались крутыми.

б) Кто-то пытался втиснуть тонны совершенно разных вариантов использования в исторически сложившееся приложение, создавая и используя проприетарные и недокументированные интерфейсы и объединяя все как можно теснее. К сожалению, МОЖЕТ создавать огромные приложения с плохой стратегией проектирования, и это делает их сложными.

c) Устаревшие системы и интеграция унаследованных систем (хорошо, см. B)

Magento может быть большим приложением, но базовая структура все еще остается Zend Framework , в основном его часть MVC. Так что чтение документации Zend_Framework также очень поможет вам понять архитектуру Magentos (я не рекомендую делать это наоборот, пытаясь копаться в Zend Framework через исходный код Magento). Я бы порекомендовал начать создавать более крупное приложение с помощью одной из фреймворков MVC самостоятельно, потому что это лучший способ изучить архитектуру, ее преимущества и ограничения.

1
ответ дан 9 December 2019 в 22:36
поделиться

Ну, даже если ваш вопрос касается только PHP ... Если вы обрабатываете статический контент, например изображения, с помощью PHP, это приведет к снижению производительности независимо от того, используете вы MVC или нет. Для таких вещей вам следует использовать интерфейс, такой как nginx.

посмотрите http://highscalability.com/ реальные истории из реальной жизни!

Также обратите внимание на NoSQL.

0
ответ дан 9 December 2019 в 22:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: