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 - BoneFlute

Stran: 1 ... 101 102 [103] 104 105 ... 133
1531
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 15. 12. 2017, 01:51:31 »
Můj názor:

Dynamické jazyky se od statických liší tím, že mohu (snadno) za běhu měnit struktury. Příklad:

Kód: [Vybrat]
class X:
  def config(self):
    def foo():
       print("Great")
    self.foo = foo

def sayGreat(fooable):
  fooable.foo

x = X()

# špatně
sayGreat(x) # výjimka

# správně
x.config()
sayGreat(x)

Z čehož jsem si vyvodil tyto závěry:

1. Výše uvedené chování je v jiných jazycích (C#, Java, PHP) považováno za antipattern (přestože se hojně používá - viz oblíbené flamewar settery versus konstruktor). V jazycích jako Haskell to dokonce skoro ani nejde (schválně).

2. To, na co mají některé jazyky typy, na to má Python testy. Když se v Javě rozhodnete měnit nějakou věc, musíte často změnit spoustu typů. Když v Pythonu chcete změnit nějakou věc, musíte s ní i zohlednit testy.

3. V Javě, nebo v lepších jazycích postavených na typech (Haskell), když se konečně prokoušete všemi těmi změnami, a kompiler vám konečně úspěšně přeloží projekt, máte z velké části vyhráno, a apka často běží jak má. V dynamických jazycích ušetříte spousty času tím, že to velice snadno napíšete, pak to spustíte, a začnou vám padat výjimky víše uvedeného druhu. Což podle typu aplikace, kde se musíte složitě proklikat ke konkrétnímu stavu může být docela dost bolestivé.
Když si vypůjčím přirovnání od @Ivan Nového, tak je mi sympatičtější, když mě compiler vynadá, že jsem si dal boty na ruce už doma, než že to zjistím až před barákem, když se pokouším odemknout dveře od auta.

4. V ničem jiném zásadnějším se dynamické od statický jazyků neliší. Jen jednu věc řeší jinak.

Zjistil jsem, že okenní aplikace, kde musím udělat víc jak pět kroků, abych dosáhl stavu a otestoval to je na Python příliš velká aplikace. A psát unittesty na to, zda se atribut jmenuje `vals`, `values`, `items` abych si ověřil, že jsem to napsal dobře, mě nebaví.

Zjistil jsem, že pro víše uvedenou dynamičnost nemám využití. Naopak oceňuji, když mi compiler najde alespoň 50% chyb dříve, než to začnu testovat - nebo nedejbože to jde do produkce.

1532
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 15. 12. 2017, 00:04:46 »
Pořád nechápu, jak se vyhneš otázkám na typ objektů,...
Jakejm otázkám? Jako instanceof? To potřebuju jednou za uherák, a je to proto, že jsem to zprasil...


Je potřeba vyjít ze samotné podstaty dynamického jazyka. A tou podstatou je, že na rozdíl od statického jazyka je datový typ přiřazen hodnotě, nikoliv proměnné.

To není pravda.

1533
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 12. 12. 2017, 21:19:33 »
Myslím že mi to za ty roky dalo hodně poznání a zkušeností, abych si mohl dovolit říct, že povinné odsazování Pythonu nepředstavuje pro programátora žádný reálný problém.

Odsazování asi ne, horší čitelnost z něj* vycházející asi ano (aspoň tak to předpokládám autor myslel ;) ). Python není špatný, ale na větší projekt bych se mu spíš vyhnul, klidně i ve prospěch Perlu.

*pouze odsazování - bez závorek

Můj názor:
- Odsazování (bez závorek) rozhodně zvyšuje čitelnost. To je jedna z věcí, která se mi na něm opravdu moc líbí.
- Python je debilní, a na větší projekty bych se mu vyhnul, protože nemá typy a má GIL.

1534
a to si jako můžu chodit po webu a tak jednoduše si stahovat odkudkoliv - jakékoliv zdrojové soubory?
Psal jsem, že o žádné soubory se nejedná.
Zdrojové soubory si nikdo stahovat nemůže.
Obsah stránek ano, ten si může kdokoliv bez omezení stáhnout (nedáš-li tomu nějaké auth omezení).

1535
Vývoj / Re:Oprava JS kódu
« kdy: 12. 12. 2017, 16:55:09 »
Kód: [Vybrat]
<a href="a.html">A</a>
<a href="b.html">B</a>
<a href="c.html">C</a>

<div id="result"></div>

<script>
    $("a").on("click", function() {
        $("#result").load(this.href);
    });
</script>

Když máš víc odkazů, tak je musíš nějak rozlišit. Když je budeš rozlišovat indexem, tak se nediv, že se ti to bude rozbíjet po přidání odkazu na začátek.

Zkus si s tím hrát sám. `console.log()` je tvůj kamarád.

1536
Bez spolupráce serveru to nejde.

Problém je v tom, že ty si nenačítáš "soubor", ale jen "stránku". Že je to soubor, je jen tvoje zjednodušení.

Když načteš stránku (metoda GET), tak (opět zjednodušení) je to jen pro čtení. Aby si to změnil, musíš serveru říct, že má něco změnit (metoda POST), takže například na tu adresu stránky poslat formulářem, nebo v tvém případě jQuery.ajax-em data, a server ti tuto změnu musí provést.

Opravdu platí, že jQuery ti na serveru nic neudělá.

1537
Vývoj / Re:Jak uložit bash funkci do souboru script.c
« kdy: 12. 12. 2017, 16:41:44 »
Jen tak pro zajímavost, pro lidi, kteří si tu klepou na čelo, že Frenky chce míchat C a Bash:

