Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Kit

Stran: 1 ... 32 33 [34] 35 36 ... 47
496
Vývoj / Re:C++ no default constructor exists for class
« kdy: 22. 09. 2019, 15:00:29 »
Ta třída má jednu zásadní vadu: Nic neumí. Vyvaruj se tvorby takových anemických tříd, dej do nich alespoň jednu metodu.

Kromě toho, že to je ukázkový příklad, tak třída  (struktura) v C++ nemusí nic "umět". C++ není OO jazyk (ala C#/Java), klidně se dá pracovat se strukturama a volnýma funkcema ... nakonec popírá to OOP?

V tom případě může rovnou použít struct nebo třídu s veřejnými atributy (resp. read-only) a vyjde to nastejno - spíš lépe.

Ale potom nebude immutable. Snažil som sa naemulovať immutable štruktúru ktorá sa dá len čítať. Okrem toho ja ako funkcionálny programátor nemám nič proti anemickým objektom.

Immutable je něco jiného než read-only?

497
Vývoj / Re:C++ no default constructor exists for class
« kdy: 22. 09. 2019, 14:22:37 »
Ta třída má jednu zásadní vadu: Nic neumí. Vyvaruj se tvorby takových anemických tříd, dej do nich alespoň jednu metodu.

Kromě toho, že to je ukázkový příklad, tak třída  (struktura) v C++ nemusí nic "umět". C++ není OO jazyk (ala C#/Java), klidně se dá pracovat se strukturama a volnýma funkcema ... nakonec popírá to OOP?

V tom případě může rovnou použít struct nebo třídu s veřejnými atributy (resp. read-only) a vyjde to nastejno - spíš lépe.

498
Vývoj / Re:Java - jak vymazat z ArrayListu množinu položek
« kdy: 21. 09. 2019, 23:27:14 »
Popravdě řečeno, nenapadá mě případ užití toho, co požaduješ. Evidentně si pleteš pojmy pole a seznam, z toho vzniká tohle zmatení.

ArrayList implementuje rozhraní List. Má rozhraní List metodu pro odstranění prvku podle indexu? Nemá, tak ji laskavě nepoužívej.

Abych trochu napověděl: Můžeš použít třeba metodu List.removeAll(), ta by to měla zvládnout.

499
Vývoj / Re:C++ no default constructor exists for class
« kdy: 21. 09. 2019, 20:08:28 »
A) to co je vidět v Linuxu = všechna písmenka malá a mezi slovy podtržítka
B) "maďarská notace", dost rozšířená v Microsoftím světě
C) občas je k vidění varianta "maximálně úsporná" = jména symbolů jsou 2-4 znaky dlouhé zkratky :-) Viz třeba zdrojáky Perlu.

Ad A) snake notace je OK.
Ad B) maďarské notace se zbavuje i Microsoft.
Ad C) tomu je třeba vyhnout se velkým obloukem.

Obecně by mělo platit, že "globálnější" proměnná by měla mít popisnější název než proměnná lokální. Řídicí proměnné cyklu mohou být klidně i jednoznakové i, j, k.

500
Vývoj / Re:C++ no default constructor exists for class
« kdy: 21. 09. 2019, 18:25:06 »
Ta třída má jednu zásadní vadu: Nic neumí. Vyvaruj se tvorby takových anemických tříd, dej do nich alespoň jednu metodu.

501
Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Ten "read" nepomohl?

To pauznutí na konci skriptu ve Windows je podivný zvyk, který se v linuxových systémech nepoužívá. Není potřebný a byl by i kontraproduktivní.

Ten podivný zvyk vycházï z toho, že spuštění BATCH souboru typicky z Průzkumníka hned po jeho ukončení zavře okno s příkazovou řádkou, takže se nedovíte jak to dopadlo a co to vypsalo.

Mělo by stačit vytvořit zástupce, ve kterém se to okno podrží otevřené. Jenže to by bylo moc práce navíc...

502
Potřebuji pouze zobrazit výstup informací z aplikace, to se ve Windows dělá nejčastěji že se dá na konec skriptu pause v Linuxu něco takového jednoduchého tedy neexistuje?

Ten "read" nepomohl?

To pauznutí na konci skriptu ve Windows je podivný zvyk, který se v linuxových systémech nepoužívá. Není potřebný a byl by i kontraproduktivní.

503
Server / Re:Předsunutý HTML kód
« kdy: 21. 09. 2019, 12:22:32 »
Pro output buffering jsem zatím nenašel praktické využití s výjimkou případu, že nějaká užitečná funkce či knihovna třetí strany cpe nějaká data přímo na výstup.

504
/dev/null / Re:Auta na baterky - má to budoucnost?
« kdy: 18. 09. 2019, 15:50:33 »
On ten vyfuk nekouri primo z auta, ale v Prunerove. Tos takovy vtip.

