Jak stworzyć stronę społecznościową jak Facebook: Historia sukcesu

Jak stworzyć stronę społecznościową jak Facebook: Historia sukcesu

po zaobserwowaniu wszystkich pułapek i zgodnie z rozwiązaniami związanymi z tworzeniem sieci społecznościowej po stronie klienta, zobaczmy, jakie istotne aspekty części po stronie serwera powinny być brane pod uwagę.

Back-end development

jeśli budujesz platformę społecznościową od podstaw, chcesz, aby działała bezproblemowo i obniżyć odsetek użytkowników „churn”., Dlatego ważne jest, aby wziąć pod uwagę następujące aspekty podczas tworzenia back-endu:

  1. poprawne renderowanie
    • renderowanie po stronie serwera (SSR)

      jest to bardziej tradycyjny i statyczny sposób renderowania treści witryny, który może zapewnić opóźnione ładowanie strony do kilku sekund. Jeśli tworzysz blogowanie lub publikujesz platformy mediów społecznościowych, taka opcja jest dla Ciebie, ponieważ nie wymaga szybkiej i natychmiastowej odpowiedzi między kolejnymi ładowaniami stron.,

      metoda renderowania jest wykonywana przez programistów back-end we współpracy z koderem HTML/CSS lub bez niego, przy pomocy Spring framework, Velocity library lub innych wydajnych technologii Java. Należy również pamiętać, że w przeciwieństwie do CSR (renderowanie po stronie klienta) Architektura back-endowa mikroserwisów nie ma zastosowania do SSR; dlatego wybierz architekturę monolitu.

    • Rendering po stronie klienta (CSR)

      w przypadku tworzenia stron podobnych do Facebook ' a, ten rodzaj wyświetlania danych jest bardziej odpowiedni., Takie podejście jest bardziej dynamiczne i responsywne i pozwala na stworzenie sieci, która zapewni Ci szybki rendering strony internetowej po początkowym pierwszym załadowaniu.

      rozwiązanie CSR jest prowadzone przez programistów front-end i jest zwykle zaimplementowane w JavaScript za pomocą AngularJS, React.js, czyli Vue.js Framework. W zależności od twoich wymagań, zarówno architektura back-endowa monolith, jak i mikroserwisy są odpowiednie dla Twojej witryny, jeśli wybierzesz CSR.,

  2. zwiększenie bezpieczeństwa
    • ustrukturyzowany język zapytań (SQL) zapobieganie wstrzykiwaniu

      wrażliwe dane użytkowników, takie jak szczegóły uwierzytelniania i informacje o karcie kredytowej, mogą być podatne na zastrzyki SQL w przypadku niewystarczającego bezpieczeństwa. Aby zapobiec takim złośliwym atakom, upewnij się, że umieściłeś Bezpieczny sterownik bazy danych Java z funkcją prepared statement, który wysyła zapytanie i dane do serwera bazy danych oddzielnie, unikając interwencji takiego ataku w rekordy wewnątrz bazy danych.,

      na przykład sterownik bazy danych PHP nie zapewnia takich zabezpieczeń, więc programista musi go chronić za pomocą danych wejściowych escape lub innej technologii.

      jak widzisz, wybór języka programowania i / lub frameworka wpływa na stos narzędzi zabezpieczających twój produkt, które z kolei powinny być używane poprawnie.

    • ochrona przed atakami Cross-Site Scripting (XSS)

      Jeśli Twoja sieć społecznościowa nie ma prawidłowo zabezpieczonej walidacji danych wejściowych, Twoja witryna jest otwarta na ataki XSS., W takim przypadku rozważ zintegrowanie filtracji danych wejściowych po ich przybyciu lub Zakoduj dane na wyjściu.

    • bezpieczny hosting

      aby upewnić się, że dane użytkowników są bezpiecznie przechowywane, pożądane jest, aby wybrać niezawodnych, najwyżej ocenianych dostawców usług hostingowych w chmurze, takich jak AWS, A2 Hosting, HostGator lub InMotion.

    • szyfrowanie danych

      pod względem tworzenia stron internetowych w mediach społecznościowych integracja szyfrowania danych SSL jest uważana za jeden z najbardziej skutecznych i obowiązkowych środków bezpieczeństwa., Uniemożliwia to hakerom uzyskanie poufnych danych użytkowników podczas ich przesyłania.

    • aktualizacja programów

      Bezpieczeństwo wielu stron internetowych jest często zagrożone z powodu przestarzałych komponentów oprogramowania. Zawsze upewnij się, że wszystkie części programów są aktualizowane, niezależnie od tego, czy jest to najnowsza wersja wtyczki, czy CMS, aby nie było otwartych luk w zabezpieczeniach witryny przed atakami.

  3. panel administracyjny

    jest to jedno z najważniejszych narzędzi do moderowania każdej strony w mediach społecznościowych, którego nie można przeoczyć., Jest to pełnoprawna aplikacja, która współpracuje z Twoją witryną i ma na celu zwiększenie możliwości Twojej firmy poprzez:

    • zapewniająca wgląd w funkcje związane z użytkownikiem (zachowanie użytkownika);
    • wykrywanie naruszenia przepisów i zasad witryny;
    • wyświetlanie wskaźników biznesowych (KPI).
  4. Poprawa wydajności
    • skalowalność pozioma

      im bardziej znana staje się Twoja sieć, tym więcej współbieżnych obciążeń działa w witrynie., W takim przypadku utrzymanie skalowalności poziomej jest koniecznością, co można osiągnąć dzięki odpowiedniemu doborowi równoważników obciążenia przez dostawcę.

    • Content delivery network

      Jeśli chcesz spopularyzować swoją sieć nie tylko w jednej konkretnej lokalizacji geograficznej, ale na całym świecie, możesz zwiększyć wydajność swojej witryny za pomocą CDN (content delivery network). Takie rozwiązanie zapewnia szybsze dostarczanie treści do użytkowników końcowych, którzy znajdują się daleko od hostowanego serwera, za pomocą najbliższych lub lokalnych serwerów brzegowych.,

      obrazek 6. Przegląd pracy CDN. Źródło: Wpbeginner
    • optymalizacja rozmiaru zawartości

      aby zoptymalizować pracę swojej witryny, możesz potrzebować oprogramowania, które kompresuje pliki audio, wideo, tekstowe i inne typy. Możesz użyć aplikacji Gzip, która kompresuje i dekompresuje pliki statycznie lub dynamicznie, poprawiając obciążenie strony o prawie 15%., Co więcej, lepiej jest przechowywać skompresowane pliki niż kompresować je po stronie nakładki za każdym razem, gdy przychodzi żądanie.

  5. tworzenie stron www odpornych na błędy

    wiele czynników może negatywnie wpłynąć na funkcjonowanie Twojej strony. Tolerancja błędów jest jednym z najważniejszych aspektów każdej sieci społecznościowej, który pomaga przeciwdziałać takim włamaniom., Może być on zapewniony za pomocą takich środków zapobiegawczych:

    • włącz klastrowanie, proces, który pomaga replikować działania serwera w przypadku jego nagłej awarii;
    • upewnij się, że masz odporną na błędy bazę danych, która przejmie pracę głównej w przypadku jego awarii;
    • Zintegruj niezawodne kanały komunikacyjne, które zapewnią bezpieczną i spójną wymianę danych i zmniejszą ryzyko utraty połączenia;
    • zapewnij kopię zapasową bazy danych, aby wyeliminować możliwość wrażliwych utrata danych;
    • zapewnić procedury odzyskiwania po awarii., Takie procedury będą zależeć od tego, czy wybierzesz przetwarzanie w chmurze, czy lokalne. W przypadku tego pierwszego będziesz musiał włączyć migrację danych w chmurze do innego regionu. Jeśli wybierzesz tę drugą opcję, upewnij się, że dostawca kopii zapasowych lub centrum danych znajduje się w innym obszarze geograficznym., Również jeśli korzystasz ze środowiska lokalnego, możesz w tym przypadku przełączyć się na przetwarzanie w chmurze;
  6. Ci/CD

    ciągła Integracja (CI) i ciągłe wdrożenia (CD) są niezbędnymi praktykami, które umożliwiają wydajny i elastyczny przepływ pracy, który ostatecznie prowadzi do szybszego i bezproblemowego wdrożenia. Inżynierowie DevOps to ci, którzy zapewniają i utrzymują prawidłowo funkcjonujący proces konfiguracji CI / CD w cyklu życia rozwoju., Decydując się na takie podejście do rozwoju swojej strony internetowej w mediach społecznościowych, możesz uzyskać:

    • zminimalizowanie pojawiania się błędów podczas uruchamiania Strony, ponieważ regresje są przechwytywane wcześniej podczas iteracyjnych testów automatycznych (CI);
    • zmniejszenie kosztów testów post-developerskich, ponieważ CI server wykonuje wiele testów automatycznie;
    • szybsze wydanie ponieważ CI/CD pipeline stale łączy kod i wdraża go do produkcji po automatycznym testowaniu, dlatego zawsze utrzymuje go w gotowości do wydania.,

