Recomandări backend pentru site web


(Stanciu Bogdan Mircea) #1

Am urmărit ceva cursuri pe subiectul ReactJs și mă simt pregătit să încep un proiect.

Vreau să dezvolt un site de “socializare” cu un sistem de notificări și achievements asemănător cu cel de aici (devforum). Asta pentru că vreau să aduc în lucru și conceptul de gamification.

Pe frontend va sta React, dar pe backend? Aveți ceva recomandări?

Menționez că am ceva experiență cu MySql și Django(Python web framework). Aș putea să lucrez cu astea dar știu că mai există și alte soluții (nodejs, firebase). Poate ați avut proiecte asemănătoare și îmi puteți împartăși un pic din experiența voatră.


(cosmos) #2

Pt NodeJs poti sa folosesti Express. Eu am lucrat cu ASP.NET MVC si Web Api.
Cred ca este ok, daca faci back-endul in Python.

M-am uitat putin pe codul sursa de la Discourse(pe el este bazat DevForum). Este facut in Ruby cu framework-ul Ruby on Rails

Ai deschis un topic fain !


(Stanciu Bogdan Mircea) #3

Că bine zici, Ruby! Am mai auzit de el și din ce am văzut e abordabil din poziția unui utilizator Python :D.


(Alexandru Coman) #4

De ce nu incerci node/php?

Ruby se duce in jos din ce in ce mai mult si nu este foarte cunoscut pentru performanta.


(István F.) #5

Apollo-client cu apollo-server backend, cel mai practic ar fi cu micro sau serverless pe aws lambda sau azure functions.

Pentru baza de date ar fi ideal ceva reactiv, mongodb 3.6 sau couchbase ar fi ok.
În rest mysql/postgresql sunt o bătaie de cap, dar probabil mai rapide.

React/preact/inferno 《》graphql (si pentru state store)《》backend graphql (apollo-server cu node sau o implementare graphql-server în orice alt limbaj gen go, c#, java, python sau c++) 《》baza de date


(Serghei Amelian) #6

Eu nu înţeleg tendinţa actuală de a veni cu jdemii de layere claie peste grămadă şi cu denumiri care mai de care mai fancy :slight_smile: La timp de răspuns nu se mai gândeşte chiar nimeni? Dar la fiabilitate?


(Florin Matincă) #7

Node + Express + Mongo fac treaba super buna, easy sa construiesti un MVP peste care sa dezvolti. Daca simti nevoia mai adaugi si un GraphQL si ai super backend. Gasesti pe Frontend Masters un curs foarte bun, recent l-au reinregistrat si include si partea de GraphQL.


(cosmos) #8

Citind raspunsul lui Istvan mi-am amintit de acest articol
https://blog.daftcode.pl/hype-driven-development-3469fc2e9b22

Cred ca este bine sa incepem cu lucruri simple in orice aplicatie. Dupa aceea, mai complex

Nota: Ce a prezentat el este interesant, dar cred ca trebuie sa ai ceva experienta pt a lucra cu acele tehnologii


(Stanciu Bogdan Mircea) #9

Cumva poveastea React+Wordpress.

Eu nu am mai deloc experiență pe partea de backend deci nu prea mă tem să încerc chestii. Fac asta în primul rând pentru a învăța. Ce e drept, uneori less is more.


(cosmos) #10

Nu

Tocmai de aia este bine sa incepi usor, de la 0. Back-endul unui site poate sa fie facut in ce vrei. C, C++(prea vechi, vorbim de CGI, anii 90), Java, C#, PHP, NodeJS, Python, Ruby, PHP,

In ziua de azi se lucreaza destul de mutl cu un framework sau macar biblioteci. Pt python stiu ca este Flask, Django, pt php - o gramada etc,

Eu as incepe cu schita aplicatiei pe hartie. Pt baza de date poti sa incepi cu modelul relational - Mysql, Postgre. Sql server. M-am jucat putin cu Mongo. Este o baza de date care se preteaza mai bine la date “aruncate la gramada”

Eu am inceput dezvoltarea web pe ASP. NET MVC. Inainte de asta mentorul de la firma unde am facut practica mi-a dat sa citesc depre http, html, css, javascript si C#. Dupaia ne-a explicat despre aceasta arhitectura mvc.
Apoi am inceput sa fac o mica aplicatie in care sa pun in practica cele invatate

:slight_smile:


(Serghei Amelian) #11

Eu când abia încerc să învăţ ceva, mereu o iau de jos în sus, niciodată învers. Adică fac chestiile “ad labam”, in cel mai primitiv mod posibil. Vreau să invăţ javascript, pai atunci scriu cod pur JS, nu jquery. Vreau sa învăt PHP, scriu cod pur php, nu folosesc direct un MVC.

Când înveţi ceva, nu trebuie să te obstrucţioneze nimic, trebuie să poţi “pune mâna” pe ceea ce faci, la cel mai “intim” nivel posibil.

După ce stăpânesc chestia respectivă la un nivel acceptabil, trec la layere ajutătoare. Odata ce ştii cum funcţioneaza sub capotă, totul devine mult mai clar.


(George Calianu) #12

Atunci incearca limbajul Go :wink:


(Horia Coman) #13

OTOH, daca zici ca stii deja Python, mergi pe Django cu MySql/Postgres si nu ai cum sa gresesti. Eu am folosit si Django/Python, Express+Node.js/TypeScript si ASP.NET/C# si le-as pune pe toate in aceiasi liga de productivitate. Sunt produse mature, cu multi oameni in spate si multe unelte ajutatoare.

As recomanda Heroku ca si “provider”. E un pic mai pricey, dar doar in ideea in care ai mult timp liber pe care vrei sa-l petreci cu configuratul de servere.

In general o sa ai cu orice alegi niste componente de care trebuie sa ai grija: continuous integration & deployment, mediu dev+testare, configuration management, setup infrastructura, load balancing & redundancy, backup-uri la baze de date, cache-uri si queue-uri si sisteme de stocare alternative etc. Depinzand de “clasa de backend” pe care o alegi o sa ai mai mult sau mai putin de lucrat/invatat pentru fiecare componenta.


#14

@mirceaciu în ce stadiu se află proiectul?


(Stanciu Bogdan Mircea) #15

Aceste proiecte sunt mai mult POC, ceva sa ma ajute sa invat una-alta.
La acea vreme am facut proiectul pentru administrarea interna a unui start-up, acolo a ramas.


#16

Back-end ca back-end dar daca nu monetizezi treaba atunci n-are sens sa o faci. Mai ales ca poti beneficia de un suport financiar de 20 000 de euro!!! Uite, chiar aici. :sunglasses:


(Catalin Banu) #17

Avand in vedere ca

  • stii JavaScript
  • view-ul sta in React

Eu sugerez sa folosesti node pentru back-end (express, squilize,etc)


(Stanciu Bogdan Mircea) #18

Subiectul asta a primit un bump neașteptat. Am mai cerut recomandări pe forum și am ajuns la concluzia că uneori e bine sa te limitezi la ce știi deja.
Stackul meu acum este React pe front, Flask si Postgresql pe back-end pentru API.

Singurul lucru pe care l-aș schimba este Flask, dar asta doar daca știu că folosind ceva Node câștig vizibil pe partea de performanță.


(Georgiana Gligor) #19

nu ar tb sa fie un bump relevant de performanta, un flask configurat corect e fast enough

pe de alta parte un node configurat incorect poate aduce mai multe buguri decat performance gainul


(Andrei Avram) #20

Daca-i vorba de invatat, de ce sa nu încerci ceva diferit? Iti largeste orizontul.