Spalovaci motor na vodik je v ohledu resenim, dnes uz je to bezpecne, ale zatim neni kde tankovat. A i vyroba vodiku zpotrebuje energii, zase se to musi nejak technicky vymyslet.

V Prunéřově něco kouří? Tak jim hned zavolej, ať si to opraví.

Výroba vodíku je energeticky velmi náročná, spotřebuje se přitom víc energie než nabitím baterie. Náročné je i skladování vodíku. Osobní auta na vodík mají mizerný dojezd kvůli velmi nízké hustotě.

Baterky jsou recyklovatelné a je s nimi mnohem méně starostí, než s vodíkem.

505
A proto jakékoliv ručně psané testy jsou z principu špatně. (Tím nechci říct, že by se neměli psát.) Bylo by mnohem lepší, když budou chyby hledat ti nejzkušenější vývojáři a zadrátuje se to do stroje.

Jak bys ty testy chtěl psát jinak než ručně? Jistě, boilerplates na testy si necháš vygenerovat, ale asserty musíš dopsat ručně podle zadání úlohy. Nic jiného v tu chvíli nemáš.

506
Server / Re:Testovací servery v cloudu
« kdy: 17. 09. 2019, 12:07:00 »
Používám Forpsi, kde ceny začínají na 0,40 Kč/h. Natáhneš image, spustíš, vypneš.

Ovšem cena základního VPS 70 Kč/měsíc je podle mne tak nízká, že se vyplatí ho mít spuštěný trvale.

507
Taky mě to zarazilo. Nevím, jak se může osvědčit kód, co se skoro nedostane k lizu. Taky je možné, že zatím jenom nevybouchl. ;) Podle mých zkušeností je kód, do kterého se skoro nic nedostane, časovaná bomba plná bugů, které nikoho ani nenapadlo testovat.

Bez obav, testy se do něj v pohodě dostanou.

508
Mně se ten všežravý catch blok osvědčil. Nejspíš proto, že se do něj skoro nic nedostane,...
Ta věta nedává smysl. Tak osvědčil se ti ten všežravý catch, nebo ho nevyužíváš? Nemůžeš oboje najednou.

Dělám vše pro to, aby se mi v něm nic neobjevilo, ale je tam. Mohu oboje najednou. Nemohu však za to, že ti to nedává smysl.

509
Nesmí se také zapomínat na zotavení z výjimek. Když ho uděláš v main loopu aplikace, tak ti nespadne, ale přejde do nějakého výchozího stavu. Je to taková poslední záchrana. Samozřejmě musíš vše řádně zalogovat, což obvykle není problém.
No tak nějaký všežravý catch blok v main loopu je zrovna dost pochybný obrat. Ok, chytnu v něm nějakou nečekanou výjimku. Je pravděpodobně nečekaná, protože očekávanou bych chytl nějakým cíleným catchem. Nevím o ní nic, takže ji můžu akorát tak zalogovat. Co vím o stavu programu? Akorát to, že se mi nečekaně přerušil nějaký kus kódu před dokončením. Co vím o invariantech? Ta výjimka byla nečekaná, takže klidně mohla vyletět v momentě, kdy byly invarianty rozbité.
Jediný způsob, jak se v takovém případě dostat do známého stavu, je zahodit úplně všechno a začít odznova. To už můžu místo toho použít nějaký výrazně jednodušší watchdog proces.

Mně se ten všežravý catch blok osvědčil. Nejspíš proto, že se do něj skoro nic nedostane, neboť používám vhodnou granularitu výjimek v jednotlivých vrstvách, kde se s tím ještě dá něco rozumného dělat, i kdyby to mělo být jen kaskádování, které mi je hezky vytrasuje.

510
Výjimečné chyby ošetříš o pár pater výš a vhledem k jednotnému rozhraní v tom nevidím žádný problém. Granularitu lze kdykoli zjemnit odchycením výjimky a uložením do stacku nové výjimky na vyšším levelu. Tím si zdroj výjimky krásně vytrasuješ.
To "ošetříš" znamená kód, který se díky tomu "výjímečné" moc často nespouští. Je opravdu dobře otestovaný? Netestují se náhodou jen běžné chyby?
Citace

Když upravíš jen kód nebo ošetření výjimek, tak tě na to testy hned upozorní. Toho bych se nebál.
Teoreticky jo. Ale v praxi jsou ty testy kapku míň spolehlivé. Testuje se to, co někoho napadne, nebo co už se jednou vymamlasilo. Na nečekané chyby testy nejsou.

Ze zadání píši testy, podle testů pak produkční kód. Do testů mockuji i chyby filesystému nebo třeba ztrátu spojení s databází. Je snad v něčem problém?

Nesmí se také zapomínat na zotavení z výjimek. Když ho uděláš v main loopu aplikace, tak ti nespadne, ale přejde do nějakého výchozího stavu. Je to taková poslední záchrana. Samozřejmě musíš vše řádně zalogovat, což obvykle není problém.

Stran: 1 ... 32 33 [34] 35 36 ... 47