Facebook, возможно, был реализован в Adobe Flex?

Я рассматриваю создание веб-сайта со сложностью Facebook, который должен смочь масштабироваться в миллионы пользователей. Мой вопрос: разве там какая-либо причина не состоит в том, чтобы использовать Adobe Flex для такого крупного проекта кроме очевидного факта требования, чтобы все установили Flash и не необходимость полагаться на Adobe? По моему мнению, Adobe Flex уменьшил бы загрузку сервера для Facebook, потому что больше работы могло меня сделанный на стороне клиента. Вы соглашаетесь?

6
задан Nicole 14 February 2010 в 07:07
поделиться

7 ответов

Конечно, Facebook можно было бы реализовать на Flash. Но вопрос в том, удалось бы это сделать? Есть причины, по которым крупные веб-компании, такие как Google, Facebook и Yahoo, используют Flash как можно реже.

Больше всего я бы опасался отчуждения пользователей. Плагин Flash - не самое лучшее программное обеспечение. Он работает медленно и время от времени может сбоить. Если ваше приложение станет больше, вы можете получить время загрузки, которое может оказаться неприемлемым для ваших пользователей. Кроме того, на мой взгляд, сайты на Flash не очень удобны, потому что они ведут себя иначе, чем сайты на HTML. Все замечательные сайты, такие как Google, Flickr, Stackoverflow или Facebook, выглядят очень легкими и простыми, что очень элегантно и обеспечивает отличное удобство использования.

И потом, HTML и JavaScript гораздо более гибкие. Вы хотите, чтобы ваш сайт был доступен на смартфонах? В iPhone нет Flash, и даже в тех телефонах, где он есть, вы столкнетесь с проблемой, что пользователи, скорее всего, возненавидят сайт с полным Flash, поскольку эти телефоны не обязательно масштабируют Flash так же хорошо, как HTML, а Flash безумно потребляет заряд батареи. Если кто-то придумает другую революцию, например, смартфоны, вы можете быть уверены, что они поддерживают HTML и JavaScript, но вы не можете быть так уверены в Flash.

Тогда вопрос в том, как вы сможете добиться какой-либо эффективности? Конечно, вы можете написать свой пользовательский интерфейс с помощью Flex и просто вызывать очень легковесные веб-сервисы, как вы бы использовали их для AJAX, и вы даже можете кэшировать часть содержимого сайта локально, чтобы не передавать больше данных, необходимых для взаимодействия с пользователем (пользовательский интерфейс передается только один раз). Но вы также можете сделать это с помощью JavaScript. Вы можете написать свой пользовательский интерфейс на HTML и JavaScript, загрузить его один раз, а затем просто получить с серверов данные в формате JSON и отобразить их с помощью JavaScript. Вы также можете получить большое количество этих данных заранее, чтобы уменьшить количество запросов. Но все же у такого подхода есть свои минусы. Вы когда-нибудь замечали, что когда вы набираете ответ на stackoverflow и кто-то другой отправляет ответ, вы получаете уведомление, пока печатаете свой ответ. Такие функции реального времени очень круты, и в какой-то момент вы можете захотеть этого, что означает большее взаимодействие с сервером.

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

Самый интересный момент заключается в том, что Flex гораздо проще программировать, чем AJAX (подумайте, например, о несовместимости браузеров), и все же AJAX был не только изобретен, но и весь мир возится со всеми этими проблемами, которые с ним связаны, вместо того, чтобы использовать Flex. Я думаю, это многое говорит о ценности результата, который вы получаете при создании полноценного сайта на Flash.

7
ответ дан 8 December 2019 в 05:21
поделиться

Йоханнес прав, указывая на разницу между сервером и клиентом. Серверная часть - вот что нужно масштабировать.

В качестве примера команда Microsoft Silverlight собрала клиентское приложение facebook в silverlight (с использованием общедоступного API Facebook). Я хочу сказать, что, используя современные технологии, вполне возможно написать веб-приложение, ориентированное на множество различных клиентских технологий: классические веб-браузеры (HTML / javascript), «многофункциональные интернет-приложения» (flex, silverlight), ...

См. Также множество клиентов Twitter.

4
ответ дан 8 December 2019 в 05:21
поделиться

Вам нужно будет создать индивидуальную версию своего сайта для iPad / iPhone.

Есть и другие способы переноса нагрузки на клиентскую сторону. Javascript доставит вам головную боль при переносе, но меньше, чем уход от всей архитектуры, такой как Flex.

OTOH, когда у вас появится миллион пользователей, у вас будут ресурсы для повторной реализации вашего сайта.

1
ответ дан 8 December 2019 в 05:21
поделиться

Зайдите на facebook и просмотрите исходный код ... вы видите весь этот JavaScript? Все это выполняется на стороне клиента

4
ответ дан 8 December 2019 в 05:21
поделиться

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

2
ответ дан 8 December 2019 в 05:21
поделиться

Компания, в которой я работаю, имеет большое приложение на Flash, которое используется правительствами. Его очень трудно поддерживать, и иногда оно выходит из строя. Проблема заключается во всех файлах .fla и .as, которые приходится изменять только для того, чтобы сделать небольшое изменение. Да, приложение можно было бы сделать лучше, но даже в этом случае его все равно сложнее поддерживать, чем HTML/JavaScript front end.

Хотя мне нравится писать Flash/Flex-приложения, я считаю, что они должны дополнять сайт, а не быть им.

Использование хорошего JavaScript-фреймворка, такого как jQuery, снимает вопрос совместимости с браузером (по большей части) и обеспечивает большую функциональность.

4
ответ дан 8 December 2019 в 05:21
поделиться

Я не думаю, что вы увидите преимущество в производительности такого сайта, как Facebook, потому что контент очень динамичный, поступает из разных мест и создан многими независимыми организациями. Flash (и, следовательно, Flex) лучше подходит для монолитных приложений из одного источника, которые не нужно часто менять.

По умолчанию во Flash все создается в одном файле .swf, который содержит все. Конечно, можно выйти из этого поведения по умолчанию. Вы можете выполнять вызовы веб-служб, подключать внешние компоненты через механизм SWC, загружать статический контент через HTTP и т. Д. Тем не менее, это не шаблон по умолчанию, который влияет на работу библиотек и инструментов разработки Flash. Кроме того, чем больше вы этого делаете, тем меньше пользы от «запускайте все, что мы можем на стороне клиента». Он поглощается накладными расходами HTTP-соединения.

По умолчанию в простой старой сети, основанной на стандартах, все ресурсы хранятся отдельно и динамически собираются на клиенте. Это одна из причин, по которой Интернет работает медленно - опять же, все эти накладные расходы на HTTP-соединение, - но также и то, почему он гибкий и динамичный. Он хорошо сочетается с таким сайтом, как Facebook, который требует постоянного развития множества независимых разработчиков.

Я говорю это, разработав приложение Flex, которым я доволен. Только один человек - я - должен поддерживать его, и это, естественно, монолитное приложение. Это хорошо сочетается с сильными сторонами Flex.

1
ответ дан 8 December 2019 в 05:21
поделиться
Другие вопросы по тегам:

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