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

Советы по реализации сервера для разработки сервера/клиента iOS App?

Должно быть много приложений, предназначенных для взаимодействия с сервером. Мой вопрос касается только того, что приложение установлено на устройстве iOS + серверное взаимодействие с сервером. Веб-приложение - это не то, о чем я говорю, и в этой дискуссии вообще не должно быть веб-страницы. Типичными примерами являются такие приложения, как Instagram и Twitter, в которых большая часть информации, обмениваемой между App и сервером, - это просто данные, такие как String, Image и Integers (завернутые в JSON или XML), не требуется представление веб-страницы.

Мой вопрос будет: если вы независимый разработчик приложений, и вы разрабатываете такое приложение с нуля без какого-либо существующего API веб-сайта, структуры базы данных или приложения (поэтому вы не ограничены каким-либо существующим API или структурой базы данных или приложением протокол). Каким будет наиболее эффективный подход?

То, что нужно сделать этой стороне:

  • получать данные, отправляемые приложением;
  • обрабатывать данные с помощью разработанной логики;
  • взаимодействовать с базой данных (например, MySQL);
  • выполнить необходимый анализ данных и анализ - это может быть постоянно работающий сервис или однократная задача, запрошенная клиентом приложения;
  • отправить данные обратно в приложение по запросу или спонтанно;
  • обменивать или транслировать данные между/между различными клиентами приложений (т.е.: групповое общение в чате и одноранговое сообщение);

Насколько я знаю, есть 3 очевидных варианта реализации серверной части:

  • PHP
  • Python
  • Ruby on Rails

(не стесняйтесь добавлять дополнительные параметры)

Мои вопросы:

  • какой из них наиболее подходящий для реализации серверной части?
  • Если приложение интенсивно фокусируется на поиске естественного человеческого языка/текста, анализе и интеллектуальном анализе данных, какой из них является лучшим выбором? Я слышал, что Python неплохо работает в этой области.
  • Любые советы по выбору базы данных? Я использую MySQL на данный момент, и я нашел его достаточно мощным для своих целей, я слышал, что Twitter переключается на Cassandra. С этим будет сложно начать?
  • Для завершения сервера, если вам нужно создать интерфейс управления сервером, для вас как администратора для управления и мониторинга сообщества, членства, данных и т.д. существует ли существующее решение или инфраструктура или инструмент для этого? какой будет наиболее эффективный подход?
  • Если новый программист не имеет опыта работы с ними, из которых вы предлагаете начать с него?
  • Есть ли какой-либо хороший ссылочный материал или пример кода на стороне сервера в таком контексте, о котором мы можем узнать?

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

ps: Я буду продолжать обновлять этот вопрос и добавлять свои выводы по этой теме, чтобы помочь всем другим пользователям в stackoverflow.:-) Пожалуйста, постарайтесь сделать ваш ответ информативным, понятным и конструктивным. Я думаю, что большинство читателей этой темы будут новыми членами этого великого сообщества.

4b9b3361

Ответ 1

Вы уверены, что хотите потратить время и деньги на разработку собственного сервера и разработку собственного API? Сегодня существует множество mBaaS (мобильных бэкэдов как сервис), таких как QuickBlox, Parse, StackMob, которые готовы к использованию, и у них есть отличный API пользовательских объектов и некоторые предопределенные модули. У них отличные бесплатные планы с большой квотой. Некоторые из них QuickBlox имеют план предприятия - так что вы можете купить лицензию и сервер серверов для серверов.

Поэтому я рекомендую не развивать свой сервер и думать о рынке mBaaS.

Как раз о вашей проблеме - я могу порекомендовать образец кода QuickBlox Custom Objects, а также API пользовательских объектов. Модуль Custom Objects предоставляет гибкость для определения любой структуры данных (схемы), в которой вы нуждаетесь. Схема определена в панели администрирования. Схема называется классом и содержит имена полей и их тип. Я думаю, что вам нужно.

Ответ 2

  • , который является наиболее подходящим вариантом для реализации сервера сторона?

Ну, это зависит от того, что вы знаете, есть выбор по выбору один из других

  • Если приложение интенсивно фокусируется на естественном человеческом языке/тексте поиск, анализ и анализ данных, какой из них является лучшим выбором? я слышал, что Python очень хорошо справляется в этой области.

Это будет отражать ваш первый вопрос, вы выбираете язык, который вам нужен. Таким образом, если python упрощает выбор, выберите этот.

  • Любые советы по выбору базы данных? Я использую MySQL на данный момент, и я нашел его достаточно мощным для моих целей, я слышал, что Twitter переключение на Кассандру. С этим будет сложно начать?

Опять не тот, на который легко ответить, поскольку все это связано с требованиями. Но любой SQL-сервер будет делать. Cassandra предназначена для "масштабируемости и высокой доступности без ущерба для производительности", на которой есть сайт. Считаете ли вы, что веб-служба получит много запросов, тогда это может быть выбор.

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

На этот раз вам будет дан ответ, когда вы выберете сервер SQL Server и язык сервера.

  • Если новый программист не имеет опыта работы с ними, кто из вас подскажите, с чего начать?

Начните с чего-то более простого, вы действительно выходите на конечность здесь.

  • Есть ли хороший справочный материал или пример кода на сервере в этом контексте мы можем учиться?

Возможно, есть некоторые, но вы действительно должны начинать с малого и работать оттуда.


Twitter начал работать как приложение Rub on Rails и работает над масштабируемостью и доступностью, которая не очень хороша для рубина (это мое мнение). или Посмотрите на facebook, они написали компилятор php to c, чтобы ускорить работу php.

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

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

Ответ 3

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

И какой из них популярен, какой из них классный, я не думаю, что это действительно имеет смысл.

По моему личному мнению, я хорошо разбираюсь в ASP.NET, и я могу легко получить Windows-сервер, поэтому я начну с службы ASP.NET для предоставления данных.

И, чтобы быть продолженными.