stos technologii

wybór odpowiedniego stos technologii do programowania sieci społecznościowej zwykle zależy od najlepiej dopasowanego rozwiązania do ustalonych wymagań, złożoności projektu i wiedzy dostawcy oprogramowania w zakresie technologii zaplecza.,”>Programming languages

Java, PHP, Python Search engines Apache Solr, Elasticsearch Frameworks/libraries Spring stack for Java
Laravel, Symfony for PHP
Django, Flask, Tornado for Python Caching Redis, Memcached Front-end frameworks and technologies React.,js, Vue.,Angular języki programowania Front-end TypeScript, JavaScript DevOps GitLab Ci, TeamCity, gocd Jenkins, ws codebuild, Terraform

testowanie

utrzymanie wysokiego obciążenia strony, odpowiedzialność za bezpieczeństwo danych użytkowników i ich płatności w sieci to te czynniki, które definiują ekstremalne znaczenie dla przemyślanego podejścia do etapu testowania.,

testowanie serwisu społecznościowego wymaga stworzenia konkretnych artefaktów testowych: strategii testowej, planu testowego, danych testowych, przypadków testowych itp. Są one prowadzone w celu zagwarantowania, że wszystkie wymagania klienta są dokładnie zrozumiane przez dostawcę oprogramowania. Umożliwiają one również zarówno klientowi, interesariuszom, jak i testerom śledzenie zmian w projekcie, eliminując ewentualne nieporozumienia między stronami.,

