Nástroj sql-tap je proxy mezi aplikací a databází, které zachytává všechny SQL dotazy a zobrazuje je v terminálovém rozhraní. Zde lze téměř v reálném čase zkoumat dotazy, sledovat transakce a spouštět SQL příkaz EXPLAIN. Podporované databázové systémy jsou pouze PostgreSQL a MySQL. Zdrojový kód je dostupný na GitHubu, pod licencí MIT.
Byla vydána nová verze 9.2 textového editoru Vim (Vi IMproved). Přináší vylepšené doplňování, podporu schránky ve Waylandu, podporu XDG Base Directory (konfigurace v $HOME/.config/vim), vylepšené Vim9 skriptování nebo lepší zvýrazňování změn. Vim zůstává charityware. Nadále vybízí k podpoře dětí v Ugandě. Z důvodu úmrtí autora Vimu Brama Moolenaara a ukončení činnosti jím založené charitativní organizace ICCF Holland projekt Vim navázal spolupráci s charitativní organizaci Kuwasha.
Byl představen editor MonoSketch, webová aplikace pro tvorbu diagramů, technických nákresů, flowchartů a různých dalších vizualizací, to vše jenom z ASCII znaků. Všechny operace běží pouze v prohlížeči uživatele a neprobíhá tedy žádné nahrávání dat na server. Zdrojový kód aplikace (drtivá většina Kotlin, žádné C#) je dostupný na GitHubu pod licencí Apache 2.0.
Byla vydána nová verze 3.7.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.
Všem na AbcLinuxu vše nejlepší k Valentýnu aneb Dni lásky ke svobodnému softwaru (I love Free Software Day, Mastodon, 𝕏).
Eric Migicovsky představil Pebble Emulator, tj. emulátor hodinek Pebble (PebbleOS) běžící ve webovém prohlížeči. Za 6 hodin jej napsal Claude Code. Zdrojové kódy jsou k dispozici na GitHubu.
Byla vydána nová verze 3.41 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.11 souvisejícího programovacího jazyka Dart (Wikipedie).
Rusko zcela zablokovalo komunikační platformu WhatsApp, řekl včera mluvčí Kremlu Dmitrij Peskov. Aplikace, jejímž vlastníkem je americká společnost Meta Platforms a která má v Rusku na 100 milionů uživatelů, podle Peskova nedodržovala ruské zákony. Mluvčí zároveň lidem v Rusku doporučil, aby začali používat domácí aplikaci MAX. Kritici tvrdí, že tato aplikace ruské vládě umožňuje lidi sledovat, což úřady popírají.
Před 34 lety, ve čtvrtek 13. února 1992, se tehdejší Česká a Slovenská Federativní Republika oficiálně (a slavnostně) připojila k Internetu.
Agent umělé inteligence vytvořil 'útočný' článek o Scottu Shambaughovi, dobrovolném správci knihovny matplotlib, poté, co vývojář odmítl agentem navrženou změnu kódu (pull request). 'Uražený' agent autonomně sepsal a publikoval na svém blogu článek, který přisuzuje Shambaughovi smyšlené motivace, egoismus a strach z AI coby konkurence.
Dobry den,
jsem uplny novacek v navrhu aplikaci pomoci MVC vzoru a neumim si odpovedet na asi jednoduchou otazku. Na mnoha mistech se pise, ze se misto globalnich promenych (jak jsem byl doposud zvykly uzivat) je lepsi v tomto navrhu vyuzivat zapouzdreni method, ktere obsluhuji promene do __set a __get method.
Mohu se zeptat na Vas nazor zda je to dobry napad, a o nejake provnani metod getter, setter vs globalni promenne.
Dekuji za vas cas.
Dworkin
Ehm, globálne premenné? Nemysleli ste náhodou členské premenné? Môj názor je taký, že getter a setter je možné do triedy doplniť, keď sa na to nájde dôvod. Toto doplnenie sa dá urobiť z väčšej časti transparentne, takže si myslím, že dávať ho automaticky všade je zbytočný overkill.
podla mna je praveze dobre pouzivat gettery a settery v hojnej miere - umoznuje to "schovat" implementaciu za metody. to prinasa obrovske vyhody ked sa aplikacia dalej preraba, meni. uz neraz sa mi to vyplatilo. napriklad sa jedneho dna rozhodnete ze z clenskej prmennej typu array spravite objekt typu XY (co sa stava pomerne casto pri rafactoringu). nasledne budete musiet prepisat vsetky casti kodu, ktore pristupuju priamo k clenskej premennej. ak bola od zaciatku tato premenna nejak schovana (private, protected) a na pristup k nej sa vyuzivali vyhradne getter a setter tak mate vyhrane lebo iba zmenite obsah tychto dvoch metod.
takze idealny sposob je podla mna mat vsetky clenske premenne neverejne (private, protected) a pristupovat k nim jedine cez metody. tento sposob sice natahuje cas pri vyvoji, ale oextremne usetri cas a namahu pri zmenach, opravach. samozrejme vsetko s rozumom, vyskytuju sa situacie ked to neni moc vhodne
Dekuji obema za kometare. Protoze jsem metody getter setter jeste nikdy nevyuzival, pusobi na me dosti tajemne, ale to asi jen pro to, ze jsou pro me nove. Mohu se jeste zeptat na lajckou otazku (mozna uplne mimo misu). Da se nejak vycist jake vsechny promene jsou vytvoreny? Tedy jako kdyz vypisi print_r($_SESSION) tak vidim pohodlne jake promene mam aktualne nastaveny. Jde to nejak i touto metodou?
neviem ako sa daju zistit premenne v aktualnom kontexte (napr. vo funkci, metode), ale globalne premenne by mali byt (od PHP5) v poli $GLOBALS, takze na vypis by malo stacit print_r($GLOBALS).
inak podla toho co pises tusim ze asi by sa ti hodil nejaky debugger,ze? nastroj kde si pocas behu skriptu vypises co vsetko je v danom poli, objekte, premennej, ci je enjake premenna inicializovana v danom momente..
skus sa kuknut an xdebug - spolu s nejakym klientom - napr. emacs, vim, eclipsePDT dosiahnes nielen toto ;o) ju a v pripade nejasnosti (instalacia atd) sa nevahaj spytat :)
gettery a settery nespochybňujem, ale v PHP sa to robí tak, že sa vytvorí metóda s názvom __get() kde ako parameter ide string s názvom premennej a metóda s názvom __set() kde ide názov premennej a hodnota. Tieto metódy sú takzvané "magic", takže sa automaticky použijú na prístup k členom s viditeľnosťou private. Používanie get a set je z toho pohľadu transparentné, a netreba si zvlášť vytvárať getter a setter pre každú premennú. Takže môžem mať členy public a keď zistím, že na niektorý z nich mi treba getter alebo setter, tak z nich spravím private a ošéfujem to v rámci __get() a __set(). Tí čo triedu používajú si žiaden rozdiel nevšimnú, a 3/4 triedy mi nezaberajú funkcie typu GetBlaa() { return $this->blaa; } a SetBlaa($blaa) { $this->blaa=$blaa; }
Getry a setry jsou jenom prvni krok k programovani snadno upravitelnych modularnich aplikaci. Samotne bez ostatnich prvku objektoveho navrhu nejsou k nicemu. Implementace MVC v PHP je dle meho nazoru trosku problematicka a mene zrejma nez napr v Jave - Nikoliv vsak nemozna.
Takze od pouzivani settru neodrazuji, ale snazte se pochopit proc se pouzivaji, a co prinasi, stejne tak s MVC. Obe technologie zeslozituji(nebo cini delsim) kod aplikace, ale nabizeji vetsi flexibilitu a znovupouzitelnost kodu.
mno lepší je mít kód bez obojího, když máš v nějaký třídě data, měl bys veškerou práci s nima mít právě v tý třídě. OOP bylo vymyšlený právě proto. doporučuju četbu Holub on patterns - stať nazvaná "why are getters and setters evil".
Tiskni
Sdílej: