Python - dobré rady a praktiky

Re:Python - dobré rady a praktiky
« Odpověď #120 kdy: 28. 03. 2016, 16:38:32 »
Pro zajímavost:

Kód: [Vybrat]
find datovka-3.1/ -iname \*.py -exec cat '{}' \; | wc -l
    9832

Datovka 4 už je přepsaná do C++, důvody:
Citace
Proč jsme se rozhodli pro přepis staré Datovky v Pythonu do Qt? Především pro problémy spojené s distribucí a instalací Pythonu pro Windows. Knihovna Qt dovoluje vytvořit grafické uživatelské rozhraní, jehož vzhled se příliš neliší mezi podporovanými OS. Qt navíc dovoluje programování přenositelných vícevláknových aplikací. Použití staticky typovaného jazyka jako je C++ dovoluje odhalit chyby již v době překladu programu. Domníváme se, ze se celkově zlepší přenositelnost, udržovatelnost i testovatelnost této aplikace.
https://blog.nic.cz/2014/12/18/nova-datovka-pro-desktop-rada-novinek/


gl

Re:Python - dobré rady a praktiky
« Odpověď #121 kdy: 28. 03. 2016, 16:49:07 »
BTW kromě statického typového systému mi v Pythonu chybí podpora pro vytváření neměnných tříd a neměnné kolekce.

Můžete používat namedtuple. Pro perzistentní kolekce existuje https://github.com/tobgu/pyrsistent.

Overload

Re:Python - dobré rady a praktiky
« Odpověď #122 kdy: 28. 03. 2016, 17:00:10 »
Citace
dostávám se do oblasti poněkud dobastlené, bez first-class podpory v jazyce (docela připomíná promises v JS)

Už několikrát jsem si všiml, že o něčem tvrdíte, jak to jde v JS komplikovaně nebo na to není podpora v jazyce a ono to přitom jde poměrně snadno nebo na to podpora v jazyce je. Nebudu to teď dohledávat, ale konkrétně promises podporu mají od ES6 a na nich pak stavějící async/await v ES7. Díky transpilerům obojí použitelné už dnes. Ale to jen tak mimo téma.

Ondrej

Re:Python - dobré rady a praktiky
« Odpověď #123 kdy: 28. 03. 2016, 17:29:13 »
Skypicker nedávno spamoval s

Citace
Hello Lishaak,

I am a software engineer and part of the Developer Relations team with source{d}, based in Madrid. We are a rapidly growing startup working on improving developer recruitment. We have analyzed your open source contributions on Github and we think that your experience could be a good fit for the position of Python Backend Engineer with Skypicker.

...

With that in mind, Skypicker is looking for a Python enthusiast willing to join their team in Brno, Czech Republic. You will have a track record with the language ideally with a wide general knowledge on web technologies and a background in data structures, algorithms and software design. Any knowledge of the Bottle framework or experience working with uWSGI, Redshift or real-time systems and ElasticSearch is, of course, a bonus.

Your salary would be between 42.000€ and 80.000€, depending on your experience and skills.
Když sem se nedávno o ně zajímal tak tyhle ceny tak nějak seděj, ale v Kč... Aspoň mě to říkal jejich náborář, tak předpokládám že ví víc než agentura skenující github...
Budeš se divit, ale i v ČR se python používá. Z těch asi nejznámějších namátkou Seznam, Skypicker, CZ.NIC, Twisto, Websupport...
Nebudu se divit, protože pro jednu z takových firem dělám. Jak jsem byl řekl: desetitisíce řádků.

Jasný nikde netvrdím že je to nejlepší volba, jen píšu že je nesmysl tvrdit že python se hodí maximálně na malé projekty...
Ale to nikdo neřekl. Na malé projekty se hodí perfektně. Na velké projekty je to diskutabilní - je potřeba pečlivě zvážit, jestli to ta konkrétní firma je schopná ustát (kvalita analytiků, programátorů, štábní kultura, kvalita vedení atd.)
10000 řádku je 10 souborů po 1000 řádcích. To není ani malý projekt. Obyčejný eshop má řádově statisíce řádků :-)
Tak to bych ten obyčejný eshop chtěj docela vidět, respektive jeho funkcionality...
Pro zajímavost:

Kód: [Vybrat]
find datovka-3.1/ -iname \*.py -exec cat '{}' \; | wc -l
    9832

Datovka 4 už je přepsaná do C++, důvody:
Citace
Proč jsme se rozhodli pro přepis staré Datovky v Pythonu do Qt? Především pro problémy spojené s distribucí a instalací Pythonu pro Windows. Knihovna Qt dovoluje vytvořit grafické uživatelské rozhraní, jehož vzhled se příliš neliší mezi podporovanými OS. Qt navíc dovoluje programování přenositelných vícevláknových aplikací. Použití staticky typovaného jazyka jako je C++ dovoluje odhalit chyby již v době překladu programu. Domníváme se, ze se celkově zlepší přenositelnost, udržovatelnost i testovatelnost této aplikace.
https://blog.nic.cz/2014/12/18/nova-datovka-pro-desktop-rada-novinek/
Což sou logické argumenty, psát desktop aplikaci v pythonu s tím, že to bude běhat i na windows sice můžu, ale proboha proč bych to dělal?

Re:Python - dobré rady a praktiky
« Odpověď #124 kdy: 28. 03. 2016, 18:15:54 »
Citace
Když sem se nedávno o ně zajímal tak tyhle ceny tak nějak seděj, ale v Kč... Aspoň mě to říkal jejich náborář, tak předpokládám že ví víc než agentura skenující github...

V kč? To jako 40k-80k v korunách hrubýho?


Re:Python - dobré rady a praktiky
« Odpověď #125 kdy: 28. 03. 2016, 18:26:22 »
Už několikrát jsem si všiml, že o něčem tvrdíte, jak to jde v JS komplikovaně nebo na to není podpora v jazyce a ono to přitom jde poměrně snadno nebo na to podpora v jazyce je. Nebudu to teď dohledávat, ale konkrétně promises podporu mají od ES6 a na nich pak stavějící async/await v ES7. Díky transpilerům obojí použitelné už dnes. Ale to jen tak mimo téma.
Napsal jsem "bez first-class podpory v jazyce (docela připomíná promises v JS)". Promises jsou věc, která byla do JS přidána teprve nedávno a oproti jazykům, kde se s asynchronními událostmi počítalo předem, se s tím v JS nepracuje nijak zvlášť dobře. Netvrdil jsem, že to v JS není, naopak. Je to tam a je to opruz.

Pokud chcete konkrétní výtku, tak např. se asynchronní události nedají zpátky synchronizovat. Takže nemůžu napsat fci, která by vracela výsledek asynchronní operace. Pro srovnání v Erlangu/Elixiru to jde triviálně.

Nebo jiná výhrada: "Oproti synchronnímu zápisu je výše uvedený zápis pomocí promisů delší a méně přehledný. Navíc jde při řetězení promisů snadno udělat chybu – stačí zapomenout return před druhým voláním getJSON." http://www.abclinuxu.cz/blog/radekm/2015/3/async-a-await-je-krok-spatnym-smerem

Ondrej

Re:Python - dobré rady a praktiky
« Odpověď #126 kdy: 28. 03. 2016, 18:35:36 »
Citace
Když sem se nedávno o ně zajímal tak tyhle ceny tak nějak seděj, ale v Kč... Aspoň mě to říkal jejich náborář, tak předpokládám že ví víc než agentura skenující github...

V kč? To jako 40k-80k v korunách hrubýho?
Ano, proto se divím že u tebe to bylo v eurech :-)

javaman

Re:Python - dobré rady a praktiky
« Odpověď #127 kdy: 28. 03. 2016, 18:37:25 »
OMG, oni říkají roční příjem. A protože nevíš daně v každé zemi, tak to asi bude spíš hodně hrubé až nejhrubší.

Ondrej

Re:Python - dobré rady a praktiky
« Odpověď #128 kdy: 28. 03. 2016, 18:51:09 »
OMG, oni říkají roční příjem. A protože nevíš daně v každé zemi, tak to asi bude spíš hodně hrubé až nejhrubší.
Jistě což nesedí s tím co sem slyšel a četl od jejich náboráře, sedělo by to kdyby to bylo myšleno v Kč a měsíčně...

javaman

Re:Python - dobré rady a praktiky
« Odpověď #129 kdy: 28. 03. 2016, 18:53:09 »
To je zase věc jiná, že Bystroushaak věří pohádkám zahraniční agentury. Taky si nedovedu představit, že bys dostal přes dva miliony. Za Python? To tak ve snu. Možná v Anglii, ale ani tam asi ne :D

Re:Python - dobré rady a praktiky
« Odpověď #130 kdy: 28. 03. 2016, 18:54:35 »
Ano, proto se divím že u tebe to bylo v eurech :-)

Jak píše Javaman, je to 40-80k ročně v eurech. To je 3k3 - 6k6€ měsíčně (89-178k korun) nějakého hodně hrubého platu, který se ještě bude různě danit, možná jako příjem ze zahraničí. To mi nepřijde nijak extra přehnané. Sám jsem pracoval pro malý startup za 300kč / hodinu (čistého) a bývalý kolega senior se mi divil, že by to za tyhle částky vůbec nevzal.

Plat 40k kč/měsíc hrubého se mi u Skypickeru fakt nezdá. I v Redhatu začíná práce někde na 50k hrubého / měsíc. Cizí firmy většinou platí podstatně líp, pokud umíš dobře anglicky a jsi ochotný pořádně makat, tak se dají sehnat (django) nabídky ala 6k$/měsíc. Jedna taková se ke mě dostala minulý měsíc.

Overload

Re:Python - dobré rady a praktiky
« Odpověď #131 kdy: 28. 03. 2016, 18:55:29 »
Kód: [Vybrat]
Oproti synchronnímu zápisu je výše uvedený zápis pomocí promisů delší a méně přehledný
Pokud se kód v článku dá zapsat i synchronně, pak na něm buď nic asynchronního není a nemá smysl ho zapisovat jako promise nebo asynchronní je a pak nemá význam psát ho synchronně. Nicméně součástí ES6 jsou i lambdy, takže zápis se dá podstatně zpřehlednit:

