![]() |
Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
Backend rapid pt forumuri – mii de cereri/secunda pe hardware modest

#1
Posted 18 September 2016 - 22:38

Pentru a pune in practica niste idei de arhitectura si a iesi putin din cotidian, m-am gandit sa incep un proiect open-source mai exotic: un proiect web in C++. Mai exact, un backend de forum, pentru a avea un domeniu nu foarte complex, dar nici chiar un banal blog.
Tinte:
Edited by dani.user, 01 June 2020 - 22:05. |
#2
Posted 21 September 2016 - 15:32

De laudat initiativa, sunt sigur ca toti participantii vor avea multe de invatat.
Quote forum Quote Cat mai rapid, eliminand cod inutil Quote Cat mai eficient cu memoria un soft sau sa folosesti un framework sa il scrii in 2 luni - si tare cred ca vei avea performante mai marei cu a doua varianta. Arunca un ochi peste asta si zi-mi daca iti mai vine sa folosesti c++ pentru web dev ![]() |
#3
Posted 21 September 2016 - 18:50

cred ca ai fi putut veni cu idei mult mai bune de proiecte open source Alea mai bune nu le fac open-source.
scriind implementari proprii de json, escaping, whatever, mi se pare cod inutil Implementarea respectiva am scris-o mai demult cu alta ocazie cand gaseam doar biblioteci ce ma fortau sa creez diverse structuri inainte de serializari, lucru ce vreau sa-l evit.
la ce bun cand poti face fire la inca o masina in cloud? Aici e lunga discutia. Imi place sa optimizez treburi, nu doar sa umplu buzunarele altora.
ce alegi, sa stai 3 ani sa scrii un soft sau sa folosesti un framework sa il scrii in 2 luni - si tare cred ca vei avea performante mai marei cu a doua varianta. Poti sa-l numesti un fel de experiment pentru a arata ca, odata ce stii ce faci, diferenta e mult mai mica. Fiind un proiect tip hobby, nu ma forteaza nimeni sa fie gata ieri. N-am zis ca nu voi folosi treburi gata facute, treaba cu json-ul e mai mult o exceptie. Performanta va veni din treburi mai subtile cu rol de a minima pe cat posibil ceea ce are procesorul de facut pentru a raspunde fiecarei cereri, iar C++ se preteaza la asa ceva, fata de framework-uri gen spring unde vezi callstack-uri de zeci de membrii sau unde multe treburi se "wire-up" la rulare, pe cand C++ are grija sa "paveze drumul" inca din momentul compilarii. Edited by dani.user, 21 September 2016 - 18:52. |
#4
Posted 22 September 2016 - 22:22

Incep sa se observe formele structurilor de date si a mecanismului de protectie thread-safety.
|
#5
Posted 10 October 2016 - 16:24

Pe un server *nix, cum ar prefera potentiali hosteri sa vada metrici in timp real? Ce platforme de genul sunt la moda?
Edited by dani.user, 10 October 2016 - 16:26. |
#6
Posted 23 October 2016 - 18:57

Commit-ul cu numarul 100 (fata de branchul master) aduce referinte in cadrul userilor pentru identificarea rapida a topicurilor create.
|
#7
Posted 16 December 2016 - 17:31

Avand in vedere ca, in cazul unui forum, inserarile de noi date sunt mult mai frecvente decat editarile/stergerile si ca nu am nevoie de limbaje de interogare gen SQL, m-am gandit sa persist datele folosind Event Sourcing.
Avantaje:
Dezavantaje:
Pareri? |
#8
Posted 26 December 2016 - 18:25

Ce features sugereaza publicul? Ce v-ar fi placut sa vedeti in softuri similare dar lipsesc cu desavarsire?
|
#9
Posted 26 December 2016 - 19:23

