2011-12-06 13 views
12

Musi być wiele aplikacji zaprojektowanych do komunikacji z serwerem. Moje pytanie dotyczy tylko aplikacji zainstalowanej na urządzeniu z iOS + interakcji serwisu po stronie serwera. Aplikacja internetowa nie jest tym, o czym mówię, i nie powinno być żadnej strony internetowej zaangażowanej w tę dyskusję. Typowymi przykładami są aplikacje takie jak Instagram i Twitter, w których większość informacji wymienianych między aplikacją a serwerem to tylko dane takie jak String, Image i Integers (owinięte w JSON lub XML), nie jest wymagana prezentacja strony internetowej.Porady na temat wdrażania serwera dla rozwoju struktury serwera/klienta Tworzenie aplikacji na iOS?

Moje pytanie brzmi: jeśli jesteś niezależnym twórcą aplikacji i projektujesz taką aplikację od zera bez żadnego istniejącego interfejsu API witryny, struktury bazy danych lub aplikacji (więc nie jesteś ograniczony żadną istniejącą strukturą interfejsu API lub bazy danych lub protokół aplikacyjny), jakie będzie najbardziej efektywne podejście?

Co strona Sever trzeba zrobić to:

  • odbierać dane wysyłać przez aplikację;
  • przetwarzać dane według zaprojektowanej logiki;
  • wchodzić w interakcje z bazą danych (np. MySQL);
  • wykonać niezbędne eksplorację i analizę danych --- może to być stale działająca usługa lub zadanie jednorazowe wymagane przez klienta aplikacji;
  • wysłać dane z powrotem do aplikacji na żądanie lub spontanicznie;
  • wymieniać lub rozgłaszać dane pomiędzy/pomiędzy różnymi klientami aplikacji (tj. Grupowy czat i wiadomość typu peer to peer);

Jak dalece jak wiemy są 3 oczywistych opcji do wdrożenia po stronie serwera:

  • PHP
  • Pythona
  • Ruby on Rails

(prosimy dodaj więcej opcji)

Moje pytania są następujące:

  • Który z nich jest najbardziej odpowiedni do wdrożenia po stronie serwera?
  • Jeśli aplikacja intensywnie koncentruje się na wyszukiwaniu, analizie i eksploracji danych w ludzkim języku ludzkim, który z nich jest najlepszym wyborem? Słyszałem, że Python radzi sobie całkiem nieźle w tej dziedzinie.
  • Wszelkie porady dotyczące wyboru bazy danych? Na razie używam MySQL i okazało się, że jest dość potężny dla moich celów. Słyszałem, że Twitter przestawia się na Cassandrę. Czy na początku będzie to zbyt trudne?
  • Po koniec serwera, jeśli potrzebujesz zbudować interfejs zarządzania serwerem, dla ciebie jako administratora do zarządzania i monitorowania społeczności, członkostwa, danych i innych, czy istnieje jakieś istniejące rozwiązanie, lub framework lub narzędzie do tego? jakie będzie najbardziej efektywne podejście?
  • Jeśli nowy programista nie ma doświadczenia w innym z nich, który z nich sugerujesz na początek?
  • Czy istnieje jakiś dobry materiał referencyjny lub przykładowy kod po stronie serwera w takim kontekście, z którego możemy się uczyć?

Wiem, że w Stackoverflow jest wielu doświadczonych ekspertów w tych dziedzinach, ale widziałem więcej nowych użytkowników, którzy właśnie weszli do obszaru rozwoju iOS bez dużej wiedzy na temat programowania serwerów/baz danych. Mam nadzieję, że ten wątek pomoże tym, którzy zastanawiają się nad zaprojektowaniem aplikacji ze strukturą serwera/klienta, ale nie mają pojęcia, od czego zacząć.

ps: Będę na bieżąco aktualizował ten wątek i dodawał moje ustalenia na ten temat, aby pomóc wszystkim innym użytkownikom w stackoverflow. :-) Spróbuj, aby Twoja odpowiedź była pouczająca, łatwa do zrozumienia i konstruktywna. Myślę, że większość czytelników tego wątku będzie nowymi członkami tej wspaniałej społeczności.

Odpowiedz

0

To jest wielkie pytanie i nie sądzę, że jest jakaś najlepsza odpowiedź. To zależy od tego, na czym Ci zależy, jak na przykład szybkość procesu tworzenia, łatwość implementacji itp.

A która z nich jest popularna, która jest fajna, nie sądzę, żeby miała sens.