Zwykle podczas tworzenia sieci społecznościowej wykonywane są następujące rodzaje testów:

  • testowanie funkcjonalne — pomaga zapewnić, że wszystkie funkcje Twojej sieci działają zgodnie ze specyfikacją wymagań., Wykonując to, zespół QA zwraca uwagę na następujące aspekty:

    • testuje podstawowe funkcjonalności strony;
    • zapewnia, że aktualizacje i ulepszenia nie wpływają negatywnie na funkcjonalność strony;
    • sprawdza interoperacyjność różnych modułów funkcjonalnych;
    • upewnia się, że interfejs użytkownika spełnia oczekiwania konsumenta końcowego.,
  • testowanie zabezpieczeń — aby upewnić się, że Twoja witryna społecznościowa nie zawiera żadnych zagrożeń i luk w zabezpieczeniach, które mogą uszkodzić poufne dane użytkowników, testerzy koncentrują się na takich obszarach:

    • luki w zabezpieczeniach podczas skanowania sieci;
    • zapewnia, że aktualizacje i ulepszenia nie wpływają negatywnie na funkcjonalność witryny;
    • sprawdzanie punktów dostępu;
    • niedociągnięcia w komponentach oprogramowania.,
  • testowanie wydajności — podczas jego przeprowadzania, gotowość strony internetowej do utrzymania możliwego obciążenia jest testowana przez sprawdzenie:

    • szybkość połączenia;
    • zachowanie strony internetowej przy rosnącym obciążeniu;
    • zachowanie strony internetowej poza granicami oczekiwanego obciążenia;
    • zachowanie strony internetowej przy ciągłym dużym obciążeniu.
  • testowanie interfejsu-pomaga zapewnić poprawną transmisję danych po stronie serwera i renderowanie po stronie klienta., Zespół QA wykonuje to poprzez:

    • Walidacja prawidłowej interakcji interfejsów aplikacji i serwera;
    • Walidacja prawidłowej interakcji między serwerem WWW a interfejsami serwera bazy danych;
  • testowanie użyteczności — inżynierowie QA testują, czy w części strony po stronie klienta występują jakieś słabe strony, takie jak:

    • kompleksowość nawigacji;
    • ogólny widok projektu;
    • czas, który użytkownik spędza na wykonaniu zadania.,

    dział KONTROLI JAKOŚCI Aimprosoft stosuje najbardziej złożone podejście do wyboru odpowiedniego rodzaju zestawu testowego, w zależności od złożoności produktu i twoich wymagań. Integrując pracę zespołu QA od samego początku projektu, potencjalnie obniżasz koszty rozwoju, zapewniasz bezproblemową pracę sieci i zwiększasz jej możliwości.,

    poznaj podejście naszego działu kontroli jakości do etapu testowania

