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 |
Cand prea multa modularizare e prea multa?
#1
Posted 25 August 2022 - 10:28
De ce ai avea o metoda cu doi parametri, care tot ce face este sa returneze unul din parametri?
E "future proof"? Laravel 8.77.1, Illuminate\Database\Query\Processors\Procesor Doua din trei metode doar returneaza un parametru. <?php namespace Illuminate\Database\Query\Processors; use Illuminate\Database\Query\Builder; class Processor { /** * Process the results of a "select" query. * * @param \Illuminate\Database\Query\Builder $query * @param array $results * @return array */ public function processSelect(Builder $query, $results) { return $results; } /** * Process an "insert get ID" query. * * @param \Illuminate\Database\Query\Builder $query * @param string $sql * @param array $values * @param string|null $sequence * @return int */ public function processInsertGetId(Builder $query, $sql, $values, $sequence = null) { $query->getConnection()->insert($sql, $values); $id = $query->getConnection()->getPdo()->lastInsertId($sequence); return is_numeric($id) ? (int) $id : $id; } /** * Process the results of a column listing query. * * @param array $results * @return array */ public function processColumnListing($results) { return $results; } } |
#4
Posted 25 August 2022 - 14:20
#5
Posted 25 August 2022 - 23:04
Acela este doar un schelet, "umpli" metodele cu cod, sintaxa proprie Query apoi poti sa le apelezi din Controller, desi
ordinea era sa vezi despre Eloquent care face acelasi lucru mai lizibil, adaptat la orice fel de interogari. Laravel este un framework complex, are diverse destinatii, desigur ca ai multe semne de intrebare.Ar fi bine sa cunosti structura unui proiect Laravel si cam ce face el : https://laravel.com/docs/8.x/structure Ca sa intelegi ce face codul respectiv incepi "object-relational mapper (ORM)", in cazul nostru Eloquent apoi despre Query Builder, sunt doua metode distincte de interactionare cu DB. Sintaxa folosita pentru Query de exemplu: https://laravel.com/...-results-lazily strict ca utlilizare https://laravel.com/...Processors.html Edited by iulian_1976, 25 August 2022 - 23:17. |
#6
Posted 26 August 2022 - 06:25
Pai de acolo vin ... Nu doar ca stiu ce este un ORM, am vazut si cum face de mi s-a acrit. Nu vorbesc din documentatii sau articole de pe net.
Am pornit din Controller cu o interogare simpla, sa imi dea numele unde id (din baza de date) este 1. Am trecut prin Eloquent\Model (btw, acesta foloseste Query\Builder) si asa am ajuns la acest Processor. E overingineering. Nu degeaba Laravel e cel mai lent framework PHP si nu degeaba Rasmus l-a criticat. Doar ca sa determine numele tabelului din baza de date trece printr-un carnat de obiecte si metode cand putea sa faca asta cu o functie simpla si sa salveze rezultatul undeva. Noo, daca are nevoie iar de numele tabelului, o ia de la capat. Nu chiar complet ca are un cache cu pluralul, dar si pluralul l-a determinat cu n metode si a creat zeci de obiecte Generator (in Doctrine). Cand credeam ca in sfarsit s-a terminat si revin in Controller cu rezultatul (aveam rezultatul sub forma de array de obiecte StdClass) ii da hydrate () si boom, o ia de la capat si mai face inca un obiect instanceof Illuminate\Database\Eloquent\Model doar pentru interogarea asta si am impresia ca il face si pe al treilea, nu am ajuns acolo insa am vazut ca exista, sunt trei. Laravel e plin de layers, layers si iar layers dar cand angajatorul ti-l cere nu ai incotro, decat sa faci freelancing si cum te taie capul. LE: ca tot am adus vorba, ce rol are 'hidratarea' asta? Edited by wolfenste, 26 August 2022 - 06:37. |
#7
Posted 28 August 2022 - 03:29
Defineste ce nu ai reusit din Laravel, pune codul sursa facut de tine.
Uite un exemplu bazic la ce ar folosi o functie de genul pusa de tine, Builder $query este deja injectata nu trebuie sa faci nimic, cam cum ai extrage numele tabelului. Laravel pare incarcat pentru ca este pregatit pentru diferite sarcini, este imposibil sa stii tot ce este acolo are mult design pattern. /** * Process the results of a "select" query. * * @param \Illuminate\Database\Query\Builder $query * @param array $results * @return array */ public function processSelect(Builder $query, $tableName) { $tableName = $query->getModel()->getTable(); return $tableName; } sau static class yourModel extends Eloquent { public static $table = "differentTable"; function someFunction() { return yourModel::$table; } } or class yourModel extends Eloquent { public function someFunction() { return $this->table(); } }Hidratarea cred ca te referi la o functie gen hydrate(), daca print-un constructor afectezi o proprietate anume tuturor obiectelor create, cu o metoda hydrate poti sa afectezi sau schimbi proprietatea unui obiect anume. Laravel nu o sa-l invei pe repede inainte, ai nevoie de timp in acelasi timp nu ai nevoie de tot ce este in el. Edited by iulian_1976, 28 August 2022 - 03:31. |
#8
Posted 28 August 2022 - 08:59
Daca tineti la viitorul profesional si la viitorul planetei renuntati la mizeriile scrise in PHP
https://hackaday.com...mming-language/ Pretul energiei va fi tot mai mare asa ca nu vom ajunge bine cu bitcoin si site-uri php |
#9
Posted 28 August 2022 - 10:15
iulian_1976, on 28 august 2022 - 03:29, said:
Defineste ce nu ai reusit din Laravel, pune codul sursa facut de tine. Uite un exemplu bazic la ce ar folosi o functie de genul pusa de tine, Builder $query este deja injectata nu trebuie sa faci nimic, cam cum ai extrage numele tabelului. Laravel pare incarcat pentru ca este pregatit pentru diferite sarcini, este imposibil sa stii tot ce este acolo are mult design pattern. /** * Process the results of a "select" query. * * @param \Illuminate\Database\Query\Builder $query * @param array $results * @return array */ public function processSelect(Builder $query, $tableName) { $tableName = $query->getModel()->getTable(); return $tableName; } getTable () - helper class_basename () - Str pluralStudly () - Str plural () - Pluralizer plural () - Pluralizer uncountable () - Pluralizer inflector () - Inflector pluralize () - CacheWordInflector inflect () - Pluralizer matchCase () - Str snake () iulian_1976, on 28 august 2022 - 03:29, said:
sau static class yourModel extends Eloquent { public static $table = "differentTable"; function someFunction() { return yourModel::$table; } } or class yourModel extends Eloquent { public function someFunction() { return $this->table(); } } Nu exista o clasa Eloquent in tot laravelu'. Nu imi trebuie mie numele tabelului, de aia exista Laravel, face el toate astea in fundal eu doar scriu ceva minimal in controller. Ideea era ca mi se pare stufos codul sursa Laravel, o avea motivele lui sa fie asa. Eu am luat pas cu pas pe unde ma duce fluxul de executie, nu ma asteptam sa fie atat de lung, uneori, destul de des, pare ca se complica pentru nimic. iulian_1976, on 28 august 2022 - 03:29, said:
Hidratarea cred ca te referi la o functie gen hydrate(), daca print-un constructor afectezi o proprietate anume tuturor obiectelor create, cu o metoda hydrate poti sa afectezi sau schimbi proprietatea unui obiect anume. Laravel nu o sa-l invei pe repede inainte, ai nevoie de timp in acelasi timp nu ai nevoie de tot ce este in el. Ma refeream la hidratare in general in programming dar si in cazul special Laravel. In cazul lui Laravel, sa zicem ca ai intr-o metoda din Controller: $data = SomeInfo::select ('name')->where ('id', 1)->get (); where () returneaza un obiect Illuminate\Database\Eloquent\Builder. Acesta apeleaza metoda sa get (). De aici incolo, este facuta toata treaba de conectare la baza de date cu PDO. get () apeleaza getModels (): /** * Get the hydrated models without eager loading. * * @param array|string $columns * @return \Illuminate\Database\Eloquent\Model[]|static[] */ public function getModels($columns = ['*']) { return $this->model->hydrate( $this->query->get($columns)->all() )->all(); } all () (primul) returneaza un array de obiecte stdClass cu rezultatul interogarii. Ai rezultatul, gata!! Dar nu se opreste aici, acest rezultat este plasat metodei hydrate () (btw, nu exista metoda, o ia pe calea magica __call ()) iar dupa acest hydrate () sunt facute alte obiecte Eloquent\Model, Query\Builder, Eloquent\Builder samd, cam toata functionalitatea de tip Model. Pare ca reface acelasi lucru cu alte obiecte de acelasi fel dar proaspete. Adica 'hidrateaza'. De asta intrebai ce rost are hidratarea asta. radu103, on 28 august 2022 - 08:59, said:
Daca tineti la viitorul profesional si la viitorul planetei renuntati la mizeriile scrise in PHP https://hackaday.com...mming-language/ Pretul energiei va fi tot mai mare asa ca nu vom ajunge bine cu bitcoin si site-uri php Vad deseori astfel de discutii, ca limbajul ala e mort samd. Mie mi se rupe. Sunt prea mic sa imi fac griji din asta. Ce limbaj moare peste 5 ani sau 20 e ultma mea grija. La fel si cu salvatu' planetei renuntand la PHP. Daca ma intrebi pe mine sunt pentru performanta (dupa cum vezi mai sus ma irita chestiile stufoase pentru nimic) dar iar spun, sunt prea mic in schema mare a lucrurilor. Daca PHP'u sau Laravelu' imi pun ciorba pe masa e ok. |
#10
Posted 28 August 2022 - 10:44
Siu si C++ dar cine face site-uri in C++? Directia ar trebui sa vina de sus nu de la cel mai neinsemnat utilizator de PHP.
Fa tu un framework web in C care rupe la viteza de dezvoltare si vor trece baietii la C. |
|
#11
Posted 28 August 2022 - 11:12
Cele mai dese probleme de performanta intalnite de mine in cazul diverselor aplicatii web au avut drept cauza o interactiune ineficienta cu baza de date (interogari prea multe si/sau proaste) nu limbajul in sine.
Exemplu detaliat: https://forum.softpe...online-popular/ ORMurile te fac sa uiti ca interactionezi cu un serviciu extern si nu cu niste structuri de date existente deja in memorie. Edited by dani.user, 28 August 2022 - 11:13. |
#12
Posted 28 August 2022 - 12:03
Quote
Siu si C++ dar cine face site-uri in C++? |
#13
Posted 28 August 2022 - 13:03
Pana la a scrie siteul in C++ se gasesc destule optimizari de facut astfel incat performanta sistemului sa nu fie o problema.
|
#14
Posted 28 August 2022 - 13:17
parabellum, on 28 august 2022 - 12:03, said:
O sa fii surprins, dar chiar se 'fac' siteuri in c++. Nu sunt surprins, stiu ca se fac sau mai bine zis ca se pot face. Mie arata-mi ca abunda ofertele de angajare cu facut site-uri in C++ dani.user, on 28 august 2022 - 13:03, said:
Pana la a scrie siteul in C++ se gasesc destule optimizari de facut astfel incat performanta sistemului sa nu fie o problema. Facebook este (sau era?) scris in PHP, partea critica e in C. radu103, on 28 august 2022 - 08:59, said:
Daca tineti la viitorul profesional si la viitorul planetei renuntati la mizeriile scrise in PHP https://hackaday.com...mming-language/ Din ce vad eu acolo Python sta mai prost ca PHP dar pana acum nu mi-a zis nimeni ca trebuie sa scapam de el. |
#15
Posted 28 August 2022 - 13:27
wolfenste, on 28 august 2022 - 10:44, said:
Siu si C++ dar cine face site-uri in C++? Directia ar trebui sa vina de sus nu de la cel mai neinsemnat utilizator de PHP. Fa tu un framework web in C care rupe la viteza de dezvoltare si vor trece baietii la C. wolfenste, on 28 august 2022 - 10:15, said:
Vad deseori astfel de discutii, ca limbajul ala e mort samd. Mie mi se rupe. Sunt prea mic sa imi fac griji din asta. Ce limbaj moare peste 5 ani sau 20 e ultma mea grija. La fel si cu salvatu' planetei renuntand la PHP. Daca ma intrebi pe mine sunt pentru performanta (dupa cum vezi mai sus ma irita chestiile stufoase pentru nimic) dar iar spun, sunt prea mic in schema mare a lucrurilor. Daca PHP'u sau Laravelu' imi pun ciorba pe masa e ok. E cel mai prost ptr incepatori ptr ca raman blocati in scripting si la un nivel de castig foarte limitat wolfenste, on 28 august 2022 - 13:17, said:
Din ce vad eu acolo Python sta mai prost ca PHP dar pana acum nu mi-a zis nimeni ca trebuie sa scapam de el. |
|
#16
Posted 28 August 2022 - 14:37
Intrebarea ta a fost:
wolfenste, on 25 august 2022 - 10:28, said:
De ce ai avea o metoda cu doi parametri, care tot ce face este sa returneze unul din parametri? E "future proof"? Laravel 8.77.1, Illuminate\Database\Query\Processors\Procesor Doua din trei metode doar returneaza un parametru. <?php namespace Illuminate\Database\Query\Processors; use Illuminate\Database\Query\Builder; class Processor { /** * Process the results of a "select" query. * * @param \Illuminate\Database\Query\Builder $query * @param string $results * @return string */ public function processSelect(Builder $query, $results) { return $results; } Iar acum wolfenste, on 28 august 2022 - 13:17, said:
Nu sunt surprins, stiu ca se fac sau mai bine zis ca se pot face. Mie arata-mi ca abunda ofertele de angajare cu facut site-uri in C++ Facebook este (sau era?) scris in PHP, partea critica e in C. Din ce vad eu acolo Python sta mai prost ca PHP dar pana acum nu mi-a zis nimeni ca trebuie sa scapam de el. Iar bazele Php in ce au fost scrise? radu103, on 28 august 2022 - 13:27, said:
De vreo cativa multi ani web-ul e spart in frontend si backend frameworks iar php-ul e cel mai prost platit si ineficient din toate punctele de vedere Nu zic doar ca e mort, zic ca este plin de el si din cauza asta se consuma de 20 ori mai multe resurse decat ar trebui. Tu promovezi C++ atat inteleg din posturile tale. Atunci hai sa facem situri in C++, incolonarea Radu a spus ca php este mort wolfenste, on 28 august 2022 - 10:15, said:
Clasa aia Processor are cu totul alta destinatie nu ar trebui sa o poluezi asa. Metoda processSelect () trebuie sa returneze array nu string nu numele tabelului. Daca la inceput ai pus o intrebare de incepator, dupa doua zile acum esti guru in Laravel, schimba in anotation sa returneze ce doresti tu array, string etc Ti-am dat 3 metode prin care sa obtii numele tablei insa topicul tau are alt scop. Vin-o cu codul sursa sa vedem ce stii si ce nu stii, restul sunt vorbe. Edited by iulian_1976, 28 August 2022 - 14:49. |
#17
Posted 28 August 2022 - 16:35
radu103, on 28 august 2022 - 08:59, said:
Daca tineti la viitorul profesional si la viitorul planetei renuntati la mizeriile scrise in PHP https://hackaday.com...mming-language/ Pretul energiei va fi tot mai mare asa ca nu vom ajunge bine cu bitcoin si site-uri php C-ul te pune la muncă și nu te tine de mână. Dar nu despre asta ar trebui sa fie topicul. |
#18
Posted 28 August 2022 - 18:01
MarianG, on 28 august 2022 - 16:35, said:
C-ul te pune la muncă și nu te tine de mână. Dar nu despre asta ar trebui sa fie topicul. Se accepta o gherla de genul x2-x3 (Java, C#) dar peste devine bataie de joc Daca vrem sa fim responsabili cu asta incepem si dupa aia aruncam la gunoi si Laravel pentru gherlele din dotare Edited by radu103, 28 August 2022 - 18:02. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users