W mojej osobistej opinii jestem dobry w ASP.NET i mogę łatwo uzyskać serwer Windows, więc zacznę od usługi ASP.NET do dostarczania danych.

I, ciąg dalszy.

1
  • który z nich jest najbardziej odpowiedni wybór do wdrożenia serwera stronę?

Dobrze, że zależy od tego, co wiem, nie ma powodu do wyboru jednego z pozostałych

  • Jeśli aplikacja koncentruje się intensywnie na naturalnym ludzkim językiem/tekst poszukiwania, analizy i eksploracji danych , który z nich jest najlepszym wyborem? I słyszy się, że Python radzi sobie całkiem dobrze w tym obszarze.

Zastanowiłoby się to nad twoim pierwszym pytaniem, wybierz język, którego potrzebujesz. Jeśli więc pyton ułatwi to wybierz tę.

  • Wszelkie porady dotyczące wyboru bazy danych? Używam MySQL na razie, a I odkrył, że jest dość potężny dla moich celów. Słyszałem, że Twitter zmienia się na Cassandrę na . Czy na początku będzie to zbyt trudne?

Znów nie można łatwo odpowiedzieć, ponieważ wszystko to ma związek z wymaganiami. Ale zrobi to dowolny serwer SQL. Cassandra jest przeznaczona do "skalowalności i wysokiej dostępności bez kompromisów w wydajności". Czy uważasz, że usługa sieciowa dostanie wiele próśb, to może być wybór do rozważenia.

  • Na koniec serwera, jeśli trzeba zbudować interfejs zarządzania serwerem , dla Ciebie jako administratora do zarządzania i monitorowania Wspólnocie, członkostwa, dane i takie, czy istnieje istniejące rozwiązanie, lub ramy lub narzędzie do tego? jakie będzie najbardziej efektywne podejście?

Ta odpowiedź będzie ponownie udzielona tylko po wybraniu serwera SQL i języka serwera.

  • Jeśli nowy programista nie ma doświadczenia w non nich, który z nich Proponuję on/ona na początek?

Zacznij od czegoś prostszego, naprawdę wychodzisz tutaj na kończynę.

  • Czy istnieje jakiś dobry materiał odniesienia lub przykładowy kod na stronie w takim kontekście możemy wyciągnąć z serwera ?

Prawdopodobnie jest kilka, ale naprawdę powinieneś zacząć od małych i pracować.


Twitter zaczynał jako Rub na szynach aplikacji i pracuje na skalowalności i dostępności których Ruby nie jest naprawdę dobre ar (to moja opinia osoba). lub Popatrz na facebooka, że ​​napisali kompilator od php do c, aby php działało szybciej.

Jedyne, co mogę powiedzieć, aby zacząć kod, kiedy aplikacja się rozłączy, a następnie rozwiązać niektóre problemy z wydajnością.

A ponieważ twierdzisz, że jesteś nowy w programowaniu, nie gryź więcej, niż możesz żuć.

+0

naprawdę dziękuję za szybką odpowiedź. :) Twoje odpowiedzi definitywnie wyjaśniają, dlaczego tak mało jest informacji na ten wielki temat. Może tak jak powiedział Shiny, zadałem zbyt duże pytanie. dziękuję za podzielenie się, a ja przekażę moje wnioski na ten temat. Teraz zaczynam od PHP + MySQL, do tej pory tak dobrze. Jak już powiedziałeś, dowiem się więcej na ten temat, gdy zacznę uderzać w przeszkody. – horacex

4

Czy jesteś pewien, że chcesz poświęcić czas & pieniądze na rozwój własnego serwera & rozwijać własne API? Istnieje wiele dostawców mBaaS (mobile Backend jako usługa), takich jak QuickBlox, Parse, StackMob, które są gotowe do użycia i mają świetne interfejsy API obiektów niestandardowych oraz niektóre z predefiniowanych modułów. Mają świetne darmowe plany z dużą kwotą. Niektóre z nich, takie jak QuickBlox, mają plan Enterprise - więc możesz kupić licencję i serwer aktualizacji serwera do swoich celów.

Zalecam, aby nie rozwijać swojego serwera i nie myśleć o rynku mBaaS.

Tylko na twój problem - mogę polecić spojrzeć na QuickBlox Custom Objects code sample, a także Custom Objects API. Moduł Custom Objects zapewnia elastyczność definiowania dowolnej struktury danych (schematu), której potrzebujesz. Schemat jest zdefiniowany w Panelu administracyjnym. Schemat nazywa się Class i zawiera nazwy pól i ich typ. Myślę, że to jest to, czego potrzebujesz.

Powiązane problemy