Wydania i promocji

przed wdrożeniem produktu dostarczane są różne wersje pośrednie (Proof of Concept, MVP, alpha i beta) w celu sprawdzenia funkcjonalności i wykonalności nowej strony internetowej.

aby zaprogramować sieć społecznościową, cykl iteracyjnych procedur testowania poprzedza ostateczne wydanie strony. Następnie w Aimprosoft zamrażamy kod i kontynuujemy naprawianie błędów przez 2-3 tygodnie bez zmiany produktu., Aby zapobiec ewentualnym zagrożeniom biznesowym związanym z wydaniem, pożądane jest również:

  • przetestowanie wszystkich adresów URL pod kątem prawidłowego działania;
  • sprawdzenie, czy Twoja witryna jest przyjazna dla przeglądarki i urządzeń mobilnych;
  • sprawdzenie, czy Twój kod HTML/CSS jest bezbłędny;
  • dwukrotnie sprawdź Składnik bezpieczeństwa Twojej witryny i upewnij się, że Twoja sieć społecznościowa ma kopię zapasową.,

dodatkowymi aspektami, które przyczyniają się do udanego uruchomienia strony internetowej, mogą być:

  • wdrożenie skutecznych technik SEO;
  • konfiguracja Google Analytics do dalszego monitorowania;
  • upewnij się, że adresy URL są przyjazne dla wyszukiwarek.

Gdy twoja sieć społecznościowa zostanie zatwierdzona do faktycznego wydania, nadszedł czas, aby wdrożyć strategię marketingową promującą Twoją stronę internetową., Może to obejmować:

  • reklamuj swój produkt za pośrednictwem innych popularnych sieci społecznościowych, jeśli ich koncepcja różni się od twojej;
  • Promuj go na Quora, odpowiadając na pytania w powiązanych tematach i dołączając link do strony internetowej;
  • promocja za pomocą popularnych influencerów;
  • inwestuj w marketing w wyszukiwarkach, aby pojawić się na pierwszej stronie wyników wyszukiwania.

Po uruchomieniu witryny ważne jest monitorowanie jej wydajności i zachowania użytkowników, aby odpowiednio ją zaktualizować.,

