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 - Google CTCCTCGGCGGGCACGTAG

Stran: 1 ... 37 38 [39] 40 41
571
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 20:13:39 »
Java (C#, C++): vubec to nejde zkompilovat, coz indickeho kolegu donuti, aby S_Vindaloo splnovalo potrebne interface, pak vsecko funguje.

to muze velice snadno vynucovat CI.

Proč by měl čekat až na CI, když v IDE zmáčkne jednu klávesovou zkratku (v Idee Ctrl+I - Implement methods), ze seznamu nabídnutých metod si vybere ty, které bude konkrétní level dědičnosti implementovat, a do vygenerovaným předpisů dopíše těla. Pokud jde o koncovou (již neabstraktní) třídu, dá implementovat všechny. A z hlediska datových typů má 100% jistotu, že je vše v pořádku.

ten checker samozrejme bezi i v IDE, ale CI je zaruka, ze ten jeho kolega commituje validni kod.

572
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 19:46:55 »
Java (C#, C++): vubec to nejde zkompilovat, coz indickeho kolegu donuti, aby S_Vindaloo splnovalo potrebne interface, pak vsecko funguje.

to muze velice snadno vynucovat CI.

573
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 19:28:54 »
Proto má třeba Smalltalk dynamic dispatch a současně protokoly. Což řeší oba požadavky.

protokoly resi jiny problem nez pretezovani funkci.

Python ma mnohem mocnejsi nastroje pro staticky typovane signatury nez java. Namatkou treba Literal types. Muzete napsat funkci, kde navratovy typ zavisi na hodnote vstupnich parametru. https://mypy.readthedocs.io/en/stable/literal_types.html

Protokoly python take ma, jak staticky tak dynamicky vynucovane, https://mypy.readthedocs.io/en/stable/protocols.html

Ja chapu, ze prilezitostni uzivatele Pythonu jako Standa Blabol novinky moc nesleduji. Uvadim jen pro informaci, nechci zacinat dalsi spor.

574
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 18:52:30 »
Zdá se, že reimplementace těchto pár řádků Python kódu v Javě je nad síly kritika Pythonu. Můžeme jen hádat na čem všem se zasekal :-). Budiž to ponaučením pro budoucí posměváčky.

asi tak, pythonista napise code snippet za par sekund a postne ho do diskuze. Javista jen okecava.

575
Vývoj / Re:Datove tridy v Pythonu
« kdy: 09. 03. 2020, 16:51:34 »
Jojo, dynamic typing je takovej zazrak, az se to Pythonu 3.5 dostal modul typing a v 3.8 to rozsirili napr o final, podobnost s klicovymi slovy javy je ciste nahodna.
A Typescript vsnikl nad Javascriptem taky z cisleho masochismu lidi, co si neumi uzivat blaho dynamickeho bordelu.

Kdyz se divam na vyvoj Pythonu3, je to prakticky souvisla snaha nejak napasovat Java (C#, C++) featury do standardni knihovny.

Ehm, ja pouzivam aktivne python i javu. Python je skvely na jednoduche skriptiky, napr. ansible na tom jede sakumprask.
Pro opravdove SW projekty na kterych dela vice lidi obecne ruzne kvality, se to s Javou merit neda.
A poznamka o programovani bez IDE me rozesmala, to musi byt produktivita jak noha a hlavu mit jak patraci balon, abych si v chainu Viewer - Model - Service - Repository pamatovat atributy a nazvy metod. V IDE ctrl+space a doplni se to samo.
Ale proti gustovi zadny disputat.

python neznate, nebo nepouzivate IDE, nazvy parametru a metod si pamatovat nemusite

staticke typovani v pythonu to za kratkou dobu dotahlo dal nez java za temer tricet let.

modul typing je vyuzitelny i pro runtime validace, v podstate je to jen kolekce abstraktnich trid. Prave diky dynamickemu typovani se python tak dobre pouziva interaktivne, veskere informace mate k dispozici za behu.

576
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 16:06:28 »
Java neni rozhosdne ukecana vic, nez je potreba.

java je nejukecanejsi v soucasnosti pouzivany jazyk

577
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 15:04:35 »
Vetsinou lidi, kteri nevidi prinos pythonu, pisi nasobne vic kodu nez je nutne. Pripravuji se tim o hlavni vyhodu pythonu oproti Jave, mensi ukecanost.

578
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 14:37:14 »
oprava, jeste lepe tak:

Kód: [Vybrat]
from funcy import flatten, join

def append(*args, **kwargs):
    widgets = join([*flatten(args), kwargs])
    for k, v in widgets.items():
        process_widget(k, w)
    return widgets.keys()

579
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 14:07:51 »
oprava, lepe tak:

Kód: [Vybrat]
from funcy import flatten, join

def append(*args, **kwargs):
    widgets = join([*flatten(args), *[kwargs]])
    for k, v in widgets.items():
        process_widget(k, w)
    return widgets.keys()

580
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 13:50:26 »
Určitě je spoustu cest, jak to rozhodování řešit. Pro mě je ale podstatné, že se musí na začátku funkce něco takového řešit. To přece nemá s příjemným a robustním vývojem nic společného.

podle mě nemusíte řešit. stačí se jen trochu přizpůsobit zavedeným konvencím. Pro funkce akceptující jeden nebo více párů klíč-hodnota se používají **kwargs, pro funkce akceptující jednu nebo více hodnot se používá *args. Ve vašem případě bych to kombinoval.

Kód: [Vybrat]
from funcy import flatten, join

def append(*args, **kwargs):
    widgets = {**join(flatten(args)), **kwargs}
    for k, v in widgets.items():
        process_widget(k, w)
    return widgets.keys()

funkce akceptuje slovnik, zanorene listy, keyword argumenty, vice slovniku, .... spoji vse do jednoho slovniku widgets, ktery zpracuje

rekurzivni typove anotace jsou mozne, jen je asi nedam z hlavy

581
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 12:42:40 »
pro splosteni tech zanorenych dictu existuji knihovni funkce, ja treba pouzivam knihovnu funcy

Kód: [Vybrat]
>>> from funcy import flatten, join
>>> join(flatten([{'a':1}, [{'b':2}, [{'c':3}]]]))
{'a': 1, 'b': 2, 'c': 3}

nemusite psat rucne rekurzi

582
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 09. 03. 2020, 12:20:21 »
Jistěže lze kdykoliv zjistit typ objektu. Bohužel to pak dopadá třeba takhle https://github.com/dddomodossola/remi/blob/master/remi/gui.py#L1914 . V javě (a spoustě jiných jazyků) by se v této situaci (pokud bych to nechtěl celé postavit jinak, víc objektově) udělalo více metod append s různými vstupními parametry (Map, Collection, Widget) a každá by se chovala jinak. Jak to udělat v pythonu? Udělat metody appendDict, appendCollection, appendWidget? Nebo jednu metodu, která ale ve skutečnosti dělá pomocí if elseif... tři různé věci, jak je to v ukázce.

Nicméně samozřejmě nesouhlasím, že by se java neměla od pythonu co učit. Chybějící mixiny jsou zásadní nedostatek, o který zakopávám v jednom kuse. A defaultní metody interfaců to zdaleka neřeší, protože jsou public a interfacy nemají vnitřní proměnné. Tuples by se sakra hodily. Rovněž nemožnost volat kód s checkovanými výjimkami ve streamu je zásadní omezení modernizace legacy kódu. Končí to obalováním bloků runtime výjimkami, což je zbytečný balast. Python to v generátorech neřeší, příjemně se používají.

Na druhou stranu chápu, že java musí držet nějakou kompatibilitu a přidávání nových vlastností není úplně jednoduché. Přechod python2 -> python3 byl úplně špatně, to mi nikdo nevymluví. Ale i java má své problémy, technické změny v javě 9 zasekly spoustu projektů na osmičce (nepočítám-li změnu licence).

O kvalitě vývoje v enterprise si nedělám iluze :-)


tady by mozna stalo za to pouzit keyword argumenty? Rozhodovaci logika by se dost zjednodusila. Asi bych jeste oddelil ty dve cinnosti. Na splosteni te zanorene vstupni struktury bych pouzil nejakou generickou funkci. Na zpracovani jednotlivich key value paru bych pouzil oddelenou funkci. Na testovani vice pribuznch typu se da pouzit neco jako isinstance Iterable nebo isinstance Sequence a pod.

583
v prvnim komentari chces spojovat do jednoho souboru, v druhem chces naopak rozdelovat. Na orchestraci vice services v jednom projektu existuji nastroje. Pro deploy pythonu na aws se jeste hodi serverless-python-requirements plugin

584
zipapp je asi blizko, ale hlavni duvod pouzivani webpacku u neprohlizecovych aplikaci neexistuje.

585
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 08. 03. 2020, 20:50:29 »
Delas veci zbytecne slozite a jeste s tim machrujes na foru.

Stran: 1 ... 37 38 [39] 40 41