Kdysi dávno, když jsem začínal s Unixem, tak jsem si půjčil takovou pěknou knížku a tam bylo popisováno, jak se v tom unixu programuje. Vzhledem k tomu, že v té době jsem už Cčko uměl, a práci s konzolí jsem znal z DOSu, tak mě tam poněkud mátlo, že on ten autor při tom vysvětlování fakt míchal volání shellu a volání Cčkovejch funkcí. Samozřejmě to míchal tak, že mu to fungovalo. Ale bylo to dost matoucí. A tak si dovedu představit, že to někoho hned netrkne.

1538
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 11. 12. 2017, 19:06:46 »
Takový zápis je pro mě noční můra, žádný začátek, žádný konec, žadné ohraničení for, prostě nic.

Kód: [Vybrat]
for list in list_of_lists:
    for x in list:
        print x
Zvyk. Nic jiného.

Jen tak pro zajímavost, odsazují i další jazyky. Například Haskell, Idris, a další. Uštří se spousta balastu, a čtenář se může soustředit na podstatu problému. To je motivace.

Proč to tedy rovnou nepsat v jednom řádku?
Jde to taky. Ale pak se tam musí dávat ty závorky.

1539
Vývoj / Re:Jak se neztratit ve vlastním kódu?
« kdy: 27. 11. 2017, 13:17:58 »
a spis se to resi pres. tzv "event middlewary"
Můžeš to prosím trochu rozvést?

Teď právě jsem zakopl o jeden legacy kód, kde se Eventy hodně používají. Bohužel velice špatným způsobem takže při refactorování jsem to prostě vzdal a budu doufat, že jsem to nerozbil. Díky tomu na mě sousloví "event middlewary" působý velice tísnivým dojmem.

1540
Vývoj / Re:Jak vlastně vypadá diskový oddíl?
« kdy: 02. 10. 2017, 21:54:05 »
Určitě chápu, že s klasickýma knihovnama by to bylo snazší, ale říkal jsem si, že se o tom zkusím něco dozvědět.

Nevzdávej to. Pokud tě to baví a máš na to čas, tak si to nastuduj. Získáš zkušenosti (s programováním), které ti nikdo nevezme.

A s tím fórem, to máš těžký. Nejdřív se musí přehnat smršť neužitečných komentářů, ale když chvilku počkáš, někdy se i dozvíš něco užitečného :-)

1541
Vývoj / Re:RAD pre Podnikový informačný systém na mieru
« kdy: 27. 09. 2017, 16:42:48 »
Potreboval by som si naprogramovat system pre moju firmu a postupne tam pridavat zalezitosti ktore by mi sprehladnili...
Existuje dnes nejake riesenie na rychly vyvoj IS?...
Ide o to aby sa to UI dalo naklikat mysou pridat nejaka logika prepojenia s DB a je hotovo... Na cistote kodu nezalezi ...
Tak trochu mi to připomíná CAP teorém. Jako proč asi se vývojáři snaží o čistotu kódu, že jo.

1542
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 18. 09. 2017, 00:11:52 »
V JS je tohle best practice. Říká se tomu option object.

http://www.codereadability.com/what-are-javascript-options-objects/

Mě se to vůbec neosvědčilo.

Snadno dochází k překlepům názvu klíče. Když mám hodně argumentů, a nejde to udělat jinak, použiju spešl objekt, který mi alespoň trochu validuje vstupní hodnoty. Ale bavíme se o případě, kdy potřebuju něco jako konfiguraci. Na normální volání funkce s několika málo argumenty mi přijde čitelnější prostě tam předat správně pojmenovaný výraz.

Typescript tohle vzhledem k typové kontrole dává na další level. Je tam možno napsat signaturu ve stylu:

Citace
ulozMereni({teplota: number; tlak: { systolicky: number; disatolicky: number; } }): void;

Máš to i s kontrolou přítomnosti a typů parametrů a není potřeba deklarovat (pojmenovávat) speciální typ.

Jo, tohle by šlo.

1543
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 17. 09. 2017, 22:25:20 »
Když už někdo touží po typech, ať použije dependent types, tam teprve začíná zábava.

Neměl by si po ruce nějaké texty? Jsem si to studoval, ale furt jsem podle všeho nepochopil tu pointu. Měl bych chápat Haskellovské typy, třídy a víceméně kinds, ale furt mě míjí jaký typ problémů řeší tyhlencty závislostní typy.

1544
Vývoj / Re:Python - zbožňovaný lidmi?
« kdy: 17. 09. 2017, 22:22:08 »
V JS je tohle best practice. Říká se tomu option object.

http://www.codereadability.com/what-are-javascript-options-objects/

Mě se to vůbec neosvědčilo.

Snadno dochází k překlepům názvu klíče. Když mám hodně argumentů, a nejde to udělat jinak, použiju spešl objekt, který mi alespoň trochu validuje vstupní hodnoty. Ale bavíme se o případě, kdy potřebuju něco jako konfiguraci. Na normální volání funkce s několika málo argumenty mi přijde čitelnější prostě tam předat správně pojmenovaný výraz.

Jako v Pythonu jsou ty pojmenované parametry šikovná věc. Ale alespoň ti to hlídá platné argumenty. Bez toho je to tak nějak naprd.

1545
Vývoj / Re:Pole a indexy
« kdy: 12. 09. 2017, 23:00:23 »
PS: ci to nie je pokus o vyvolanie flame a opat sa tu budu vyskytovat riesenia a dohady, ktore je lepsie, ako v predchadzajucom vlakne :)

Po dlouhé době něco, co stálo za to číst a tobě se to nepozdává?!

Stran: 1 ... 101 102 [103] 104 105 ... 133