koszt opracowania serwisu społecznościowego

aby określić przybliżony koszt potrzebny do założenia własnej sieci społecznościowej, rozważmy podobny produkt, który stworzyliśmy o nazwie Chattlez.

chattlez zawiera podstawowe funkcje związane ze standardową witryną społecznościową; kładziemy również szczególny nacisk na responsywność jej projektu, co nie było tak powszechne w 2013 roku. Koncepcja Chattlez polegała na połączeniu agregatora produktów z siecią społecznościową i przekształceniu ich w rynek umożliwiający komunikację i dokonywanie zakupów., Opracowanie takiej sieci społecznościowej zajęło prawie 5 miesięcy i pozwoliło nam opracować przybliżoną formułę szacowania zarówno czasu, jak i kosztów tworzenia stron internetowych w mediach społecznościowych.

kiedy budujesz własny serwis społecznościowy, musisz najpierw opracować MVP, aby zidentyfikować słabości produktu i dokładnie ulepszenia, aby dalej inwestować., W Chattlez zaimplementowano następujący rdzeń dla wszystkich funkcji sieci społecznościowych:

  • rejestracja użytkownika;

  • uwierzytelnianie użytkownika;

  • profil użytkownika;

  • subskrypcja;

  • kanał informacyjny;

  • opcja udostępniania treści;

  • publikowanie treści;

  • komentarze;

  • wyszukiwanie;

  • wysyłanie wiadomości.,

następujący stos zespołów jest zwykle wymagany, jeśli zdecydujesz się najpierw utworzyć MVP:

  • 1 Kierownik Projektu;

  • uwierzytelnianie użytkowników;

  • 1 inżynier interfejsu UI/UX;

  • 1 programista zaplecza;

  • 1 programista interfejsu;

  • 1 inżynier QA;

  • 1 inżynier DevOps.,

gdy MVP przejdzie pierwszą falę krytycznych testów przez potencjalnych odbiorców i uzyskasz informacje zwrotne, możesz przystąpić do rozwoju pełnego produktu z następującymi dodatkowymi funkcjami, które zostały również zawarte w Chattlez:

  • panel administracyjny;

  • łączenie z innymi platformami mediów społecznościowych;

  • moderacja treści;

  • Analytics;

  • wyszukiwanie zaawansowane;

  • dostosowywanie profilu użytkownika.,

Jeśli zdecydujesz się na stworzenie pełnego produktu od razu, będziesz potrzebował takiego przybliżonego stosu programistów do kodowania serwisu społecznościowego od podstaw. Może się ona różnić w zależności od złożoności projektu i daty uruchomienia:

wykorzystaliśmy naszą wiedzę na temat tworzenia Chattlez, aby przygotować poniższą tabelę porównawczą przybliżonego czasu poświęconego na rozwój zarówno MVP portalu społecznościowego, jak i pełnego produktu.,v>850 — 950

QA 90 — 100 175 — 225 Product architecture 30 — 40 50 — 60 CI/CD 100 — 140 140 — 180

The above-mentioned estimated time may vary if you conduct a business analysis, all mockups and prototypes yourself, and then turn to the full-cycle development company., Jeśli chodzi o tworzenie backendów, najbardziej czasochłonne i złożone części są związane z tworzeniem panelu administracyjnego i zintegrowanej analizy, wymagającej około 200 godzin każda.,>€52 500 — 63 900

€92 400 — 108 000 UK £55 £48 125 — 58 575 £84 700 — 99 000 Eastern Europe (Ukraine) $30 $26 250 — 31 950 $46 200 — 54 000

You may see that depending on geographical area, the average rate of the developers may significantly differ., Tak więc, na przykład, cały koszt rozwoju portalu społecznościowego w Europie Wschodniej (Ukraina) stanowi tylko 40% tego samego kosztu w USA.

podsumowanie