Kód: [Vybrat]
getJSON(cfgUrl)
    .then(cfg => getJSON(cfg.dataUrl)
    .then(data => alert(data))
    .catch(e => /* osetrit chybu */);

Celkově mi výhrady v článku(explicitní označování asynchronních funkcí, zapomenutý return(?)) přijdou spíš trochu jako hnidopišství.

Citace
nemůžu napsat fci, která by vracela výsledek asynchronní operace

Mohl bych poprosit o konkrétnější příklad? Takhle popsané mi to připadá právě jako věc řešitelná pomocí generátorů/promises/async+await.

Ondrej

Re:Python - dobré rady a praktiky
« Odpověď #132 kdy: 28. 03. 2016, 19:03:56 »
Ano, proto se divím že u tebe to bylo v eurech :-)

Jak píše Javaman, je to 40-80k ročně v eurech. To je 3k3 - 6k6€ měsíčně (89-178k korun) nějakého hodně hrubého platu, který se ještě bude různě danit, možná jako příjem ze zahraničí. To mi nepřijde nijak extra přehnané. Sám jsem pracoval pro malý startup za 300kč / hodinu (čistého) a bývalý kolega senior se mi divil, že by to za tyhle částky vůbec nevzal.

Plat 40k kč/měsíc hrubého se mi u Skypickeru fakt nezdá. I v Redhatu začíná práce někde na 50k hrubého / měsíc. Cizí firmy většinou platí podstatně líp, pokud umíš dobře anglicky a jsi ochotný pořádně makat, tak se dají sehnat (django) nabídky ala 6k$/měsíc. Jedna taková se ke mě dostala minulý měsíc.
Říkal mě rozmezí cca 40-80 v kanclu v Brně, je to cca půlrok tuším, proto sem se dál o to nezajímal. V cizině je to klidně za těch 6k jak píšeš, ale skypicker je Česká firmička, proto se i divím že psali v eurech, ale třeba šli do sebe...

javaman

Re:Python - dobré rady a praktiky
« Odpověď #133 kdy: 28. 03. 2016, 19:08:11 »
Ano, proto se divím že u tebe to bylo v eurech :-)

Jak píše Javaman, je to 40-80k ročně v eurech. To je 3k3 - 6k6€ měsíčně (89-178k korun) nějakého hodně hrubého platu, který se ještě bude různě danit, možná jako příjem ze zahraničí. To mi nepřijde nijak extra přehnané. Sám jsem pracoval pro malý startup za 300kč / hodinu (čistého) a bývalý kolega senior se mi divil, že by to za tyhle částky vůbec nevzal.

Plat 40k kč/měsíc hrubého se mi u Skypickeru fakt nezdá. I v Redhatu začíná práce někde na 50k hrubého / měsíc. Cizí firmy většinou platí podstatně líp, pokud umíš dobře anglicky a jsi ochotný pořádně makat, tak se dají sehnat (django) nabídky ala 6k$/měsíc. Jedna taková se ke mě dostala minulý měsíc.

Co je 300,- na hodinu čistého? To je 48 na ŽL? Za to se fakt moc neprogramuje. Nebo je to zase nějaký root přepočet? Čísla jako znám, jen to chce trochu hodit do kontextu.

40 si také nemyslím, ale je rozdíl mezi 40 a třeba 140 :D

javaman

Re:Python - dobré rady a praktiky
« Odpověď #134 kdy: 28. 03. 2016, 19:09:24 »
Ano, proto se divím že u tebe to bylo v eurech :-)

Jak píše Javaman, je to 40-80k ročně v eurech. To je 3k3 - 6k6€ měsíčně (89-178k korun) nějakého hodně hrubého platu, který se ještě bude různě danit, možná jako příjem ze zahraničí. To mi nepřijde nijak extra přehnané. Sám jsem pracoval pro malý startup za 300kč / hodinu (čistého) a bývalý kolega senior se mi divil, že by to za tyhle částky vůbec nevzal.

Plat 40k kč/měsíc hrubého se mi u Skypickeru fakt nezdá. I v Redhatu začíná práce někde na 50k hrubého / měsíc. Cizí firmy většinou platí podstatně líp, pokud umíš dobře anglicky a jsi ochotný pořádně makat, tak se dají sehnat (django) nabídky ala 6k$/měsíc. Jedna taková se ke mě dostala minulý měsíc.
Říkal mě rozmezí cca 40-80 v kanclu v Brně, je to cca půlrok tuším, proto sem se dál o to nezajímal. V cizině je to klidně za těch 6k jak píšeš, ale skypicker je Česká firmička, proto se i divím že psali v eurech, ale třeba šli do sebe...

Nepsali oni, ale agentura. Skypicker dělají i české agentury a fakt nenabízejí ani sto tisíc :D