Witam!
Od pewnego czasu nurtuje mnie pewna rzecz, a dokładniej w jaki sposób poprawnie dobierać technologie do projektów. Zastanawiam się w jaki sposób osoby odpowiedzialne za projekty podejmują decyzję że akurat ta, a nie inna technologia będzie odpowiednia. Rozumiem że w pewnym stopniu jest to efekt dużego doświadczenia i wielu przepracowanych godzin, aczkolwiek tak się zastanawiam co w przypadku kiedy nie mieliśmy styczności z daną technologią? Jak wybrać technologię żeby w pewnym momencie nie stanąć przed "martwym punktem" który może doprowadzić do upadku projektu lub spowodować wielkie kłopoty z których nie dało by się wyjść?
Zastanawiam się nad tym zagadnieniem, ponieważ mega mnie to ciekawi, a zarazem też zmusiły mnie tego studia. Aktualnie pracowałem w bardzo podstawowych technologiach czyli HTML, CSS, JS no i do tego PHP (framework Laravel), na tym opierałem swoje projekty na studiach, na tym pracowałem i to mi wystarczało. Aczkolwiek wiadomo trzeba się rozwijać, pojawił się nowy projekt na horyzoncie i chciałbym zaplanować go z głową, tak żeby praca nad nim była ciekawym doświadczeniem.
Mój projekt opiera się na stworzeniu prostej webowej aplikacji społecznościowej (z funkcjonalności to planuje stworzyć dodawanie użytkowników, możliwość wyszukiwania, lub losowania użytkowników oraz możliwość rozmowy poprzez prosty komunikator). Na podstawie tej aplikacji chciałbym przetestować bazy danych MySQL oraz Neo4J. Bardziej mi chodzi o przedstawienie zalet i wad każdej z bazy danych w trakcie tworzenia takiego projektu, a także przeprowadzenie małych testów wydajnościowych np. która baza będzie szybciej wyszukiwała użytkowników w trakcie filtrowania itd.
Aktualnie stoję przed wyborem niezbędnych technologii do tego właśnie projektu. Myślałem żeby po stronie Front-endu postawić na Reacta, natomiast backend postawić w Node.JS wraz z Expressem, aczkolwiek nie wiem czy jest to dobry wybór. CO do testowania wydajności baz dopiero rozpatruję się w temacie i będę szukał odpowiednich technologii, dostosowanych też do głównego stacku aplikacji. Może ktoś z was zna jakieś strony, książki albo miejsca w internecie gdzie można poczytać na temat wad i zalet danych technologii? Czy istnieje jakaś strona która opisuje w jakich zastosowaniach "codziennych" dana technologia spisuje się najlepiej (lub najgorzej)?
Gdyby ktoś miał ochotę porozmawiać na temat projektu, i doradzić coś od siebie, tak prywatnie, to jestem bardzo otwarty na rozmowę, zapraszam do pisania na "Priv".
Z góry dziękuję za pomoc.