Wpis z mikrobloga

Cześć.
Jaki zestaw technologii, Waszym zdaniem, wybralibyście do stworzenia poniższego projektu, aby efekt końcowy był jak najlepszy: szybkość działania, przyszłościowa rozbudowa projektu, sprawna obsługa wielu użytkowników online w jednym czasie?
Chodzi o stworzenie aplikacji webowej, gdzie użytkownik po wejściu na stronę, mógłby wpisać swoją lokalizację, poszukiwany przedmiot, a po kliknięciu szukaj, aplikacja przeszukiwałaby zapewne bazę danych w danej lokalizacji, czy inny użytkownik dodał taki produkt i go wtedy wyświetlała. Czyli coś na styl olx/allegro, gdzie byłyby filtry sortowania, zakres szukania wg ilości kilometrów, możliwości wykupienia promocji na górze wyników, czyli także obsługa kont użytkowników, rejestracja, logowanie, przysyłanie informacji na e-mail o wstawieniu ogłoszeń itd jak to jest np. na olx.
Oczywiście nie negujcie projektu, ponieważ jest to coś innego, czego aktualnie nie ma, a nawiązuję do olx i innych portali, ponieważ działałby na podobnej zasadzie ;)

Gdyby był ktoś chętny popisać ze mną o tym bardziej szczegółowo, żeby wytłumaczyć mi, dlaczego dana ścieżka drogi jest lepsza od drugiej, to zapraszam do pisania prywatnej wiadomości. Na razie tylko chciałbym nakreślić ścieżkę technologii, które bym do tego potrzebował - nie mówię, żę sam chciałbym to stworzyć hehe

Jaka baza danych, technologia (php?), dlaczego ta, a nie inna? W ogóle istnieją podobne tematy, ale mało gdzie jest wytłumaczone jak realnie wygląda potem działanie takiej aplikacji, czy nie ma problemów, kiedy jest za dużo użytkowników, co np. z hostingiem takiej aplikacji, gdyby np. korzystało z niej miesięcznie XX tys. osób?? Czy przy takim pobieraniu informacij z bazy danych potrzebny jest duży hosting? Gdzie takiego szukać? Jakieś rady?
Dzięki za wszystkie wypowiedzi!
#programowanie #php #webdev
  • 9
@AwizisieAkat teoretycznie z czasem korzystać mogłoby z tego powiedzmy kilkadziesiąt tys osób miesięcznie, czyli np. 1/2k osób dziennie. Nie wiem jak przekłada się takie coś na działanie aplikacji webowej, dlatego pytam. Chodzi o to, aby korzystanie z tego było proste, bezproblemowe tak jak na olx wchodzisz, wyszukujesz i masz. Bez lagów, od razu Ci pokazuje co potrzeba :) Jednak trzeba mieć na uwadze, że nie jest to projekt, gdzie będą miliony użytkowników
@ddk1910: "premature optimization is the root of all evil". A tak na poważnie - podejście CQRS, gdzie masz osobno bazę, w której trzymasz szczegółowe dane, oraz osobną, do szybkiego odczytu, gdzie trzymasz już "płaskie" obiekty przygotowane do bezpośredniego zwrócenia do klienta API bez dodatkowego mapowania, łączenia danych itd.
Jeżeli używasz geolokalizacji, to idealnie nada się tutaj cache w Redis - takie samo rozwiązanie zastosowałem w Collectively. W dużym skrócie -
Dokładnie tak jak kolega już napisał. Martwisz się w tej chwili o super hiper najszybsze technologie, ale jak ktoś siedzi w branży i powiesz mu że spodziewasz się 1-2 tys. użytkowników dziennie, czyli kilkadziesiąt tysięcy odsłon dziennie to tylko się uśmiechnie. Dobrze opracowaną aplikację o jakiej piszesz spokojnie uciągnie serwer średniej klasy. Nie piszę o VPSie, ponieważ raczej będziesz potrzebował odpalić parę technologii i ramu by na to wszystko mogło łatwo zabraknąć.
@ddk1910: Jeśli chodzi o technologie, to taka, jaka Ci pasuje jeśli chodzi o sam kod. Ja jestem fanem rozwiązań rest api + frontend i tak bym ci polecał, bo później łatwiej o stworzenie aplikacji mobilnych, a przy okazji proces tworzenia wydaje mi się szybszy (ale to pewnie gusta). Ja bym wybrał nodeJS + ReactJS, bo zwyczajnie lubię te technologie i używam ich masowo do mniejszych projektów, używałem także nodeJS + angularJS
@mirasKo-Kalwario: głównie wirtualki w chmurze, używam Digital Ocean, bo jest tani i całkiem spory jak na dostawcę (z podobnych rozwiązań to jeszcze Linode). Odnośnie bazy, to oczywiście można wszystkim zarządzać samemu ale osobiście deleguję takie zadania gdzie się da i np. MongoDB oraz Redis mam wykupione jako usługi na ScaleGrid - w przypadku SQL Server wziąłbym pewnie Azure SQL. Dla mnie takie rozwiązanie jest o wiele lepsze, bo nie muszę się