Ce features sugereaza publicul? Ce v-ar fi placut sa vedeti in softuri similare dar lipsesc cu desavarsire? Sa poti sa modifici textul topic-ului, sau macar o parte din el. Ca sa prezinti anumite update-uri. Sa poti sa conlucrezi pe un topic cu mai multe persoane, eventual pe baza unui vot. Sa ai scoped reply ca la facebook. Sa poti sa ascunzi mari bucati din conversatii si sa ramana ca un fel de rezumat, probabil cele mai importante raspunsuri, deoarece sunt foarte greu de citit si urmarit. Creatorul sa aiba anumite drepturi pe topicul creat. Un topic sa apara in mai multe categorii la alegere, de exemplu si in fun dar si la muzica daca tine de ambele. |
#10
Posted 28 December 2016 - 14:42

Mersi de idei.
Traiasca TDD. Deja sunt mai multe linii de cod de test, decat de functionalitate efectiva ![]() Edited by dani.user, 01 January 2017 - 20:28. |
|
#11
Posted 01 January 2017 - 20:23

Cum se vor stoca fisierele atasate (blob)?
Edited by 4evryng, 01 January 2017 - 20:25. |
#12
Posted 01 January 2017 - 20:42

Pentru atasamente ma gandeam la cloud, S3 sau Azure Blobs
Partea de atasamente as pastra-o ca un serviciu separat, comunicand cu cel principal doar pentru autorizarea fiecarui upload/download. Nefacand altceva decat sa ia dintr-o parte si sa trimita in alta, ar putea fi scrisa in orice, chiar folosind node.js. |
#13
Posted 02 January 2017 - 14:44

Un API (REST) ar fi bine-venit. De exemplu daca vreau sa-mi fac propriul client (open-source ca sa fim pe aceeasi idee
![]() Edited by 4evryng, 02 January 2017 - 14:47. |
#14
Posted 02 January 2017 - 14:49

Da, serverul va expune doar endpointuri REST. Tot ce tine de UI vreau sa deleg la client, ca doar avem nspre core-uri si in telefoane
![]() Autentificarea la fel va fi delegata via OAuth. Nu vreau sa reinventez roata si sa-mi bat capul cu "forgotten password" si alte asemenea. Edited by dani.user, 02 January 2017 - 14:50. |
#15
Posted 02 January 2017 - 18:53

Pe partea de autorizare apare o dilema: tot felul de optiuni configurabile, sau scripting via bucati de python?
Edited by dani.user, 29 January 2017 - 14:05. |
|
#16
Posted 08 January 2017 - 19:15

Boost signals simplifica implementarea observers, reducand si codul duplicat necesar pentru mocking.
Edited by dani.user, 08 January 2017 - 19:42. |
#17
Posted 25 January 2017 - 22:28

Cum numarul de linii de cod a depasit 10.000, imi permit sa ma cer parerea cu privire la cod.
Ar fi interesant cum il vad si cei ce scriu doar Java sau cei ce au/aveau multe prejudecati la adresa C++. |
#18
Posted 29 January 2017 - 13:39

Am implementat categorii ("arii") combinate cu tag-uri. Astfel un topic poate face parte din mai multe categorii in acelasi timp, pentru a fi mai usor de gasit.
Cel mai important: atunci cand se creaza un nou topic, nu se specifica categoria din care va face parte, ci se speficica tag-uri cat mai sugestive, sistemul avand grija apoi sa afiseze topicul unde-i e locul. Totalurile (cate topicuri/mesaje) din cadrul categoriilor sunt calculte in timp real, astfel incat prezinta mereu informatie actuala. A fost o provocare calcularea lor eficienta, dar cu grija la evitarea dublurilor. Quote
Running 236 test cases... *** No errors detected Erau mai sus comentarii la adresa reinventarii rotii in ce priveste serializarea la json. Cum categoriile formeaza o structura arborescenta si cu referinte ciclice in ce priveste tag-uri, solutia custom mi-a permis sa specific foarte usor ce parti sa includ in serializare la un moment dat (ex. daca afisez copii ariei de programare, nu afisez pentru fiecare ca parintele lor e programare). Cu biblioteci obisnuite de serializare ar fi fost foarte aiurea de definit asta fara populez structuri secundare. Edited by dani.user, 29 January 2017 - 13:59. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users