jak zapewne zauważyliście, internetowy wszechświat sieci mediów społecznościowych jest raczej wielowymiarowy i lukratywny. Aby uzyskać więcej korzyści z tak obiecującej branży, trzeba mieć wykonalny pomysł, trochę odwagi i dedykowanego partnera oprogramowania, aby wdrożyć najbardziej złożone funkcje., Jeśli chcesz porozmawiać o tym, jak stworzyć stronę w mediach społecznościowych, skontaktuj się z nami, a Aimprosoft dokładnie pomoże w Twoim starcie-przedsięwzięciu.

FAQ

czy rozwój serwisów społecznościowych jest w dzisiejszych czasach wciąż aktualny?

obecnie z mediów społecznościowych korzysta ponad 3,81 miliarda osób. Oznacza to, że popyt na tego typu strony internetowe jest wyższy niż kiedykolwiek wcześniej. Głęboko zakorzenione serwisy społecznościowe starają się sprostać stale rosnącym wymaganiom użytkowników. Stąd postępowa wizja nowo przybyłych może znacząco przyczynić się do rozwoju tej sfery.,

czy istnieje konkretny zestaw technologii, które możesz polecić, aby stworzyć solidną stronę internetową w mediach społecznościowych?

odpowiedni stos funkcji różni się w zależności od złożoności projektu, zestawu pożądanych funkcji i budżetu. Ponieważ istnieją różne rodzaje stron internetowych w mediach społecznościowych, ich funkcjonalność może się znacznie różnić. Po zidentyfikowaniu tych funkcji, które chcesz uwzględnić, doradzamy konsultację z wybranym dostawcą oprogramowania w sprawie zalecanych technologii., Sprzedawca powinien dostarczyć Ci opcje i ich porównanie, a następnie wybrać najbardziej odpowiednie narzędzia programowe.

jak wybrać odpowiedni zestaw funkcji dla serwisu społecznościowego? Jakieś wskazówki do naśladowania?

zawsze lepiej jest określić, jakie wyzwania mogą napotkać potencjalni użytkownicy, mając do czynienia z taką platformą i jakie oczekiwania mają na podstawie wcześniejszych doświadczeń z podobnymi witrynami. Pomoże to zidentyfikować niezbędne narzędzia, aby zaspokoić potrzeby odbiorców docelowych i wykluczyć niepotrzebne funkcje. Ponadto, przeprowadzić dokładne badania swoich konkurentów., Określ, jakie funkcje pomagają im odnieść sukces i jakie mają słabe strony, abyś mógł je ulepszyć i przekształcić w swoje zalety.

Jak mogę zapewnić najwyższy poziom bezpieczeństwa dla mojej strony w mediach społecznościowych?

jedną z najważniejszych zasad bezpieczeństwa podczas tworzenia platformy społecznościowej od podstaw jest ochrona wszystkich warstw aplikacji przed zagrożeniami zidentyfikowanymi przez OWASP. Po drugie, Zintegruj z infrastrukturą aplikacji WAF (Web application firewall)., Zabezpieczy Twoją aplikację przed atakami zewnętrznymi, takimi jak zastrzyki SQL, ataki XSS (Cross-Site Scripting), włączanie plików itp. Innym użytecznym środkiem bezpieczeństwa witryny internetowej jest regularne przeprowadzanie audytów bezpieczeństwa kodu aplikacji internetowej i terminowe aktualizacje wszystkich składników oprogramowania witryny, w tym aktualizacji frameworków i bibliotek, które zostały wykorzystane w trakcie tworzenia. Ogólnie rzecz biorąc, są to tylko jeden z możliwych sposobów na wzmocnienie bezpieczeństwa witryny mediów społecznościowych., Ogólnie rzecz biorąc, architekt oprogramowania lub kierownik techniczny pracujący nad projektem opracowuje odpowiednią strategię i wybiera narzędzia i praktyki bezpieczeństwa odpowiednie dla danego produktu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *