![]() |
Chirurgia cranio-cerebrală minim invazivă
Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne. Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale. www.neurohope.ro |
Ai mai incepe un proiect mediu/mare in PHP?
Last Updated: Jul 13 2018 10:22, Started by
dani.user
, Jun 13 2018 20:08
·
0

#1
Posted 13 June 2018 - 20:08

Plecand de la urmatorul citat
PHP e limbajul ideal pentru foarte multe cazuri** (mai multe de cat cred unii fanatici java de exemplu), in special in versiunea lui actuala (7.2). [...] ** am lucrat la proiecte HA, distribuite, de multe sute de mii de linii de cod, producatoare de multe milioane, scrise in PHP. Trebuie disciplina, nu sunt proiecte pentru Dorel wordpressistul, joomlaistul sau drupalistul, ci pentru programatori in primul rand care se intampla sa stie si PHP. Ma gandeam care ar fi motivele tehnice pentru care as alege PHP in cazul unui nou proiect, in detrimentul ecosistemelor java sau .net (core). Cu PHP recunosc ca nu-s la curent, dar, din amintiri, ce nu-mi placea la el:
Alternativele mentionate vin cu:
|
#2
Posted 13 June 2018 - 20:24

Quote Nu e strongly typed declare(strict_types=1);in fiecare fisier. IDE cu file header rezolva problema de tooling. Quote API destul de haotic (ordinea parametriilor de exemplu) Quote Incertitudine in ce priveste posibilitatea folosirii threadurilor Nu am spus ca alte limbaje nu ofera lucruri mai bune pe anumite fronturi, ci ca chiar si unele proiecte complexe nu au nevoie de acele lucruri. De exemplu multithreading: chiar ai nevoie sa pornesti acel thread (da, sau thread pool) in mijlocul cererii http? Nu cumva vrei sa returnezi un raspuns http cat mai rapid, si sa procesezi asincron? Cand trebuie sa decid daca PHP, Java sau Go, ma uit mai indeaproape la cerinte. Primul si cel mai mare motiv pentru care PHP iese din discutie din start e nevoia de programatori seriosi. Primul si cel mai mare motiv pentru care castiga, e costul mai redus al programatorilor. Am fost in ambele situatii: 1. Am mers cu Java, deoarece nu era loc de compromisuri la calitate (nu din cauza PHP ca limbaj, ci din cauza posibililor programatori), si eu nu mai puteam sta in proiect sa fac code review toata ziua la cod PHP nasol, si sa refuz pe banda rulanta patch-uri 2. Am mers cu PHP, deoarece costul programatorilor era un factor important, si am putut sa mai stau 6 luni in proiect sa mentorez, sa disciplinam echipa Edited by OriginalCopy, 13 June 2018 - 20:39. |
#3
Posted 13 June 2018 - 22:29

Cred ca singurul motiv pentru care cineva a ales vreodata PhP intr-un proiect mediu/mare este costul. Restul e cancan.
Sigur ca se pot face multe in PhP, dar de la un punct incolo nu mai poti face cu PhP ce poti face cu Java. Cine are bani si isi permite, pune raul in fata si merge cu cea mai sigura solutie (care nu e PhP). Pina la urma PhP e un limbaj urit si haotic, e cam pe acelasi nivel de tembelitate cu javascript. Adevarul este ca imensa majoritate a oamenilor NU sint disciplinati si nu te poti astepta la asa ceva de la ei. Ori decit sa stai dupa toti dobitocii si sa le spui de 100 de ori acelasi lucru, mai bine lucrezi in ceva care nu-i lasa pe dobitoci sa zburde cum au chef... Asta nu inseamna ca Java ar fi ceva magic, care face totul sa fie bine, daca proiectul e facut de dobiotoci oligofreni atunci o sa iasa fix un cacat. Probabil cel mai bun exemplu, care pina la urma ne afecteaza pe toti, este "sistemul informatic" de la CNAS... |
#4
Posted 13 June 2018 - 22:51

Nu am intalnit proiect in Java facut de altii care e la fel de curat ca proiectele conduse de mine facute in PHP.
Am intalnit un singur proiect in Java care se apropia destul de mult dpv arhitectural. Totusi e demn de mentionat, pentru ca era un proiect mai vechi, si totusi a reusit sa fie mentinut curat. Cu o curatenie generala de vreo 2-3 luni, ar fi depasit la calitate ceva echivalent facut in PHP. Java are pana la urma generics, o poveste pentru AOP, si altele. Doar experienta mea subiectiva. Exista destul cod java jalnic, chiar facut de Apache. Edited by OriginalCopy, 13 June 2018 - 22:55. |
#5
Posted 13 June 2018 - 23:40

Nu e vorba de curatenia codului dintr-un anumit proiect. Singurul motiv pentru care proiectele tale sint curate e ca le-ai facut probabil de la zero, cu simt de raspundere si nu ai preluat proiecte de juma de milion de linii de cod si 10 ani vechime prin care au trecut zeci de oameni carora nu le-a pasat de nimic sau poate au fost bine intentionati si atita au putut.
Intrebarea este daca proiectele alea in PhP se mai dezvolta si cresc pe parcursul a inca 10 ani si revii in proiect, o sa mai gasesti curatenie? Pun pariu ca nu ![]() Oricum curatenia codului nu e un indicator si pentru calitatea codului. Poti sa faci un cod curat care a fie absolut timpit in esenta lui. Apoi mai e si problema subiectiva a curateniei, cind poti spune ca codul este suficient de "curat"? Probabil ca raspunsul este "atunci cind nu mai ai bani sa bagi in curatenie", pentru ca pina la urma asta e o cauza majora a codului alandala. Ai o echipa mica de programatori si niste duzi care le pretind luna de pe cer in timpul cel mai scurt, cu cele mai mici costuri posibile, fara sa inteleaga ce rezultat va avea acest lucru sau poate pur si simplu fara sa existe cineva care sa le explice. Atunci ce poti sa faci, pai e simplu, tai din curatenia codului pentru ca oricum nu e vizibil pentru utilizator ![]() |
#7
Posted 14 June 2018 - 05:14

Discutam teoretic, ce te convinge sa alegi PHP cand incepi un proiect.
|
#8
Posted 14 June 2018 - 10:27

Din orice limbaj poți face o varză de cod care poate să meargă foarte repede sau foarte încet. Știu de backend scris fără funcții în PHP (fișiere de genul a 1500 de linii executate una după alta) și care dă rezultatul în 100 milisecunde, și lucruri făcute în framework-uri de PHP, carevasăzică bine structurate, după care stai secunde bune.
Lucrez cu API-uri bazate pe deGeava (SOAP, XML - all that crap) care trebuie verificate zilnic fiindcă... NullPointerException. E un software scris prost care crapă des. OriginalCopy vorbește bine în ultima vreme. Limbajul nu contează, programatorul da. Și din păcate nu sunt dezvoltatori software pe bune. Iar când vine unul prost toți suferă. Eu stau de 2 săptămâni doar să dreg munca a 4 oameni. Oameni care dacă le atrag atenția că scriu cod prost, mă iau peste picior că ce mă cred eu așa mare și tare. Păi ce ai făcut tu durează 4 secunde, ce am optimizat eu o secundă. Dar nimănui nu-i pasă de valori concrete. Trecând la subiectul „cod”, codul e pentru oameni. Trebuie să fie:
Singura chestie la PHP e că mereu timpul de execuție diferă. Un apel printr-un framework PHP durează fie 60 de ms, fie 110. Aceleași date. Dar trecând peste asta, da, poți face chestii destul de mari. Eu acum lucrez cu o bază de date de zeci de milioane de intrări combinate cu alte milioane de intrări, toate actualizate zilnic de minim 12 ori și cea mai mare problemă e ... MySQL. La partea de tabele temporare și crearea lor pe disk e dezastruos. Aș muta gruparea datelor în PHP. Niște teste mi-au arătat 30 de secunde grupare în MySQL față de 3 secunde în PHP (din care 2.8 secunde doar trimiterea datelor din baza de date). --- To be honest mă deranjează declararea tipului unei variabile. Știu la ce o voi folosi, poate scriu un if în plus să mă asigur că ce primesc e ce mă aștept să fie. Dacă e să fac o validare mai extinsă, îmi scriu o funcție/clasă o dată și nu mai am treabă. Edited by RedDev, 14 June 2018 - 10:46. |
#9
Posted 14 June 2018 - 11:08

Eu caracterizez asa o arhitectura curata:
toate aspectele ortogonale sunt intr-adevar separate. Exemple: business domain, web application, logging, caching, database. Fiecare dintre ele are un director unic unde se afla tot codul legat de acel aspect, iar dependintele dintre pachete sunt prin contracte, nu implementari concrete. Deasemenea, nu sunt leaky abstractions majore si nu ai lucruri precum "return 404" (semantica fiind de http response code) niciunde altundeva decat in componenta "web application". Iar caching, daca il dezactivezi, nu afecteaza functionalitatea, doar merge mai greu. E ok sa mai ai unele bube in arhitectura pe ici pe colo (technical debt), atata timp cat pastrezi lucrurile sub control, le ai documentate, si le imbunatatesti permanent, dar un cod care violeaza ce am descris mai sus nu este curat - nu e o chestiune pe care eu o dezbat, pur si simplu e asa. In afara de aceste principii de baza, multe lucruri pot fi dezbatute, sau sunt chestiuni de gust, sau de compromisuri. |
#10
Posted 14 June 2018 - 11:16

E he he, ăștia cu care lucrez încă au probleme în a pune toate constantele într-un singur fișier.
|
|
#11
Posted 14 June 2018 - 11:33

In afara de cazul in care eu am conceput proiectul de la inceput, nu am vazut astfel de arhitecturi curate, indiferent de limbaj. Cel pe care l-am amintit mai sus in Java se apropia destul de mult si ar fi putut fi curatit in 2-3 luni.
In rest, totul varza (relativ la ce am descris mai sus), dupa cum am spus, indiferent de limbaj. Deci da, la inceputul unui proiect mediu/mare, PHP e pe masa mea de candidati, alaturi de Java sau Go sau Python intr-o anumita masura. Probabil si C# ar fi pe masa mea, dar nu cunosc net core. |
#12
Posted 14 June 2018 - 12:27

Eu am vazut un singur proiect curat dpdv arhitectural. Fiecare clasa era la locul ei, denumirile claselor aveau o logica consistenta, ierahiile erau clare, baza de date era superba, 600+ tabele cu denumiri clare, care bateau cu denumirile din Java, fiecare field avea denumire clara, nu era nevoie de nici un comentariu.
Povestea este ca ajunsese dupa vreo citiva ani sa fie o varza si au angajat niste arhitecti care l-au refacut de la zero... Evident a ramas partea de implementare, care din pacate nu mai era atit de curata. De fapt codul central, inima produsului era atit de complicat incit nimeni nu prea mai stia ce-i acolo si n-a fost deloc schimbat in 4 ani... Teoretic poti sa sapi, dar efortul este atit de mare ca nu merita decit daca n-ai altceva de facut. Imaginati-va niste metode de citeva ecrane fiecare, recursive, care se cheama unele pe altele cu cite 6-7 parametri, unii dintre paramentrii fiind chestii de genul obiecte care contin tot felul de mapuri si alte liste ![]() Proiectul la care sint acuma buhahaha, dar am facut progrese enorme in 2 ani, l-am adus din stadiul de proiect escalat pina la high management si celule de crize la cel mai bun proiect din firma si am luat premiu, evident doar simbolic ![]() Evident ca acest lucru a fost posibil doar pentru ca si-au schimbat aia mentalitatea si au inteles ca nu poti avea ditamai magaoaia functionala si sa platesti in nasturi. Ce faci cind nu gasesti asemenea intelegere de la aia cu banii? Iti dai demisia? Ce garanteaza ca urmatorii sint altfel? Am auzit tot felul de povesti de groaza, chiar din firmele unde am lucrat, eu am avut norocul sa navighez prin ape line |
#13
Posted 16 June 2018 - 12:35

Discutam teoretic, ce te convinge sa alegi PHP cand incepi un proiect. E-Commerce/Fintech/Metrologie/Transporturi/Logistica/Tehnica Medicala/Servicii ? In ce domeniu ? Edited by WinstonMontana, 16 June 2018 - 12:37. |
#14
Posted 16 June 2018 - 12:38

dar nu vreau sa stiu daca pentru un proiect folosesti php, vreau sa stiu la ce proiecte folosesti php
Edited by MarianG, 16 June 2018 - 12:44. |
#15
Posted 17 June 2018 - 14:57

daca e vorba de Web API exista doar o singura alegere: asp.net core
Ce am facut eu in 3 zile in asp.net (web api cu token securizat - admin dashboard - user management cu roles, policies, groups - https enforcement - arhitectura separata(MVC - de care vorbea OC mai sus) care e creata din start, la fel middleware-uri pe care le implementezi imediat prin dependency injection) ar fi durat in alte platforme saptamani. Nu sunt programator PHP dar am amici programatori in Laravel si daca vrei API in Laravel trebuie sa folosesti un alt pachet numit Lumen care nu are token(imagineaza-ti asa ceva, api fara token ![]() \Numai inceputul, testingul pe PHP si fezabilitatea te costa zile. In .net le ai pe toate de-a gata, nu exista comparatie. Edited by Mohombi, 17 June 2018 - 15:00. |
|
#16
Posted 17 June 2018 - 15:19

Nu e singura cale, mai exista si Java EE.
Edited by neagu_laurentiu, 17 June 2018 - 15:19. |
#17
Posted 17 June 2018 - 15:57

Asta cu asp.net core vs php pare un argument bun pentru novici: cand nu stii de unde sa le apuci, si ai nevoie de cineva sa iti arate calea.
In practica, chiar daca aleg PHP, nu reinventez roata, am deja cod reutilizabil din alte proiecte. As putea numi partea asta chiar "framework". Oricum ai da-o, limbajul si framework-ul nu tin loc de competenta, indiferent de limbaj. Ca si daca vine asp.net si iti spune "bre, fa asa", dar tu esti incepator, tot anapoda o sa le faci. De exemplu aici https://github.com/g...Conduit/Domain/ -- auzi cica "domain", dar daca te uiti prin clasele alea bate vantul peste domeniul anemic. (gasirea acestui proiect a durat 30 secunde: o cautare pe google si click pe rezultatul care a parut cel mai relevant; nu stiu de ce, dar am asa o presimtire ca asa sunt multe proiecte asp.net core). Bazaconii d-astea nu ai vedea in domeniile mele, indiferent daca le scriu in PHP sau Java. Deci Mohombi, nu te mai obosi cu limbajele, ca daca un programator e slab, si proiectul asp/java/php tot slab va fi. Problema cu PHP e una singura: cei care scriu cod prost sunt mai vocali in ecosistem ca ceilalti, si isi impart prostia care se inmulteste. Vezi de exemplu PressWord si fanaticii lui care sunt dresati sa foloseasca global cu sarguinta. Asta deoarece marketingul face miracole. Edited by OriginalCopy, 17 June 2018 - 16:10. |
#18
Posted 17 June 2018 - 19:30

Ce am facut eu in 3 zile in asp.net (web api cu token securizat - admin dashboard - user management cu roles, policies, groups - https enforcement - arhitectura separata(MVC - de care vorbea OC mai sus) care e creata din start, la fel middleware-uri pe care le implementezi imediat prin dependency injection) ar fi durat in alte platforme saptamani. ![]() |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users